From 2d339e87cecd98958c22eff2e0569aeafb10b96a Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Tue, 10 Aug 2021 13:37:45 +0300 Subject: [PATCH 1/5] add early dae-optimizing --- src/module.ts | 1 + tests/compiler/NonNullable.optimized.wat | 43 +- tests/compiler/assert-nonnull.optimized.wat | 8 +- tests/compiler/binary.optimized.wat | 26 +- tests/compiler/builtins.optimized.wat | 43 +- tests/compiler/call-super.optimized.wat | 48 +- tests/compiler/class-implements.optimized.wat | 22 +- .../class-overloading-cast.optimized.wat | 65 +- .../compiler/class-overloading.optimized.wat | 277 +- tests/compiler/class.optimized.wat | 16 +- tests/compiler/constructor.optimized.wat | 48 +- tests/compiler/do.optimized.wat | 493 +- .../empty-exportruntime.optimized.wat | 26 +- tests/compiler/empty-new.optimized.wat | 143 +- tests/compiler/exports.optimized.wat | 22 +- .../exportstar-rereexport.optimized.wat | 22 +- .../extends-baseaggregate.optimized.wat | 250 +- .../field-initialization.optimized.wat | 43 +- tests/compiler/for.optimized.wat | 493 +- tests/compiler/function-call.optimized.wat | 496 +- tests/compiler/getter-call.optimized.wat | 499 +- tests/compiler/infer-array.optimized.wat | 45 +- tests/compiler/infer-generic.optimized.wat | 33 +- tests/compiler/inlining.optimized.wat | 48 +- tests/compiler/instanceof-class.optimized.wat | 22 +- tests/compiler/issues/1225.optimized.wat | 22 +- tests/compiler/issues/1699.optimized.wat | 108 +- tests/compiler/logical.optimized.wat | 377 +- tests/compiler/managed-cast.optimized.wat | 22 +- tests/compiler/new.optimized.wat | 22 +- tests/compiler/number.optimized.wat | 887 +- tests/compiler/object-literal.optimized.wat | 117 +- .../optional-typeparameters.optimized.wat | 22 +- tests/compiler/reexport.optimized.wat | 22 +- tests/compiler/rereexport.optimized.wat | 22 +- tests/compiler/resolve-access.optimized.wat | 1025 +- tests/compiler/resolve-binary.optimized.wat | 838 +- .../resolve-elementaccess.optimized.wat | 621 +- .../resolve-function-expression.optimized.wat | 935 +- tests/compiler/resolve-nested.optimized.wat | 22 +- tests/compiler/resolve-new.optimized.wat | 265 +- .../resolve-propertyaccess.optimized.wat | 545 +- tests/compiler/resolve-ternary.optimized.wat | 663 +- tests/compiler/resolve-unary.optimized.wat | 535 +- tests/compiler/rt/finalize.optimized.wat | 212 +- tests/compiler/rt/instanceof.optimized.wat | 46 +- .../runtime-incremental-export.optimized.wat | 26 +- tests/compiler/std-wasi/console.optimized.wat | 731 +- tests/compiler/std-wasi/crypto.optimized.wat | 1117 +- tests/compiler/std-wasi/process.optimized.wat | 338 +- tests/compiler/std/array-access.optimized.wat | 36 +- .../compiler/std/array-literal.optimized.wat | 65 +- tests/compiler/std/array.optimized.wat | 13587 ++++++++-------- tests/compiler/std/arraybuffer.optimized.wat | 137 +- tests/compiler/std/dataview.optimized.wat | 42 +- tests/compiler/std/date.optimized.wat | 774 +- tests/compiler/std/map.optimized.wat | 6332 ++++--- tests/compiler/std/math.optimized.wat | 1165 +- tests/compiler/std/new.optimized.wat | 22 +- tests/compiler/std/object.optimized.wat | 43 +- .../std/operator-overloading.optimized.wat | 22 +- tests/compiler/std/pointer.optimized.wat | 86 +- tests/compiler/std/set.optimized.wat | 2115 ++- tests/compiler/std/static-array.optimized.wat | 159 +- tests/compiler/std/staticarray.optimized.wat | 85 +- .../std/string-casemapping.optimized.wat | 640 +- .../std/string-encoding.optimized.wat | 91 +- tests/compiler/std/string.optimized.wat | 627 +- tests/compiler/std/symbol.optimized.wat | 428 +- tests/compiler/std/typedarray.optimized.wat | 12465 +++++++------- tests/compiler/std/uri.optimized.wat | 91 +- tests/compiler/super-inline.optimized.wat | 22 +- tests/compiler/templateliteral.optimized.wat | 1034 +- tests/compiler/throw.optimized.wat | 79 +- tests/compiler/typeof.optimized.wat | 540 +- tests/compiler/wasi/abort.optimized.wat | 71 +- tests/compiler/wasi/trace.optimized.wat | 646 +- tests/compiler/while.optimized.wat | 493 +- 78 files changed, 27465 insertions(+), 27204 deletions(-) diff --git a/src/module.ts b/src/module.ts index 1b3283b866..c3e9877a4e 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2268,6 +2268,7 @@ export class Module { passes.push("vacuum"); passes.push("local-cse"); passes.push("reorder-locals"); + passes.push("dae-optimizing"); } passes.push("optimize-instructions"); if (optimizeLevel >= 3 || shrinkLevel >= 1) { diff --git a/tests/compiler/NonNullable.optimized.wat b/tests/compiler/NonNullable.optimized.wat index ddbf4dbb62..1d95881da0 100644 --- a/tests/compiler/NonNullable.optimized.wat +++ b/tests/compiler/NonNullable.optimized.wat @@ -45,7 +45,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -59,18 +59,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -78,20 +75,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -104,33 +101,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end diff --git a/tests/compiler/assert-nonnull.optimized.wat b/tests/compiler/assert-nonnull.optimized.wat index ef124ab14e..0c198b8d82 100644 --- a/tests/compiler/assert-nonnull.optimized.wat +++ b/tests/compiler/assert-nonnull.optimized.wat @@ -210,11 +210,11 @@ 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 1404 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 local.get $0 @@ -226,7 +226,7 @@ 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 i32.const 0 i32.store @@ -251,7 +251,7 @@ 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 i32.const 0 i32.store diff --git a/tests/compiler/binary.optimized.wat b/tests/compiler/binary.optimized.wat index 3bd23ba54c..5689d17f10 100644 --- a/tests/compiler/binary.optimized.wat +++ b/tests/compiler/binary.optimized.wat @@ -142,12 +142,6 @@ (func $~start (local $0 f32) (local $1 f64) - block $__inlined_func$~lib/math/ipow32 - global.get $binary/i - i32.const 2 - i32.eq - br_if $__inlined_func$~lib/math/ipow32 - end global.get $binary/i i32.const 1 i32.add @@ -166,17 +160,11 @@ global.set $binary/i i32.const 0 global.set $binary/i - global.get $binary/i - i32.const 1 - i32.and + i32.const 0 global.set $binary/i - global.get $binary/i i32.const 1 - i32.or global.set $binary/i - global.get $binary/i - i32.const 1 - i32.xor + i32.const 0 global.set $binary/i global.get $binary/i i32.const 1 @@ -218,17 +206,11 @@ global.set $binary/I i64.const 0 global.set $binary/I - global.get $binary/I - i64.const 1 - i64.and + i64.const 0 global.set $binary/I - global.get $binary/I i64.const 1 - i64.or global.set $binary/I - global.get $binary/I - i64.const 1 - i64.xor + i64.const 0 global.set $binary/I global.get $binary/I i64.const 1 diff --git a/tests/compiler/builtins.optimized.wat b/tests/compiler/builtins.optimized.wat index dfee42b84d..9fb655e61a 100644 --- a/tests/compiler/builtins.optimized.wat +++ b/tests/compiler/builtins.optimized.wat @@ -101,7 +101,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -115,18 +115,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -134,20 +131,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -160,33 +157,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end diff --git a/tests/compiler/call-super.optimized.wat b/tests/compiler/call-super.optimized.wat index 2b5b8c0141..f008c16cf2 100644 --- a/tests/compiler/call-super.optimized.wat +++ b/tests/compiler/call-super.optimized.wat @@ -169,16 +169,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1488 i32.load i32.gt_u @@ -190,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -206,26 +206,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1674,38 +1674,38 @@ i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $1 local.get $3 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end diff --git a/tests/compiler/class-implements.optimized.wat b/tests/compiler/class-implements.optimized.wat index c985274597..ba0b9e3499 100644 --- a/tests/compiler/class-implements.optimized.wat +++ b/tests/compiler/class-implements.optimized.wat @@ -191,16 +191,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1504 i32.load i32.gt_u @@ -212,7 +212,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1508 @@ -228,26 +228,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount diff --git a/tests/compiler/class-overloading-cast.optimized.wat b/tests/compiler/class-overloading-cast.optimized.wat index fc4cd3f1df..ae88e9a3f0 100644 --- a/tests/compiler/class-overloading-cast.optimized.wat +++ b/tests/compiler/class-overloading-cast.optimized.wat @@ -205,16 +205,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1616 i32.load i32.gt_u @@ -226,7 +226,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1620 @@ -242,26 +242,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1448,7 +1448,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1462,18 +1462,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -1481,20 +1478,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -1507,33 +1504,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end diff --git a/tests/compiler/class-overloading.optimized.wat b/tests/compiler/class-overloading.optimized.wat index cebc44fb43..b9dfac170d 100644 --- a/tests/compiler/class-overloading.optimized.wat +++ b/tests/compiler/class-overloading.optimized.wat @@ -229,16 +229,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1792 i32.load i32.gt_u @@ -250,7 +250,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1796 @@ -266,26 +266,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1472,7 +1472,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1486,18 +1486,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -1505,20 +1502,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -1531,33 +1528,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end @@ -1854,17 +1851,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#get:c@virtual - block $default0 - block $case21 - block $case12 - block $case03 + 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 $case03 $case12 $case03 $case03 $case21 $default0 + br_table $case09 $case18 $case09 $case09 $case27 $default6 end i32.const 1520 global.set $class-overloading/which @@ -1907,30 +1904,30 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual4 - block $default5 - block $case26 - block $case17 - block $case08 + 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 $case08 $case17 $case08 $case08 $case26 $default5 + br_table $case014 $case113 $case014 $case014 $case212 $default11 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual4 + br $__inlined_func$class-overloading/A#b@virtual10 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual4 + br $__inlined_func$class-overloading/A#b@virtual10 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual4 + br $__inlined_func$class-overloading/A#b@virtual10 end i32.const 1488 global.set $class-overloading/which @@ -2122,30 +2119,30 @@ 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 + block $__inlined_func$class-overloading/A#b@virtual21 + block $default22 + block $case223 + block $case124 + block $case025 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case014 $case113 $case014 $case014 $case212 $default11 + br_table $case025 $case124 $case025 $case025 $case223 $default22 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual10 + br $__inlined_func$class-overloading/A#b@virtual21 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual10 + br $__inlined_func$class-overloading/A#b@virtual21 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual10 + br $__inlined_func$class-overloading/A#b@virtual21 end i32.const 1488 global.set $class-overloading/which @@ -2176,30 +2173,30 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#get:c@virtual15 - block $default16 - block $case217 - block $case118 - block $case019 + block $__inlined_func$class-overloading/A#get:c@virtual30 + block $default31 + block $case232 + block $case133 + block $case034 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case019 $case118 $case019 $case019 $case217 $default16 + br_table $case034 $case133 $case034 $case034 $case232 $default31 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual15 + br $__inlined_func$class-overloading/A#get:c@virtual30 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual15 + br $__inlined_func$class-overloading/A#get:c@virtual30 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual15 + br $__inlined_func$class-overloading/A#get:c@virtual30 end i32.const 1488 global.set $class-overloading/which @@ -2228,30 +2225,30 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual20 - block $default21 - block $case222 - block $case123 - block $case024 + 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 $case024 $case123 $case024 $case024 $case222 $default21 + br_table $case044 $case143 $case044 $case044 $case242 $default41 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual20 + br $__inlined_func$class-overloading/A#b@virtual40 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual20 + br $__inlined_func$class-overloading/A#b@virtual40 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual20 + br $__inlined_func$class-overloading/A#b@virtual40 end i32.const 1488 global.set $class-overloading/which @@ -2313,30 +2310,30 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual25 - block $default26 - block $case227 - block $case128 - block $case029 + 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 $case029 $case128 $case029 $case029 $case227 $default26 + br_table $case053 $case152 $case053 $case053 $case251 $default50 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual25 + br $__inlined_func$class-overloading/A#b@virtual49 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual25 + br $__inlined_func$class-overloading/A#b@virtual49 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual25 + br $__inlined_func$class-overloading/A#b@virtual49 end i32.const 1488 global.set $class-overloading/which @@ -2367,30 +2364,30 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#get:c@virtual30 - block $default31 - block $case232 - block $case133 - block $case034 + 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 $case034 $case133 $case034 $case034 $case232 $default31 + 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@virtual30 + br $__inlined_func$class-overloading/A#get:c@virtual58 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual30 + br $__inlined_func$class-overloading/A#get:c@virtual58 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual30 + br $__inlined_func$class-overloading/A#get:c@virtual58 end i32.const 1488 global.set $class-overloading/which @@ -2419,30 +2416,30 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual35 - block $default36 - block $case237 - block $case138 - block $case039 + block $__inlined_func$class-overloading/A#b@virtual68 + block $default69 + block $case270 + block $case171 + block $case072 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case039 $case138 $case039 $case039 $case237 $default36 + br_table $case072 $case171 $case072 $case072 $case270 $default69 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual35 + br $__inlined_func$class-overloading/A#b@virtual68 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual35 + br $__inlined_func$class-overloading/A#b@virtual68 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual35 + br $__inlined_func$class-overloading/A#b@virtual68 end i32.const 1488 global.set $class-overloading/which @@ -2529,30 +2526,30 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual41 - block $default42 - block $case243 - block $case144 - block $case045 + 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 $case045 $case144 $case045 $case045 $case243 $default42 + br_table $case081 $case180 $case081 $case081 $case279 $default78 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual41 + br $__inlined_func$class-overloading/A#b@virtual77 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual41 + br $__inlined_func$class-overloading/A#b@virtual77 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual41 + br $__inlined_func$class-overloading/A#b@virtual77 end i32.const 1488 global.set $class-overloading/which @@ -2583,30 +2580,30 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#get:c@virtual46 - block $default47 - block $case248 - block $case149 - block $case050 + 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 $case050 $case149 $case050 $case050 $case248 $default47 + 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@virtual46 + br $__inlined_func$class-overloading/A#get:c@virtual86 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual46 + br $__inlined_func$class-overloading/A#get:c@virtual86 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual46 + br $__inlined_func$class-overloading/A#get:c@virtual86 end i32.const 1488 global.set $class-overloading/which @@ -2637,30 +2634,30 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual51 - block $default52 - block $case253 - block $case154 - block $case055 + block $__inlined_func$class-overloading/A#b@virtual96 + block $default97 + block $case298 + block $case199 + block $case0100 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case055 $case154 $case055 $case055 $case253 $default52 + br_table $case0100 $case199 $case0100 $case0100 $case298 $default97 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual51 + br $__inlined_func$class-overloading/A#b@virtual96 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual51 + br $__inlined_func$class-overloading/A#b@virtual96 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual51 + br $__inlined_func$class-overloading/A#b@virtual96 end i32.const 1488 global.set $class-overloading/which @@ -2715,8 +2712,8 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/IA#foo@virtual - block $default57 - block $case158 + block $default105 + block $case1106 local.get $0 i32.const 8 i32.sub @@ -2728,8 +2725,8 @@ local.get $0 i32.const 12 i32.eq - br_if $case158 - br $default57 + br_if $case1106 + br $default105 end i32.const 1680 global.set $class-overloading/which @@ -2790,9 +2787,9 @@ global.get $class-overloading/ic local.tee $0 i32.store - block $__inlined_func$class-overloading/IA#foo@virtual6 - block $default7 - block $case18 + block $__inlined_func$class-overloading/IA#foo@virtual108 + block $default109 + block $case1110 local.get $0 i32.const 8 i32.sub @@ -2804,16 +2801,16 @@ local.get $0 i32.const 12 i32.eq - br_if $case18 - br $default7 + br_if $case1110 + br $default109 end i32.const 1680 global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@virtual6 + br $__inlined_func$class-overloading/IA#foo@virtual108 end i32.const 1712 global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@virtual6 + br $__inlined_func$class-overloading/IA#foo@virtual108 end unreachable end diff --git a/tests/compiler/class.optimized.wat b/tests/compiler/class.optimized.wat index 2121160275..0b6c9e7911 100644 --- a/tests/compiler/class.optimized.wat +++ b/tests/compiler/class.optimized.wat @@ -1797,14 +1797,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 i32.const 4 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -1840,16 +1840,16 @@ i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 32 call $~lib/memory/memory.fill local.get $0 - local.get $1 + local.get $2 call $class/GenericInitializer#set:foo local.get $0 - local.get $1 + local.get $2 i32.store offset=4 local.get $0 i32.const 32 @@ -1861,7 +1861,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.get $0 call $class/GenericInitializer#set:foo global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/constructor.optimized.wat b/tests/compiler/constructor.optimized.wat index 10e7582938..beef042d0d 100644 --- a/tests/compiler/constructor.optimized.wat +++ b/tests/compiler/constructor.optimized.wat @@ -246,16 +246,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1488 i32.load i32.gt_u @@ -267,7 +267,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -283,26 +283,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1751,38 +1751,38 @@ i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $1 local.get $3 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end diff --git a/tests/compiler/do.optimized.wat b/tests/compiler/do.optimized.wat index 80996cf5c6..e6acfb94a6 100644 --- a/tests/compiler/do.optimized.wat +++ b/tests/compiler/do.optimized.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func)) - (type $none_=>_i32 (func (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_i32 (func (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 $i32_=>_i32 (func (param i32) (result i32))) @@ -169,16 +169,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1472 i32.load i32.gt_u @@ -190,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1476 @@ -206,26 +206,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1152,240 +1152,6 @@ end end ) - (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-continue|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-continue|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 $1 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 4 - memory.size - local.tee $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - local.get $1 - i32.load offset=1568 - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.set $2 - local.get $0 - local.get $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 $1 - local.get $0 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $1 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1424 - 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 1424 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $2 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $0 - i32.const 32 - i32.add - local.tee $2 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $2 - i32.const -2 - i32.and - i32.store - local.get $0 - i32.const 4 - i32.add - local.tee $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $0 - i32.const 3 - 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 $1 - local.get $0 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - 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 $0 - i32.const 20 - i32.add - ) (func $start:do (local $0 i32) (local $1 i32) @@ -1864,6 +1630,10 @@ ) (func $do/Ref#constructor (result i32) (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 @@ -1880,11 +1650,238 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 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-continue|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-continue|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 $1 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 4 + memory.size + local.tee $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $1 + i32.load offset=1568 + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $0 + local.get $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 $1 + local.get $0 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $1 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1424 + 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 1424 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $2 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $2 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $1 + local.get $2 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $2 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.tee $1 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.get $1 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + i32.load + i32.const -3 + i32.and + i32.store + end local.get $0 - call $~lib/rt/itcms/__new + i32.const 3 + 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 $1 + local.get $0 + local.get $2 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + 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 $3 + local.get $0 + i32.const 20 + i32.add local.tee $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/empty-exportruntime.optimized.wat b/tests/compiler/empty-exportruntime.optimized.wat index f6d53b32c4..3bbf08ee89 100644 --- a/tests/compiler/empty-exportruntime.optimized.wat +++ b/tests/compiler/empty-exportruntime.optimized.wat @@ -1692,38 +1692,38 @@ i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $1 local.get $3 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end diff --git a/tests/compiler/empty-new.optimized.wat b/tests/compiler/empty-new.optimized.wat index f26e0b4178..5d46d6c636 100644 --- a/tests/compiler/empty-new.optimized.wat +++ b/tests/compiler/empty-new.optimized.wat @@ -165,16 +165,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -186,7 +186,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -202,26 +202,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1148,11 +1148,69 @@ end end ) - (func $~lib/rt/itcms/__new + (func $~lib/rt/__visit_members (param $0 i32) + block $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 $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return + end + unreachable + ) + (func $~start (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) + memory.size + i32.const 16 + i32.shl + i32.const 17852 + 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/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1379,65 +1437,4 @@ i32.add global.set $~lib/rt/itcms/total ) - (func $~lib/rt/__visit_members (param $0 i32) - block $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 $invalid - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 17852 - 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 - call $~lib/rt/itcms/__new - ) ) diff --git a/tests/compiler/exports.optimized.wat b/tests/compiler/exports.optimized.wat index 6be1e46aed..200ec02070 100644 --- a/tests/compiler/exports.optimized.wat +++ b/tests/compiler/exports.optimized.wat @@ -219,16 +219,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -240,7 +240,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -256,26 +256,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount diff --git a/tests/compiler/exportstar-rereexport.optimized.wat b/tests/compiler/exportstar-rereexport.optimized.wat index d9c0ebacf3..5083b1fe5f 100644 --- a/tests/compiler/exportstar-rereexport.optimized.wat +++ b/tests/compiler/exportstar-rereexport.optimized.wat @@ -220,16 +220,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1536 i32.load i32.gt_u @@ -241,7 +241,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1540 @@ -257,26 +257,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index 7e02830631..7191dd4e5a 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -2563,19 +2563,19 @@ (local $11 i32) i32.const 1180 i32.load - local.tee $7 + local.tee $9 i32.const 1 i32.add - local.tee $6 - local.tee $3 + local.tee $10 + local.tee $1 i32.const 1176 i32.load - local.tee $10 + local.tee $7 i32.const 2 i32.shr_u i32.gt_u if - local.get $3 + local.get $1 i32.const 268435455 i32.gt_u if @@ -2586,40 +2586,43 @@ call $~lib/builtins/abort unreachable end - i32.const 1168 - i32.load - local.tee $9 - local.set $1 + local.get $7 + i32.const 1 + i32.shl + local.tee $2 + i32.const 1073741820 + i32.lt_u + local.set $5 + local.get $1 + i32.const 8 + local.get $1 + i32.const 8 + i32.gt_u + select + i32.const 2 + i32.shl + local.tee $1 + local.get $2 + i32.const 1073741820 + local.get $5 + select + local.tee $2 + i32.lt_u + local.set $5 block $__inlined_func$~lib/rt/itcms/__renew - local.get $10 - i32.const 1 - i32.shl - local.tee $4 - i32.const 1073741820 - local.get $4 - i32.const 1073741820 - i32.lt_u - select - local.tee $2 - local.get $3 - i32.const 8 - local.get $3 - i32.const 8 - i32.gt_u - select - i32.const 2 - i32.shl - local.tee $4 local.get $2 - local.get $4 - i32.gt_u + local.get $1 + local.get $5 select local.tee $8 - local.tee $3 - local.get $9 + local.tee $1 + i32.const 1168 + i32.load + local.tee $11 + local.tee $2 i32.const 20 i32.sub - local.tee $2 + local.tee $3 i32.load i32.const -4 i32.and @@ -2627,168 +2630,166 @@ i32.sub i32.le_u if - local.get $2 local.get $3 - i32.store offset=16 local.get $1 - local.set $5 + i32.store offset=16 br $__inlined_func$~lib/rt/itcms/__renew end + local.get $1 local.get $3 - local.get $2 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $5 - local.set $4 + local.set $5 + local.get $1 local.get $3 - local.get $2 i32.load offset=16 - local.tee $2 - local.get $2 + local.tee $3 + local.get $1 local.get $3 - i32.gt_u + i32.lt_u select - local.set $11 + local.set $6 block $~lib/util/memory/memmove|inlined.0 - local.get $1 - local.get $4 + local.get $2 + local.get $5 + local.tee $1 i32.eq br_if $~lib/util/memory/memmove|inlined.0 + local.get $2 local.get $1 - local.get $4 i32.sub - local.get $11 + local.get $6 i32.sub i32.const 0 - local.get $11 + local.get $6 i32.const 1 i32.shl i32.sub i32.le_u if - local.get $4 local.get $1 - local.get $11 + local.get $2 + local.get $6 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end local.get $1 - local.get $4 - i32.gt_u + local.get $2 + i32.lt_u if - local.get $1 + local.get $2 i32.const 7 i32.and - local.get $4 + local.get $1 i32.const 7 i32.and i32.eq if loop $while-continue|0 - local.get $4 + local.get $1 i32.const 7 i32.and if - local.get $11 + local.get $6 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $11 + local.get $6 i32.const 1 i32.sub - local.set $11 - local.get $4 + local.set $6 + local.get $1 local.tee $3 i32.const 1 i32.add - local.set $4 - local.get $1 - local.tee $2 + local.set $1 + local.get $2 + local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $2 local.get $3 - local.get $2 + local.get $4 i32.load8_u i32.store8 br $while-continue|0 end end loop $while-continue|1 - local.get $11 + local.get $6 i32.const 8 i32.ge_u if - local.get $4 local.get $1 + local.get $2 i64.load i64.store - local.get $11 + local.get $6 i32.const 8 i32.sub - local.set $11 - local.get $4 - i32.const 8 - i32.add - local.set $4 + local.set $6 local.get $1 i32.const 8 i32.add local.set $1 + local.get $2 + i32.const 8 + i32.add + local.set $2 br $while-continue|1 end end end loop $while-continue|2 - local.get $11 + local.get $6 if - local.get $4 + local.get $1 local.tee $3 i32.const 1 i32.add - local.set $4 - local.get $1 - local.tee $2 + local.set $1 + local.get $2 + local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $2 local.get $3 - local.get $2 + local.get $4 i32.load8_u i32.store8 - local.get $11 + local.get $6 i32.const 1 i32.sub - local.set $11 + local.set $6 br $while-continue|2 end end else - local.get $1 + local.get $2 i32.const 7 i32.and - local.get $4 + local.get $1 i32.const 7 i32.and i32.eq if loop $while-continue|3 - local.get $4 - local.get $11 + local.get $1 + local.get $6 i32.add i32.const 7 i32.and if - local.get $11 + local.get $6 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $4 - local.get $11 + local.get $1 + local.get $6 i32.const 1 i32.sub - local.tee $11 + local.tee $6 i32.add - local.get $1 - local.get $11 + local.get $2 + local.get $6 i32.add i32.load8_u i32.store8 @@ -2796,18 +2797,18 @@ end end loop $while-continue|4 - local.get $11 + local.get $6 i32.const 8 i32.ge_u if - local.get $4 - local.get $11 + local.get $1 + local.get $6 i32.const 8 i32.sub - local.tee $11 + local.tee $6 i32.add - local.get $1 - local.get $11 + local.get $2 + local.get $6 i32.add i64.load i64.store @@ -2816,16 +2817,16 @@ end end loop $while-continue|5 - local.get $11 + local.get $6 if - local.get $4 - local.get $11 + local.get $1 + local.get $6 i32.const 1 i32.sub - local.tee $11 + local.tee $6 i32.add - local.get $1 - local.get $11 + local.get $2 + local.get $6 i32.add i32.load8_u i32.store8 @@ -2834,26 +2835,28 @@ end end end + local.get $5 + local.set $2 end - local.get $5 - local.get $10 + local.get $2 + local.get $7 i32.add local.get $8 - local.get $10 + local.get $7 i32.sub call $~lib/memory/memory.fill - local.get $5 - local.get $9 + local.get $2 + local.get $11 i32.ne if i32.const 1168 - local.get $5 + local.get $2 i32.store i32.const 1172 - local.get $5 + local.get $2 i32.store i32.const 1168 - local.get $5 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link end @@ -2863,7 +2866,7 @@ end i32.const 1172 i32.load - local.get $7 + local.get $9 i32.const 2 i32.shl i32.add @@ -2874,7 +2877,7 @@ i32.const 1 call $~lib/rt/itcms/__link i32.const 1180 - local.get $6 + local.get $10 i32.store ) (func $~lib/rt/__visit_members (param $0 i32) @@ -2909,34 +2912,35 @@ return end local.get $0 - i32.load offset=4 local.tee $1 + i32.load offset=4 + local.tee $2 local.get $0 i32.load offset=12 i32.const 2 i32.shl i32.add - local.set $2 + local.set $3 loop $while-continue|0 - local.get $1 local.get $2 + local.get $3 i32.lt_u if - local.get $1 + local.get $2 i32.load - local.tee $3 + local.tee $0 if - local.get $3 + local.get $0 call $~lib/rt/itcms/__visit end - local.get $1 + local.get $2 i32.const 4 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end - local.get $0 + local.get $1 i32.load call $~lib/rt/itcms/__visit return diff --git a/tests/compiler/field-initialization.optimized.wat b/tests/compiler/field-initialization.optimized.wat index 38af4021b4..941e69e2d8 100644 --- a/tests/compiler/field-initialization.optimized.wat +++ b/tests/compiler/field-initialization.optimized.wat @@ -1821,7 +1821,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1835,18 +1835,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -1854,20 +1851,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -1880,33 +1877,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index d34636526e..88c0fde56b 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func)) - (type $none_=>_i32 (func (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_i32 (func (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 $i32_=>_i32 (func (param i32) (result i32))) @@ -169,16 +169,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1472 i32.load i32.gt_u @@ -190,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1476 @@ -206,26 +206,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1152,240 +1152,6 @@ end end ) - (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-continue|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-continue|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 $1 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 4 - memory.size - local.tee $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - local.get $1 - i32.load offset=1568 - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.set $2 - local.get $0 - local.get $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 $1 - local.get $0 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $1 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1424 - 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 1424 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $2 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $0 - i32.const 32 - i32.add - local.tee $2 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $2 - i32.const -2 - i32.and - i32.store - local.get $0 - i32.const 4 - i32.add - local.tee $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $0 - i32.const 3 - 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 $1 - local.get $0 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - 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 $0 - i32.const 20 - i32.add - ) (func $start:for (local $0 i32) (local $1 i32) @@ -1866,6 +1632,10 @@ ) (func $for/Ref#constructor (result i32) (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 @@ -1882,11 +1652,238 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 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-continue|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-continue|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 $1 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 4 + memory.size + local.tee $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $1 + i32.load offset=1568 + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $0 + local.get $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 $1 + local.get $0 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $1 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1424 + 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 1424 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $2 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $2 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $1 + local.get $2 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $2 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.tee $1 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.get $1 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + i32.load + i32.const -3 + i32.and + i32.store + end local.get $0 - call $~lib/rt/itcms/__new + i32.const 3 + 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 $1 + local.get $0 + local.get $2 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + 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 $3 + local.get $0 + i32.const 20 + i32.add local.tee $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/function-call.optimized.wat b/tests/compiler/function-call.optimized.wat index f1593b31c0..ebab42229b 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)) @@ -207,16 +207,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1760 i32.load i32.gt_u @@ -228,7 +228,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1764 @@ -244,26 +244,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1190,240 +1190,6 @@ end end ) - (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-continue|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-continue|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 $1 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 4 - memory.size - local.tee $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - local.get $1 - i32.load offset=1568 - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.set $2 - local.get $0 - local.get $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 $1 - local.get $0 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $1 - 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 $1 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $2 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $0 - i32.const 32 - i32.add - local.tee $2 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $2 - i32.const -2 - i32.and - i32.store - local.get $0 - i32.const 4 - i32.add - local.tee $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - 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 $1 - local.get $0 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - 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 $0 - i32.const 20 - i32.add - ) (func $function-call/Foo#fnVoid (param $0 i32) nop ) @@ -1467,7 +1233,14 @@ call $~lib/rt/itcms/__visit ) (func $~start + call $start:function-call + ) + (func $start:function-call (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 @@ -1571,11 +1344,238 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 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-continue|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-continue|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 $1 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 4 + memory.size + local.tee $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $1 + i32.load offset=1568 + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $0 + local.get $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 $1 + local.get $0 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $1 + 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 $1 + local.get $0 + call $~lib/rt/tlsf/removeBlock local.get $0 - call $~lib/rt/itcms/__new + i32.load + local.tee $2 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $2 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $1 + local.get $2 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $2 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.tee $1 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.get $1 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + 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 $1 + local.get $0 + local.get $2 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + 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 $3 + local.get $0 + i32.const 20 + i32.add local.tee $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/getter-call.optimized.wat b/tests/compiler/getter-call.optimized.wat index f00688e1bd..0b370b61e8 100644 --- a/tests/compiler/getter-call.optimized.wat +++ b/tests/compiler/getter-call.optimized.wat @@ -172,16 +172,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1472 i32.load i32.gt_u @@ -193,7 +193,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1476 @@ -209,26 +209,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1155,240 +1155,6 @@ end end ) - (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-continue|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-continue|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 $1 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 4 - memory.size - local.tee $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - local.get $1 - i32.load offset=1568 - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.set $2 - local.get $0 - local.get $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 $1 - local.get $0 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $1 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1392 - 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 1392 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $2 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $0 - i32.const 32 - i32.add - local.tee $2 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $2 - i32.const -2 - i32.and - i32.store - local.get $0 - i32.const 4 - i32.add - local.tee $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $0 - i32.const 3 - 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 $1 - local.get $0 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - 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 $0 - i32.const 20 - i32.add - ) (func $getter-call/C#get:x~anonymous|0 (result i32) i32.const 42 ) @@ -1464,6 +1230,10 @@ (func $getter-call/test (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 @@ -1474,10 +1244,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 0 i32.store - local.get $0 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1486,19 +1256,246 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 i32.const 0 i32.store - local.get $1 - call $~lib/rt/itcms/__new + 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-continue|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-continue|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 $1 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 4 + memory.size + local.tee $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $1 + i32.load offset=1568 + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $0 + local.get $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 $1 + local.get $0 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $1 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1392 + 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 1392 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $2 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $5 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $2 + local.get $5 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $1 + local.get $2 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $2 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.tee $1 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.get $1 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 3 + 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 $1 + local.get $0 + local.get $2 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + 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 $4 + local.get $0 + i32.const 20 + i32.add + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 local.get $0 - local.get $1 i32.store i32.const 1456 i32.load diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index 44b29bde0c..e9111c60b4 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -1713,38 +1713,38 @@ i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $1 local.get $3 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -2917,34 +2917,35 @@ return end local.get $0 - i32.load offset=4 local.tee $1 + i32.load offset=4 + local.tee $2 local.get $0 i32.load offset=12 i32.const 2 i32.shl i32.add - local.set $2 + local.set $3 loop $while-continue|0 - local.get $1 local.get $2 + local.get $3 i32.lt_u if - local.get $1 + local.get $2 i32.load - local.tee $3 + local.tee $0 if - local.get $3 + local.get $0 call $~lib/rt/itcms/__visit end - local.get $1 + local.get $2 i32.const 4 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end - local.get $0 + local.get $1 i32.load call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat index 0aa5029c5b..d5f83cd7aa 100644 --- a/tests/compiler/infer-generic.optimized.wat +++ b/tests/compiler/infer-generic.optimized.wat @@ -194,16 +194,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1616 i32.load i32.gt_u @@ -215,7 +215,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1620 @@ -231,26 +231,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1487,6 +1487,7 @@ (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -1515,18 +1516,20 @@ i32.load local.set $1 loop $for-loop|0 - local.get $0 local.get $1 i32.const 1164 i32.load local.tee $2 + i32.lt_s + local.set $3 + local.get $0 local.get $1 local.get $2 - i32.lt_s + local.get $3 select i32.lt_s if - local.get $3 + local.get $4 i32.const 1156 i32.load local.get $0 @@ -1539,7 +1542,7 @@ i32.const 1200 i32.load call_indirect $0 (type $i32_f32_i32_i32_=>_i32) - local.set $3 + local.set $4 local.get $0 i32.const 1 i32.add diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat index 3efc001b52..be9d128e80 100644 --- a/tests/compiler/inlining.optimized.wat +++ b/tests/compiler/inlining.optimized.wat @@ -181,16 +181,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1520 i32.load i32.gt_u @@ -202,7 +202,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1524 @@ -218,26 +218,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1686,38 +1686,38 @@ i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $1 local.get $3 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end diff --git a/tests/compiler/instanceof-class.optimized.wat b/tests/compiler/instanceof-class.optimized.wat index 0c7aae8a8e..1325de7f46 100644 --- a/tests/compiler/instanceof-class.optimized.wat +++ b/tests/compiler/instanceof-class.optimized.wat @@ -183,16 +183,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1504 i32.load i32.gt_u @@ -204,7 +204,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1508 @@ -220,26 +220,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount diff --git a/tests/compiler/issues/1225.optimized.wat b/tests/compiler/issues/1225.optimized.wat index 44a877c3be..522529b7bc 100644 --- a/tests/compiler/issues/1225.optimized.wat +++ b/tests/compiler/issues/1225.optimized.wat @@ -178,16 +178,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1488 i32.load i32.gt_u @@ -199,7 +199,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -215,26 +215,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount diff --git a/tests/compiler/issues/1699.optimized.wat b/tests/compiler/issues/1699.optimized.wat index cf0925a192..d6020765fb 100644 --- a/tests/compiler/issues/1699.optimized.wat +++ b/tests/compiler/issues/1699.optimized.wat @@ -2575,7 +2575,7 @@ local.get $1 i32.const 1 i32.add - local.tee $8 + local.tee $9 local.tee $5 local.get $0 i32.load offset=8 @@ -2595,40 +2595,43 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i32.load - local.tee $10 + local.get $11 + i32.const 1 + i32.shl + local.tee $6 + i32.const 1073741820 + i32.lt_u + local.set $3 + 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 $6 + i32.const 1073741820 + local.get $3 + select + local.tee $6 + i32.lt_u local.set $3 block $__inlined_func$~lib/rt/itcms/__renew - local.get $11 - i32.const 1 - i32.shl - local.tee $6 - i32.const 1073741820 local.get $6 - i32.const 1073741820 - i32.lt_u - select - local.tee $4 - local.get $5 - i32.const 8 local.get $5 - i32.const 8 - i32.gt_u - select - i32.const 2 - i32.shl - local.tee $6 - local.get $4 - local.get $6 - i32.gt_u + local.get $3 select - local.tee $9 - local.tee $5 - local.get $10 + local.tee $10 + local.tee $4 + local.get $0 + i32.load + local.tee $8 + local.tee $3 i32.const 20 i32.sub - local.tee $4 + local.tee $5 i32.load i32.const -4 i32.and @@ -2636,24 +2639,24 @@ i32.sub i32.le_u if - local.get $4 local.get $5 + local.get $4 i32.store offset=16 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $5 local.get $4 + local.get $5 i32.load offset=12 call $~lib/rt/itcms/__new local.tee $7 local.set $6 - local.get $5 local.get $4 + local.get $5 i32.load offset=16 - local.tee $4 + local.tee $5 local.get $4 local.get $5 - i32.gt_u + i32.lt_u select local.set $12 block $~lib/util/memory/memmove|inlined.0 @@ -2704,17 +2707,17 @@ i32.sub local.set $12 local.get $6 - local.tee $5 + local.tee $4 i32.const 1 i32.add local.set $6 local.get $3 - local.tee $4 + local.tee $5 i32.const 1 i32.add local.set $3 - local.get $5 local.get $4 + local.get $5 i32.load8_u i32.store8 br $while-continue|0 @@ -2749,17 +2752,17 @@ local.get $12 if local.get $6 - local.tee $5 + local.tee $4 i32.const 1 i32.add local.set $6 local.get $3 - local.tee $4 + local.tee $5 i32.const 1 i32.add local.set $3 - local.get $5 local.get $4 + local.get $5 i32.load8_u i32.store8 local.get $12 @@ -2847,12 +2850,12 @@ local.get $3 local.get $11 i32.add - local.get $9 + local.get $10 local.get $11 i32.sub call $~lib/memory/memory.fill local.get $3 - local.get $10 + local.get $8 i32.ne if local.get $0 @@ -2867,11 +2870,11 @@ call $~lib/rt/itcms/__link end local.get $0 - local.get $9 + local.get $10 i32.store offset=8 end local.get $0 - local.get $8 + local.get $9 i32.store offset=12 end local.get $0 @@ -2919,34 +2922,35 @@ return end local.get $0 - i32.load offset=4 local.tee $1 + i32.load offset=4 + local.tee $2 local.get $0 i32.load offset=12 i32.const 2 i32.shl i32.add - local.set $2 + local.set $3 loop $while-continue|0 - local.get $1 local.get $2 + local.get $3 i32.lt_u if - local.get $1 + local.get $2 i32.load - local.tee $3 + local.tee $0 if - local.get $3 + local.get $0 call $~lib/rt/itcms/__visit end - local.get $1 + local.get $2 i32.const 4 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end - local.get $0 + local.get $1 i32.load call $~lib/rt/itcms/__visit return diff --git a/tests/compiler/logical.optimized.wat b/tests/compiler/logical.optimized.wat index 281aaf02b4..35057e71fa 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func)) - (type $none_=>_i32 (func (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_i32 (func (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 $i32_=>_i32 (func (param i32) (result i32))) @@ -169,16 +169,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1488 i32.load i32.gt_u @@ -190,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -206,26 +206,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1152,11 +1152,182 @@ end end ) - (func $~lib/rt/itcms/__new (result i32) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $logical/Obj + 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 $logical/Obj $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return + end + return + end + unreachable + ) + (func $~start + (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 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 + i32.const 0 + i32.store + 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 + call $logical/Obj#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 87 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $logical/Obj#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 92 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17908 + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/state + i32.const 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|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 + ) + (func $logical/Obj#constructor (result i32) (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 + 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 $3 + i32.const 0 + i32.store global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1294,7 +1465,7 @@ i32.and i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if @@ -1309,7 +1480,7 @@ i32.const 32 i32.add local.tee $2 - local.get $3 + local.get $4 i32.const 4 i32.sub i32.const 1 @@ -1382,184 +1553,10 @@ i32.add i32.add global.set $~lib/rt/itcms/total + local.get $3 local.get $0 i32.const 20 i32.add - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $logical/Obj - 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 $logical/Obj $invalid - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start - (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 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 - i32.const 0 - i32.store - 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 - call $logical/Obj#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1056 - i32.const 87 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - call $logical/Obj#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1056 - i32.const 92 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 17908 - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/itcms/state - i32.const 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|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 - ) - (func $logical/Obj#constructor (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 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 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index 4aa2a78181..d7af957843 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -173,16 +173,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1632 i32.load i32.gt_u @@ -194,7 +194,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1636 @@ -210,26 +210,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount diff --git a/tests/compiler/new.optimized.wat b/tests/compiler/new.optimized.wat index ec7fb0c94a..b61a78619b 100644 --- a/tests/compiler/new.optimized.wat +++ b/tests/compiler/new.optimized.wat @@ -209,16 +209,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -230,7 +230,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -246,26 +246,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index 7689283fff..b3aab8787c 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -7,7 +7,7 @@ (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) - (type $i64_i32_i64_i32_i64_=>_i32 (func (param i64 i32 i64 i32 i64) (result i32))) + (type $i64_i64_i32_i64_=>_i32 (func (param i64 i64 i32 i64) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $number/a (mut i32) (i32.const 1)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -216,16 +216,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 4656 i32.load i32.gt_u @@ -237,7 +237,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 4660 @@ -253,26 +253,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1321,8 +1321,8 @@ br_if $do-continue|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 @@ -1336,15 +1336,15 @@ local.get $0 i32.const 16 i32.add - local.set $1 + 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.set $5 - local.get $1 + local.set $4 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1355,14 +1355,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $1 + local.get $4 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1370,19 +1370,19 @@ i32.const 4 i32.sub end - local.tee $1 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if - local.get $1 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1 i32.const 27 - local.get $1 + local.get $2 i32.clz i32.sub i32.shl @@ -1390,16 +1390,16 @@ i32.sub i32.add else - local.get $1 + local.get $2 end i32.const 4 memory.size - local.tee $3 + local.tee $5 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $5 + local.get $4 i32.load offset=1568 i32.ne i32.shl @@ -1410,18 +1410,18 @@ i32.and i32.const 16 i32.shr_u - local.set $4 - local.get $3 - local.get $4 - local.get $3 - local.get $4 - i32.gt_s + local.set $1 + local.get $5 + local.get $1 + local.get $1 + local.get $5 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1429,18 +1429,18 @@ unreachable end end + local.get $4 local.get $5 - local.get $3 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $1 + local.get $4 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1451,8 +1451,8 @@ unreachable end end - local.get $1 local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1465,13 +1465,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 + local.get $4 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $3 i32.load - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1484,54 +1484,54 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $1 + local.get $2 i32.sub - local.tee $4 + local.tee $1 i32.const 16 i32.ge_u if - local.get $2 - local.get $1 local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $1 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $1 - local.get $4 + local.tee $2 + local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $1 + local.get $4 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 local.get $3 + local.get $5 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.tee $1 - local.get $2 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.get $1 local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1541,37 +1541,37 @@ i32.and i32.store end - local.get $2 + local.get $3 i32.const 1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $5 + local.set $4 + local.get $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.store offset=8 - local.get $5 - local.get $2 - local.get $5 + local.get $4 + local.get $3 + local.get $4 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1579,22 +1579,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add - local.tee $5 - local.set $4 + local.tee $4 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $4 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1603,18 +1603,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $4 + 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 @@ -1623,10 +1623,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1635,38 +1635,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 - local.get $4 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $3 + local.tee $1 i32.const 0 i32.store - local.get $3 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $4 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $4 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1679,20 +1679,20 @@ i32.sub i32.const 0 i32.store - local.get $4 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store offset=12 - local.get $3 + local.get $1 i32.const 0 i32.store offset=16 - local.get $3 + local.get $1 i32.const 0 i32.store offset=20 - local.get $3 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1715,49 +1715,49 @@ i32.sub i32.const 0 i32.store - local.get $3 - local.get $3 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 - local.get $4 - local.get $1 - i32.sub local.set $1 + local.get $2 + local.get $0 + i32.sub + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end end - local.get $5 + local.get $4 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -1863,6 +1863,122 @@ i32.store16 end ) + (func $~lib/number/I32#toString (param $0 i32) (result i32) + (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 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 + i32.const 0 + local.get $0 + i32.sub + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + local.tee $1 + select + 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 $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 $3 + i32.const 1 + i32.shl + 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 + 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 + end + local.get $0 + ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -1889,7 +2005,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1903,18 +2019,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -1922,20 +2035,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -1948,33 +2061,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end @@ -1982,88 +2095,90 @@ end i32.eqz ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i32) (param $2 i64) (param $3 i32) (param $4 i64) (result i32) + (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 $8 i64) - (local $9 i32) - (local $10 i64) + (local $8 i32) + (local $9 i64) + (local $10 i32) (local $11 i64) - local.get $2 + (local $12 i64) + local.get $1 local.get $0 i64.sub - local.set $8 - local.get $2 + local.set $9 + local.get $1 i64.const 1 i32.const 0 - local.get $3 + local.get $2 i32.sub - local.tee $9 + local.tee $10 i64.extend_i32_s local.tee $0 i64.shl - local.tee $10 + local.tee $11 i64.const 1 i64.sub - local.tee $11 + local.tee $12 i64.and local.set $6 - local.get $2 + local.get $1 local.get $0 i64.shr_u i32.wrap_i64 - local.tee $1 - local.set $3 - local.get $1 + local.tee $2 + local.set $5 + local.get $2 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $5 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $5 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $5 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $5 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $5 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $5 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $5 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $5 i32.const 100000000 i32.ge_u i32.add end end - local.set $7 + local.set $8 loop $while-continue|0 - local.get $7 + local.get $8 i32.const 0 i32.gt_s if @@ -2079,277 +2194,277 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $7 + local.get $8 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 $1 + local.get $2 i32.const 1000000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 1000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 1000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 - local.set $3 + local.get $2 + local.set $5 i32.const 0 - local.set $1 + local.set $2 br $break|1 end i32.const 0 - local.set $3 + local.set $5 end - local.get $3 + local.get $4 local.get $5 i32.or if - local.get $5 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 i32.const 1 i32.shl i32.const 3456 i32.add - local.get $3 + local.get $5 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 end - local.get $7 + local.get $8 i32.const 1 i32.sub - local.set $7 + local.set $8 local.get $6 - local.get $1 + local.get $2 i64.extend_i32_u - local.get $9 + local.get $10 i64.extend_i32_s i64.shl i64.add local.tee $0 - local.get $4 + local.get $3 i64.le_u if - local.get $7 + local.get $8 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $7 + local.get $8 i32.const 2 i32.shl i32.const 4384 i32.add i64.load32_u - local.get $9 + local.get $10 i64.extend_i32_s i64.shl - local.set $2 - local.get $5 + local.set $1 + local.get $4 i32.const 1 i32.shl i32.const 3454 i32.add - local.tee $7 + local.tee $8 i32.load16_u - local.set $3 + local.set $5 loop $while-continue|3 - local.get $2 - local.get $4 + local.get $1 + local.get $3 local.get $0 i64.sub i64.le_u i32.const 0 local.get $0 - local.get $8 + local.get $9 i64.lt_u select if (result i32) i32.const 1 - local.get $8 + local.get $9 local.get $0 i64.sub local.get $0 - local.get $2 + local.get $1 i64.add local.tee $6 - local.get $8 + local.get $9 i64.sub i64.gt_u local.get $6 - local.get $8 + local.get $9 i64.lt_u select else i32.const 0 end if - local.get $3 + local.get $5 i32.const 1 i32.sub - local.set $3 + local.set $5 local.get $0 - local.get $2 + local.get $1 i64.add local.set $0 br $while-continue|3 end end - local.get $7 - local.get $3 - i32.store16 + local.get $8 local.get $5 + i32.store16 + local.get $4 return end br $while-continue|0 end end - local.get $9 - i64.extend_i32_s - local.set $0 loop $while-continue|4 - local.get $4 + local.get $3 i64.const 10 i64.mul - local.set $4 + local.set $3 local.get $6 i64.const 10 i64.mul - local.tee $2 - local.get $0 + local.tee $0 + local.get $10 + i64.extend_i32_s i64.shr_u - local.tee $6 - local.get $5 + local.tee $1 + local.get $4 i64.extend_i32_s i64.or i64.const 0 i64.ne if - local.get $5 + local.get $4 + local.tee $2 + i32.const 1 + i32.add + local.set $4 + local.get $2 i32.const 1 i32.shl i32.const 3456 i32.add - local.get $6 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 end - local.get $7 + local.get $8 i32.const 1 i32.sub - local.set $7 - local.get $4 - local.get $2 - local.get $11 + local.set $8 + local.get $3 + local.get $0 + local.get $12 i64.and local.tee $6 i64.le_u br_if $while-continue|4 end - local.get $7 + local.get $8 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K local.get $6 local.set $0 - local.get $8 + local.get $9 i32.const 0 - local.get $7 + local.get $8 i32.sub i32.const 2 i32.shl @@ -2357,39 +2472,39 @@ i32.add i64.load32_u i64.mul - local.set $2 - local.get $5 + local.set $1 + local.get $4 i32.const 1 i32.shl i32.const 3454 i32.add - local.tee $7 + local.tee $8 i32.load16_u - local.set $3 + local.set $5 loop $while-continue|6 - local.get $10 - local.get $4 + local.get $11 + local.get $3 local.get $0 i64.sub i64.le_u i32.const 0 local.get $0 - local.get $2 + local.get $1 i64.lt_u select if (result i32) i32.const 1 - local.get $2 + local.get $1 local.get $0 i64.sub local.get $0 - local.get $10 + local.get $11 i64.add local.tee $6 - local.get $2 + local.get $1 i64.sub i64.gt_u - local.get $2 + local.get $1 local.get $6 i64.gt_u select @@ -2397,21 +2512,21 @@ i32.const 0 end if - local.get $3 + local.get $5 i32.const 1 i32.sub - local.set $3 + local.set $5 local.get $0 - local.get $10 + local.get $11 i64.add local.set $0 br $while-continue|6 end end - local.get $7 - local.get $3 - i32.store16 + local.get $8 local.get $5 + i32.store16 + local.get $4 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3513,67 +3628,67 @@ local.get $3 i32.const 1 i32.sub - local.tee $1 + local.tee $0 i32.const 0 i32.lt_s local.tee $3 if i32.const 0 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 end - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.set $0 + local.set $1 i32.const 3460 - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.add local.tee $0 @@ -3729,7 +3844,7 @@ (local $3 i64) (local $4 i64) (local $5 i64) - (local $6 f64) + (local $6 i64) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3775,7 +3890,7 @@ i32.const 1568 global.set $~lib/rt/itcms/fromSpace global.get $number/a - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -3816,33 +3931,34 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $5 - i64.const 4294967295 - i64.and - local.set $3 - local.get $5 + local.tee $2 i64.const 32 i64.shr_u - local.tee $5 + local.tee $4 i64.const 31 i64.shl - local.get $3 + local.tee $6 + local.get $2 + i64.const 4294967295 + i64.and + local.tee $2 i64.const 31 i64.shl - local.get $3 + local.tee $5 + local.get $2 i64.const 10 i64.shl i64.const 32 i64.shr_u i64.add - local.tee $4 + local.tee $3 i64.const 32 i64.shr_u i64.add - local.get $4 + local.get $3 i64.const 4294967295 i64.and - local.get $5 + local.get $4 i64.const 10 i64.shl i64.add @@ -3853,18 +3969,13 @@ i64.add i64.const 1 i64.sub - local.set $2 + local.set $3 + local.get $6 local.get $5 - i64.const 31 - i64.shl - local.get $3 - i64.const 31 - i64.shl - local.tee $4 i64.const 32 i64.shr_u i64.add - local.get $4 + local.get $5 i64.const 4294967295 i64.and i64.const 2147483647 @@ -3872,22 +3983,18 @@ i64.const 32 i64.shr_u i64.add + local.get $3 global.get $~lib/util/number/_exp_pow - local.tee $1 i32.const 2 i32.add - local.get $2 - local.get $1 - i32.const 2 - i32.add - local.get $2 - local.get $5 + local.get $3 + local.get $4 i64.const 2147483647 i64.mul - local.get $3 + local.get $2 i64.const 2147483647 i64.mul - local.get $3 + local.get $2 i64.const 4294966784 i64.mul i64.const 32 @@ -3897,7 +4004,7 @@ i64.const 32 i64.shr_u i64.add - local.get $5 + local.get $4 i64.const 4294966784 i64.mul local.get $2 @@ -3915,12 +4022,11 @@ call $~lib/util/number/genDigits global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.const 1 i32.shl - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -3952,7 +4058,7 @@ unreachable end i32.const 3 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -3974,7 +4080,7 @@ unreachable end i32.const -5 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -3996,7 +4102,7 @@ unreachable end i32.const 4 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4022,7 +4128,7 @@ i32.add global.set $number/a global.get $number/a - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4048,7 +4154,7 @@ i32.sub global.set $number/a global.get $number/a - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4113,7 +4219,7 @@ i32.add global.set $number/a local.get $0 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4140,7 +4246,7 @@ i32.sub global.set $number/a local.get $0 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4174,117 +4280,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/util/number/itoa32 (param $0 i32) (result i32) - (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 - 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 - 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 1248 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - local.tee $1 - select - 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 $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 $3 - i32.const 1 - i32.shl - 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 - 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 - ) ) diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index 48e60473ad..f7dfa619f5 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -1755,38 +1755,38 @@ i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $1 local.get $2 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -1819,7 +1819,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1833,18 +1833,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -1852,20 +1849,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -1878,33 +1875,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end @@ -2787,13 +2784,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 i32.const 1156 @@ -2828,7 +2825,7 @@ i32.store i32.const 1392 global.set $~lib/rt/itcms/fromSpace - local.get $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2837,45 +2834,45 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 8 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $0 - local.get $2 i32.store offset=4 - local.get $2 + local.get $0 i32.const 123 i32.store - local.get $2 + local.get $0 i32.const 1056 i32.store offset=4 - local.get $2 + local.get $0 i32.const 1056 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2886,7 +2883,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $2 + local.get $0 i32.load i32.const 123 i32.ne @@ -2900,7 +2897,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $2 + local.get $0 i32.load offset=4 local.tee $0 i32.store @@ -2973,7 +2970,7 @@ local.get $3 local.get $3 i32.const 5 - i32.gt_s + i32.gt_u select local.tee $0 local.get $0 @@ -3961,23 +3958,23 @@ i32.const 0 i32.gt_s if - loop $while-continue|00 + loop $while-continue|012 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|00 + br $while-continue|012 end end end call $~lib/rt/itcms/step drop - loop $while-continue|11 + loop $while-continue|113 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|11 + br $while-continue|113 end end global.get $~lib/rt/itcms/total diff --git a/tests/compiler/optional-typeparameters.optimized.wat b/tests/compiler/optional-typeparameters.optimized.wat index 215d715993..ff307566c8 100644 --- a/tests/compiler/optional-typeparameters.optimized.wat +++ b/tests/compiler/optional-typeparameters.optimized.wat @@ -181,16 +181,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -202,7 +202,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -218,26 +218,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount diff --git a/tests/compiler/reexport.optimized.wat b/tests/compiler/reexport.optimized.wat index d6cf608c9e..302addcb7e 100644 --- a/tests/compiler/reexport.optimized.wat +++ b/tests/compiler/reexport.optimized.wat @@ -258,16 +258,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1488 i32.load i32.gt_u @@ -279,7 +279,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -295,26 +295,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount diff --git a/tests/compiler/rereexport.optimized.wat b/tests/compiler/rereexport.optimized.wat index 211ab5d6e7..669d222193 100644 --- a/tests/compiler/rereexport.optimized.wat +++ b/tests/compiler/rereexport.optimized.wat @@ -220,16 +220,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1536 i32.load i32.gt_u @@ -241,7 +241,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1540 @@ -257,26 +257,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index ba05a7f433..e1a7792156 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -1699,38 +1699,38 @@ i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $1 local.get $3 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -2603,6 +2603,257 @@ i32.store16 end ) + (func $~lib/number/U64#toString (param $0 i64) (result 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 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.wrap_i64 + local.tee $3 + 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.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + 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 $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $0 + i64.const 100000000 + i64.div_u + local.tee $0 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.tee $3 + i32.const 10000 + i32.rem_u + local.tee $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1740 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1740 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + local.get $2 + local.get $1 + i32.const 4 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1740 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1740 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $2 + local.get $0 + i32.wrap_i64 + 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 + end + local.get $2 + ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 block $invalid @@ -2671,7 +2922,7 @@ 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) @@ -2679,69 +2930,121 @@ (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 $5 - i32.const 0 - i32.store - i32.const 1056 - local.set $0 - i32.const 8 - local.set $6 - 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 $3 - i32.const 1056 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - i32.const 1048 - local.get $3 + i32.store + local.get $6 + i32.const 4 i32.sub - i32.const -16 - i32.le_u - if - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 + 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 1056 - i32.lt_u - if + local.set $0 + i32.const 8 + local.set $7 + block $~lib/util/memory/memmove|inlined.0 + i32.const 8 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $4 + local.tee $3 + i32.const 1056 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + i32.const 1048 local.get $3 - i32.const 7 - i32.and - i32.eqz + i32.sub + i32.const -16 + i32.le_u if - loop $while-continue|0 - local.get $3 - i32.const 7 - i32.and + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1056 + i32.lt_u + if + local.get $3 + i32.const 7 + i32.and + i32.eqz + if + loop $while-continue|0 + local.get $3 + 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 $3 + local.tee $2 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.tee $1 + i32.const 1 + i32.add + local.set $0 + local.get $2 + local.get $1 + 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 $3 + local.get $0 + i64.load + i64.store + local.get $7 + i32.const 8 + i32.sub + local.set $7 + local.get $3 + i32.const 8 + i32.add + local.set $3 + 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 $6 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $6 - i32.const 1 - i32.sub - local.set $6 local.get $3 local.tee $2 i32.const 1 @@ -2756,495 +3059,193 @@ local.get $1 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 $6 - i32.const 8 - i32.ge_u - if - local.get $3 - local.get $0 - i64.load - i64.store - local.get $6 - i32.const 8 - i32.sub - local.set $6 + else + local.get $3 + i32.const 7 + i32.and + i32.eqz + if + loop $while-continue|3 local.get $3 - i32.const 8 + local.get $7 i32.add - local.set $3 - 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 + i32.const 1056 + i32.add + local.set $0 + local.get $3 + local.get $7 + i32.add + local.get $0 + 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 + i32.const 1056 + i32.add + local.set $0 + local.get $3 + local.get $7 + i32.add + local.get $0 + i64.load + i64.store + br $while-continue|4 + end end end - end - loop $while-continue|2 - local.get $6 - if - local.get $3 - local.tee $2 - i32.const 1 - i32.add - local.set $3 - local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 - local.get $2 - local.get $1 - 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 $3 - i32.const 7 - i32.and - i32.eqz - if - loop $while-continue|3 - local.get $3 - local.get $6 - i32.add - i32.const 7 - i32.and + loop $while-continue|5 + local.get $7 if - local.get $6 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $3 - local.get $6 + local.get $7 i32.const 1 i32.sub - local.tee $6 - i32.add - local.get $6 + local.tee $7 i32.const 1056 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.set $0 local.get $3 - local.get $6 - i32.const 8 - i32.sub - local.tee $6 - i32.add - local.get $6 - i32.const 1056 + local.get $7 i32.add - i64.load - i64.store - br $while-continue|4 + local.get $0 + i32.load8_u + i32.store8 + br $while-continue|5 end end end - loop $while-continue|5 - local.get $6 - if - local.get $3 - local.get $6 - i32.const 1 - i32.sub - local.tee $6 - i32.add - local.get $6 - i32.const 1056 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end end - end - local.get $5 - local.get $4 - i32.store - i32.const 16 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $4 - i32.store - local.get $4 - local.tee $0 - if - local.get $2 - 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 + local.tee $0 + i32.store + i32.const 16 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $3 + local.get $0 + i32.store local.get $0 - i32.const 20 - i32.sub local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq if - local.get $2 + local.get $3 + 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 $1 i32.const 20 i32.sub + local.tee $2 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 - i32.const 0 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 - select if - local.get $1 + local.get $2 call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + i32.const 0 + local.get $1 + i32.const 3 + i32.eq + select + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + end end end end - end - local.get $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 8 - i32.store offset=8 - local.get $2 - 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 $2 - ) - (func $~lib/util/number/utoa64 (param $0 i64) (result 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 - global.get $~lib/memory/__stack_pointer - i32.const 3348 - i32.lt_s - if - i32.const 19760 - i32.const 19808 - i32.const 1 + local.get $3 + local.get $0 + i32.store offset=4 + local.get $3 + i32.const 8 + i32.store offset=8 + local.get $3 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i64.eqz - if + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1728 - return - end - local.get $0 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.wrap_i64 - local.tee $3 - 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.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 + local.get $6 local.get $3 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $0 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $0 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $0 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $0 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - 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 $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $0 - i64.const 100000000 - i64.div_u - local.tee $0 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.tee $3 - i32.const 10000 - i32.rem_u - local.tee $4 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1740 - i32.add - i64.load32_u - local.get $4 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1740 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - local.get $2 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 10000 - i32.div_u - local.tee $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1740 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1740 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + local.get $3 + i32.load offset=12 + i32.eqz + if + i32.const 1280 + i32.const 1488 + i32.const 106 + i32.const 42 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.get $0 - i32.wrap_i64 - 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 $2 - ) - (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 - 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 106 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $3 + 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/util/number/utoa64 - 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) @@ -3312,7 +3313,7 @@ i64.store local.get $0 i64.load - call $~lib/util/number/utoa64 + call $~lib/number/U64#toString global.get $~lib/memory/__stack_pointer i32.const 4 i32.add diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index 346530940b..5cdb9606af 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -6,8 +6,8 @@ (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))) - (type $i64_i32_i64_i32_i64_=>_i32 (func (param i64 i32 i64 i32 i64) (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i64_i64_i32_i64_=>_i32 (func (param i64 i64 i32 i64) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $resolve-binary/a (mut i32) (i32.const 0)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -264,7 +264,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -278,18 +278,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -297,20 +294,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -323,33 +320,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end @@ -513,16 +510,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 11248 i32.load i32.gt_u @@ -534,7 +531,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 11252 @@ -550,26 +547,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -2018,38 +2015,38 @@ i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $1 local.get $3 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -2160,88 +2157,207 @@ i32.store16 end ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i32) (param $2 i64) (param $3 i32) (param $4 i64) (result i32) + (func $~lib/number/I32#toString (param $0 i32) (result i32) + (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 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 + i32.const 0 + local.get $0 + i32.sub + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + local.tee $1 + select + 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 $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 $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 + 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 + 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) (local $5 i32) (local $6 i64) (local $7 i32) - (local $8 i64) - (local $9 i32) - (local $10 i64) + (local $8 i32) + (local $9 i64) + (local $10 i32) (local $11 i64) - local.get $2 + (local $12 i64) + local.get $1 local.get $0 i64.sub - local.set $8 - local.get $2 + local.set $9 + local.get $1 i64.const 1 i32.const 0 - local.get $3 + local.get $2 i32.sub - local.tee $9 + local.tee $10 i64.extend_i32_s local.tee $0 i64.shl - local.tee $10 + local.tee $11 i64.const 1 i64.sub - local.tee $11 + local.tee $12 i64.and local.set $6 - local.get $2 + local.get $1 local.get $0 i64.shr_u i32.wrap_i64 - local.tee $1 - local.set $3 - local.get $1 + local.tee $2 + local.set $5 + local.get $2 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $5 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $5 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $5 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $5 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $5 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $5 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $5 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $5 i32.const 100000000 i32.ge_u i32.add end end - local.set $7 + local.set $8 loop $while-continue|0 - local.get $7 + local.get $8 i32.const 0 i32.gt_s if @@ -2257,277 +2373,277 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $7 + local.get $8 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 $1 + local.get $2 i32.const 1000000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 1000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 1000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 - local.set $3 + local.get $2 + local.set $5 i32.const 0 - local.set $1 + local.set $2 br $break|1 end i32.const 0 - local.set $3 + local.set $5 end - local.get $3 + local.get $4 local.get $5 i32.or if - local.get $5 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 i32.const 1 i32.shl i32.const 9760 i32.add - local.get $3 + local.get $5 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 end - local.get $7 + local.get $8 i32.const 1 i32.sub - local.set $7 + local.set $8 local.get $6 - local.get $1 + local.get $2 i64.extend_i32_u - local.get $9 + local.get $10 i64.extend_i32_s i64.shl i64.add local.tee $0 - local.get $4 + local.get $3 i64.le_u if - local.get $7 + local.get $8 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $7 + local.get $8 i32.const 2 i32.shl i32.const 10688 i32.add i64.load32_u - local.get $9 + local.get $10 i64.extend_i32_s i64.shl - local.set $2 - local.get $5 + local.set $1 + local.get $4 i32.const 1 i32.shl i32.const 9758 i32.add - local.tee $7 + local.tee $8 i32.load16_u - local.set $3 + local.set $5 loop $while-continue|3 - local.get $2 - local.get $4 + local.get $1 + local.get $3 local.get $0 i64.sub i64.le_u i32.const 0 local.get $0 - local.get $8 + local.get $9 i64.lt_u select if (result i32) i32.const 1 - local.get $8 + local.get $9 local.get $0 i64.sub local.get $0 - local.get $2 + local.get $1 i64.add local.tee $6 - local.get $8 + local.get $9 i64.sub i64.gt_u local.get $6 - local.get $8 + local.get $9 i64.lt_u select else i32.const 0 end if - local.get $3 + local.get $5 i32.const 1 i32.sub - local.set $3 + local.set $5 local.get $0 - local.get $2 + local.get $1 i64.add local.set $0 br $while-continue|3 end end - local.get $7 - local.get $3 - i32.store16 + local.get $8 local.get $5 + i32.store16 + local.get $4 return end br $while-continue|0 end end - local.get $9 - i64.extend_i32_s - local.set $0 loop $while-continue|4 - local.get $4 + local.get $3 i64.const 10 i64.mul - local.set $4 + local.set $3 local.get $6 i64.const 10 i64.mul - local.tee $2 - local.get $0 + local.tee $0 + local.get $10 + i64.extend_i32_s i64.shr_u - local.tee $6 - local.get $5 + local.tee $1 + local.get $4 i64.extend_i32_s i64.or i64.const 0 i64.ne if - local.get $5 + local.get $4 + local.tee $2 + i32.const 1 + i32.add + local.set $4 + local.get $2 i32.const 1 i32.shl i32.const 9760 i32.add - local.get $6 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 end - local.get $7 + local.get $8 i32.const 1 i32.sub - local.set $7 - local.get $4 - local.get $2 - local.get $11 + local.set $8 + local.get $3 + local.get $0 + local.get $12 i64.and local.tee $6 i64.le_u br_if $while-continue|4 end - local.get $7 + local.get $8 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K local.get $6 local.set $0 - local.get $8 + local.get $9 i32.const 0 - local.get $7 + local.get $8 i32.sub i32.const 2 i32.shl @@ -2535,39 +2651,39 @@ i32.add i64.load32_u i64.mul - local.set $2 - local.get $5 + local.set $1 + local.get $4 i32.const 1 i32.shl i32.const 9758 i32.add - local.tee $7 + local.tee $8 i32.load16_u - local.set $3 + local.set $5 loop $while-continue|6 - local.get $10 - local.get $4 + local.get $11 + local.get $3 local.get $0 i64.sub i64.le_u i32.const 0 local.get $0 - local.get $2 + local.get $1 i64.lt_u select if (result i32) i32.const 1 - local.get $2 + local.get $1 local.get $0 i64.sub local.get $0 - local.get $10 + local.get $11 i64.add local.tee $6 - local.get $2 + local.get $1 i64.sub i64.gt_u - local.get $2 + local.get $1 local.get $6 i64.gt_u select @@ -2575,21 +2691,21 @@ i32.const 0 end if - local.get $3 + local.get $5 i32.const 1 i32.sub - local.set $3 + local.set $5 local.get $0 - local.get $10 + local.get $11 i64.add local.set $0 br $while-continue|6 end end - local.get $7 - local.get $3 - i32.store16 + local.get $8 local.get $5 + i32.store16 + local.get $4 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3561,18 +3677,18 @@ local.get $0 local.get $1 i32.add - local.tee $2 + local.tee $3 i32.const 21 i32.le_s i32.const 0 local.get $0 - local.get $2 + local.get $3 i32.le_s select if (result i32) loop $for-loop|0 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -3589,27 +3705,27 @@ 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 i32.const 0 - local.get $2 + local.get $3 i32.const 0 i32.gt_s select if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.shl i32.const 9760 @@ -3631,17 +3747,17 @@ i32.const 1 i32.add else - local.get $2 + local.get $3 i32.const 0 i32.le_s i32.const 0 - local.get $2 + local.get $3 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $2 + local.get $3 i32.sub local.tee $3 i32.const 1 @@ -3688,7 +3804,7 @@ i32.const 9762 i32.const 101 i32.store16 - local.get $2 + local.get $3 i32.const 1 i32.sub local.tee $1 @@ -3702,46 +3818,47 @@ local.set $1 end local.get $1 + local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add @@ -3780,80 +3897,81 @@ local.get $1 i32.const 9760 i32.add - local.tee $3 + local.tee $1 i32.const 101 i32.store16 offset=2 - local.get $3 + local.get $1 + local.tee $2 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 $5 - if (result i32) + if i32.const 0 local.get $1 i32.sub - else - local.get $1 + local.set $1 end - local.tee $2 + local.get $1 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end - local.set $1 - local.get $2 + local.set $3 local.get $1 + local.get $3 i32.const 1 i32.add local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $2 i32.const 45 i32.const 43 local.get $5 @@ -3872,10 +3990,11 @@ (func $~lib/number/F64#toString (result i32) (local $0 i64) (local $1 i64) - (local $2 i64) - (local $3 i32) + (local $2 i32) + (local $3 i64) (local $4 i32) (local $5 i64) + (local $6 f64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3903,56 +4022,33 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $0 - i64.const 32 - i64.shr_u - local.set $2 - local.get $0 + local.tee $3 i64.const 4294967295 i64.and - local.tee $0 - i64.const 31 - i64.shl - local.get $0 - i64.const 10 - i64.shl + local.set $1 + local.get $3 i64.const 32 i64.shr_u - i64.add - local.set $1 - local.get $2 + local.tee $3 i64.const 31 i64.shl - local.get $0 + local.get $1 i64.const 31 i64.shl - local.tee $5 - i64.const 32 - i64.shr_u - i64.add - local.get $5 - i64.const 4294967295 - i64.and - i64.const 2147483647 - i64.add + local.get $1 + i64.const 10 + i64.shl i64.const 32 i64.shr_u i64.add - global.get $~lib/util/number/_exp_pow - local.tee $4 - i32.const 3 - i32.add - local.get $2 - i64.const 31 - i64.shl - local.get $1 + local.tee $0 i64.const 32 i64.shr_u i64.add - local.get $1 + local.get $0 i64.const 4294967295 i64.and - local.get $2 + local.get $3 i64.const 10 i64.shl i64.add @@ -3963,31 +4059,27 @@ i64.add i64.const 1 i64.sub - local.tee $1 - local.get $4 - i32.const 3 - i32.add - local.get $1 - local.get $2 + local.tee $5 + local.get $3 i64.const 2147483647 i64.mul - local.get $0 + local.get $1 i64.const 2147483647 i64.mul - local.get $0 + local.get $1 i64.const 4294966784 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $1 + local.tee $0 i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $3 i64.const 4294966784 i64.mul - local.get $1 + local.get $0 i64.const 4294967295 i64.and i64.add @@ -3999,20 +4091,44 @@ i64.const 1 i64.add i64.sub + local.set $0 + local.get $3 + i64.const 31 + i64.shl + local.get $1 + i64.const 31 + i64.shl + local.tee $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 $5 + global.get $~lib/util/number/_exp_pow + i32.const 3 + i32.add + local.get $0 call $~lib/util/number/genDigits global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 1 i32.shl local.tee $4 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 9760 local.get $4 call $~lib/memory/memory.copy @@ -4020,7 +4136,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -4265,7 +4381,7 @@ i32.const 1 global.set $resolve-binary/a i32.const 1 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4291,7 +4407,7 @@ i32.add global.set $resolve-binary/a global.get $resolve-binary/a - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4317,7 +4433,7 @@ i32.sub global.set $resolve-binary/a global.get $resolve-binary/a - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4343,7 +4459,7 @@ i32.shl global.set $resolve-binary/a global.get $resolve-binary/a - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4390,7 +4506,7 @@ i32.const 2 global.set $resolve-binary/a i32.const 2 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4416,7 +4532,7 @@ i32.rem_s global.set $resolve-binary/a global.get $resolve-binary/a - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4442,7 +4558,7 @@ i32.shl global.set $resolve-binary/a global.get $resolve-binary/a - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4468,7 +4584,7 @@ i32.shr_s global.set $resolve-binary/a global.get $resolve-binary/a - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4494,7 +4610,7 @@ i32.shr_u global.set $resolve-binary/a global.get $resolve-binary/a - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4520,7 +4636,7 @@ i32.and global.set $resolve-binary/a global.get $resolve-binary/a - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4546,7 +4662,7 @@ i32.or global.set $resolve-binary/a global.get $resolve-binary/a - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4572,7 +4688,7 @@ i32.xor global.set $resolve-binary/a global.get $resolve-binary/a - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4594,7 +4710,7 @@ unreachable end i32.const 3 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4616,7 +4732,7 @@ unreachable end i32.const -1 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4638,7 +4754,7 @@ unreachable end i32.const 2 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4660,7 +4776,7 @@ unreachable end i32.const 2 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4682,7 +4798,7 @@ unreachable end i32.const 1 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4704,7 +4820,7 @@ unreachable end i32.const 4 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4768,7 +4884,7 @@ unreachable end i32.const 4 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4790,7 +4906,7 @@ unreachable end i32.const 1 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4812,7 +4928,7 @@ unreachable end i32.const 3 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4834,7 +4950,7 @@ unreachable end i32.const 1 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4856,7 +4972,7 @@ unreachable end i32.const 3 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4878,7 +4994,7 @@ unreachable end i32.const 2 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4900,7 +5016,7 @@ unreachable end i32.const 2 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4922,7 +5038,7 @@ unreachable end i32.const 0 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4944,7 +5060,7 @@ unreachable end i32.const 1 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4966,7 +5082,7 @@ unreachable end i32.const 2 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -5412,120 +5528,6 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/util/number/itoa32 (param $0 i32) (result i32) - (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 - 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 - 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 1408 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - local.tee $1 - select - 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 $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 $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 - 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 - ) (func $resolve-binary/Bar#constructor (result i32) (local $0 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index 05b07190a6..0e1ea2fec3 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -8,7 +8,7 @@ (type $none_=>_i32 (func (result i32))) (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) - (type $i64_i32_i64_i32_i64_i32_=>_i32 (func (param i64 i32 i64 i32 i64 i32) (result i32))) + (type $i64_i64_i32_i64_i32_=>_i32 (func (param i64 i64 i32 i64 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_=>_i32 (func (param f64) (result i32))) (type $f32_=>_i32 (func (param f32) (result i32))) @@ -1895,87 +1895,89 @@ i32.add f32.load ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i32) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) + (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 $8 i64) - (local $9 i32) - (local $10 i64) + (local $8 i32) + (local $9 i64) + (local $10 i32) (local $11 i64) - local.get $2 + (local $12 i64) + local.get $1 local.get $0 i64.sub - local.set $8 - local.get $2 + local.set $9 + local.get $1 i64.const 1 i32.const 0 - local.get $3 + local.get $2 i32.sub - local.tee $9 + local.tee $10 i64.extend_i32_s local.tee $0 i64.shl - local.tee $10 + local.tee $11 i64.const 1 i64.sub - local.tee $11 + local.tee $12 i64.and local.set $6 - local.get $2 + local.get $1 local.get $0 i64.shr_u i32.wrap_i64 - local.tee $1 - local.set $3 - local.get $1 + local.tee $2 + local.set $5 + local.get $2 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $5 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $5 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $5 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $5 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $5 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $5 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $5 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $5 i32.const 100000000 i32.ge_u i32.add end end - local.set $7 + local.set $8 loop $while-continue|0 - local.get $7 + local.get $8 i32.const 0 i32.gt_s if @@ -1991,277 +1993,277 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $7 + local.get $8 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 $1 + local.get $2 i32.const 1000000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 1000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 1000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 - local.set $3 + local.get $2 + local.set $5 i32.const 0 - local.set $1 + local.set $2 br $break|1 end i32.const 0 - local.set $3 + local.set $5 end - local.get $3 + local.get $4 local.get $5 i32.or if - local.get $5 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 i32.const 1 i32.shl i32.const 1776 i32.add - local.get $3 + local.get $5 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 end - local.get $7 + local.get $8 i32.const 1 i32.sub - local.set $7 + local.set $8 local.get $6 - local.get $1 + local.get $2 i64.extend_i32_u - local.get $9 + local.get $10 i64.extend_i32_s i64.shl i64.add local.tee $0 - local.get $4 + local.get $3 i64.le_u if - local.get $7 + local.get $8 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $7 + local.get $8 i32.const 2 i32.shl i32.const 2704 i32.add i64.load32_u - local.get $9 + local.get $10 i64.extend_i32_s i64.shl - local.set $2 - local.get $5 + local.set $1 + local.get $4 i32.const 1 i32.shl i32.const 1774 i32.add - local.tee $7 + local.tee $8 i32.load16_u - local.set $3 + local.set $5 loop $while-continue|3 - local.get $2 - local.get $4 + local.get $1 + local.get $3 local.get $0 i64.sub i64.le_u i32.const 0 local.get $0 - local.get $8 + local.get $9 i64.lt_u select if (result i32) i32.const 1 - local.get $8 + local.get $9 local.get $0 i64.sub local.get $0 - local.get $2 + local.get $1 i64.add local.tee $6 - local.get $8 + local.get $9 i64.sub i64.gt_u local.get $6 - local.get $8 + local.get $9 i64.lt_u select else i32.const 0 end if - local.get $3 + local.get $5 i32.const 1 i32.sub - local.set $3 + local.set $5 local.get $0 - local.get $2 + local.get $1 i64.add local.set $0 br $while-continue|3 end end - local.get $7 - local.get $3 - i32.store16 + local.get $8 local.get $5 + i32.store16 + local.get $4 return end br $while-continue|0 end end - local.get $9 - i64.extend_i32_s - local.set $0 loop $while-continue|4 - local.get $4 + local.get $3 i64.const 10 i64.mul - local.set $4 + local.set $3 local.get $6 i64.const 10 i64.mul - local.tee $2 - local.get $0 + local.tee $0 + local.get $10 + i64.extend_i32_s i64.shr_u - local.tee $6 - local.get $5 + local.tee $1 + local.get $4 i64.extend_i32_s i64.or i64.const 0 i64.ne if - local.get $5 + local.get $4 + local.tee $2 + i32.const 1 + i32.add + local.set $4 + local.get $2 i32.const 1 i32.shl i32.const 1776 i32.add - local.get $6 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 end - local.get $7 + local.get $8 i32.const 1 i32.sub - local.set $7 - local.get $4 - local.get $2 - local.get $11 + local.set $8 + local.get $3 + local.get $0 + local.get $12 i64.and local.tee $6 i64.le_u br_if $while-continue|4 end - local.get $7 + local.get $8 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K local.get $6 local.set $0 - local.get $8 + local.get $9 i32.const 0 - local.get $7 + local.get $8 i32.sub i32.const 2 i32.shl @@ -2269,39 +2271,39 @@ i32.add i64.load32_u i64.mul - local.set $2 - local.get $5 + local.set $1 + local.get $4 i32.const 1 i32.shl i32.const 1774 i32.add - local.tee $7 + local.tee $8 i32.load16_u - local.set $3 + local.set $5 loop $while-continue|6 - local.get $10 - local.get $4 + local.get $11 + local.get $3 local.get $0 i64.sub i64.le_u i32.const 0 local.get $0 - local.get $2 + local.get $1 i64.lt_u select if (result i32) i32.const 1 - local.get $2 + local.get $1 local.get $0 i64.sub local.get $0 - local.get $10 + local.get $11 i64.add local.tee $6 - local.get $2 + local.get $1 i64.sub i64.gt_u - local.get $2 + local.get $1 local.get $6 i64.gt_u select @@ -2309,21 +2311,21 @@ i32.const 0 end if - local.get $3 + local.get $5 i32.const 1 i32.sub - local.set $3 + local.set $5 local.get $0 - local.get $10 + local.get $11 i64.add local.set $0 br $while-continue|6 end end - local.get $7 - local.get $3 - i32.store16 + local.get $8 local.get $5 + i32.store16 + local.get $4 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3719,20 +3721,24 @@ (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) (local $1 i64) (local $2 i64) - (local $3 i64) + (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i64) + (local $5 i64) + (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) + (local $8 i64) + (local $9 i64) (local $10 i64) (local $11 i64) - (local $12 i64) + (local $12 f64) + (local $13 i64) + (local $14 i64) + (local $15 i64) + (local $16 i64) local.get $0 f64.const 0 f64.lt - local.tee $8 + local.tee $6 if (result f64) i32.const 1776 i32.const 45 @@ -3743,73 +3749,73 @@ local.get $0 end i64.reinterpret_f64 - local.tee $2 + local.tee $1 i64.const 9218868437227405312 i64.and i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $7 + local.tee $4 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl + local.set $2 + local.get $4 + i32.const 1 + local.get $4 + select + i32.const 1075 + i32.sub + local.tee $4 + i32.const 1 + i32.sub local.get $2 + local.get $1 i64.const 4503599627370495 i64.and i64.add - local.tee $1 + local.tee $2 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $2 + local.tee $1 i64.clz i32.wrap_i64 - local.set $4 - local.get $2 - local.get $4 + local.tee $3 + i32.sub + local.set $7 + local.get $1 + local.get $3 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $7 - i32.const 1 - local.get $7 - select - i32.const 1075 - i32.sub - local.tee $7 - i32.const 1 - i32.sub - local.get $4 - i32.sub - local.set $4 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $5 + local.tee $3 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $7 - local.get $5 - i32.sub local.get $4 + local.get $3 + i32.sub + local.get $7 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $4 + local.get $7 global.set $~lib/util/number/_exp - i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $4 + local.tee $7 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -3818,28 +3824,31 @@ f64.add local.tee $0 i32.trunc_f64_s - local.tee $5 - local.get $0 - local.get $5 + local.tee $3 f64.convert_i32_s + local.set $12 + i32.const 348 + local.get $3 + local.get $0 + local.get $12 f64.ne i32.add i32.const 3 i32.shr_s i32.const 1 i32.add - local.tee $5 + local.tee $3 i32.const 3 i32.shl - local.tee $9 + local.tee $4 i32.sub global.set $~lib/util/number/_K - local.get $9 + local.get $4 i32.const 1832 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $5 + local.get $3 i32.const 1 i32.shl i32.const 2528 @@ -3847,68 +3856,81 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $3 - i64.const 32 - i64.shr_u - local.set $2 - local.get $3 + local.tee $13 i64.const 4294967295 i64.and - local.tee $3 + local.tee $1 + local.get $2 + local.get $2 + i64.clz + i64.shl + local.tee $8 + i64.const 4294967295 + i64.and + local.tee $14 + i64.mul + local.set $9 global.get $~lib/util/number/_frc_plus - local.tee $6 + local.tee $5 + i64.const 4294967295 + i64.and + local.set $2 + local.get $1 + local.get $5 i64.const 32 i64.shr_u - local.tee $11 + local.tee $15 i64.mul - local.get $3 - local.get $6 + local.get $1 + local.get $2 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $5 + global.get $~lib/util/number/_frc_minus + local.tee $10 i64.const 4294967295 i64.and - local.tee $12 + local.set $11 + local.get $1 + local.get $8 + i64.const 32 + i64.shr_u + local.tee $16 i64.mul + local.get $9 i64.const 32 i64.shr_u i64.add - local.set $6 - local.get $8 - i32.const 1 - i32.shl - i32.const 1776 - i32.add - local.get $2 - local.get $1 + local.set $8 local.get $1 - i64.clz - i32.wrap_i64 - local.tee $5 - i64.extend_i32_s - i64.shl - local.tee $1 + local.get $10 i64.const 32 i64.shr_u local.tee $10 i64.mul - local.get $3 - local.get $10 - i64.mul - local.get $3 local.get $1 - i64.const 4294967295 - i64.and - local.tee $1 + local.get $11 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $10 + local.set $9 + local.get $13 + i64.const 32 + i64.shr_u + local.tee $1 + local.get $15 + i64.mul + local.get $5 i64.const 32 i64.shr_u i64.add local.get $1 local.get $2 i64.mul - local.get $10 + local.get $5 i64.const 4294967295 i64.and i64.add @@ -3917,25 +3939,20 @@ i64.const 32 i64.shr_u i64.add - global.get $~lib/util/number/_exp_pow - local.tee $9 - local.get $7 - local.get $5 - i32.sub - i32.add - i32.const -64 - i32.sub - local.get $2 - local.get $11 + i64.const 1 + i64.sub + local.tee $2 + local.get $1 + local.get $10 i64.mul - local.get $6 + local.get $9 i64.const 32 i64.shr_u i64.add - local.get $2 - local.get $12 + local.get $1 + local.get $11 i64.mul - local.get $6 + local.get $9 i64.const 4294967295 i64.and i64.add @@ -3945,41 +3962,25 @@ i64.shr_u i64.add i64.const 1 + i64.add i64.sub - local.tee $1 - local.get $4 - local.get $9 - i32.add - i32.const -64 - i32.sub - local.get $1 - local.get $2 - global.get $~lib/util/number/_frc_minus - local.tee $1 - i64.const 32 - i64.shr_u - local.tee $6 - i64.mul - local.get $3 + local.set $5 local.get $6 - i64.mul - local.get $3 + i32.const 1 + i32.shl + i32.const 1776 + i32.add local.get $1 - i64.const 4294967295 - i64.and - local.tee $3 + local.get $16 i64.mul + local.get $8 i64.const 32 i64.shr_u i64.add - local.tee $1 - i64.const 32 - i64.shr_u - i64.add - local.get $2 - local.get $3 - i64.mul local.get $1 + local.get $14 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -3988,16 +3989,20 @@ i64.const 32 i64.shr_u i64.add - i64.const 1 - i64.add - i64.sub - local.get $8 + local.get $2 + global.get $~lib/util/number/_exp_pow + local.get $7 + i32.add + i32.const -64 + i32.sub + local.get $5 + local.get $6 call $~lib/util/number/genDigits - local.get $8 + local.get $6 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $8 + local.get $6 i32.add ) (func $~lib/number/F32#toString (param $0 f32) (result i32) @@ -4116,7 +4121,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -4130,18 +4135,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -4149,20 +4151,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -4175,33 +4177,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end @@ -4251,25 +4253,25 @@ (func $~lib/number/U8#toString (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4852 - i32.lt_s - if - i32.const 21264 - i32.const 21312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32 + block $__inlined_func$~lib/util/number/utoa32 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4852 + i32.lt_s + if + i32.const 21264 + i32.const 21312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 i32.const 255 i32.and @@ -4281,7 +4283,6 @@ 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 @@ -4331,23 +4332,23 @@ i32.add end end - local.tee $2 + local.tee $0 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 - local.get $1 local.get $2 + local.get $1 + local.get $0 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 end - local.get $0 ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner1 diff --git a/tests/compiler/resolve-function-expression.optimized.wat b/tests/compiler/resolve-function-expression.optimized.wat index 6b1d64e078..b2dec3b3bf 100644 --- a/tests/compiler/resolve-function-expression.optimized.wat +++ b/tests/compiler/resolve-function-expression.optimized.wat @@ -209,16 +209,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 3424 i32.load i32.gt_u @@ -230,7 +230,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 3428 @@ -246,26 +246,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1314,8 +1314,8 @@ br_if $do-continue|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 @@ -1329,15 +1329,15 @@ local.get $0 i32.const 16 i32.add - local.set $1 + 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.set $5 - local.get $1 + local.set $4 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1348,14 +1348,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $1 + local.get $4 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1363,19 +1363,19 @@ i32.const 4 i32.sub end - local.tee $1 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if - local.get $1 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1 i32.const 27 - local.get $1 + local.get $2 i32.clz i32.sub i32.shl @@ -1383,16 +1383,16 @@ i32.sub i32.add else - local.get $1 + local.get $2 end i32.const 4 memory.size - local.tee $3 + local.tee $5 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $5 + local.get $4 i32.load offset=1568 i32.ne i32.shl @@ -1403,18 +1403,18 @@ i32.and i32.const 16 i32.shr_u - local.set $4 - local.get $3 - local.get $4 - local.get $3 - local.get $4 - i32.gt_s + local.set $1 + local.get $5 + local.get $1 + local.get $1 + local.get $5 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1422,18 +1422,18 @@ unreachable end end + local.get $4 local.get $5 - local.get $3 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $1 + local.get $4 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1444,8 +1444,8 @@ unreachable end end - local.get $1 local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1458,13 +1458,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 + local.get $4 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $3 i32.load - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1477,54 +1477,54 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $1 + local.get $2 i32.sub - local.tee $4 + local.tee $1 i32.const 16 i32.ge_u if - local.get $2 - local.get $1 local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $1 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $1 - local.get $4 + local.tee $2 + local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $1 + local.get $4 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 local.get $3 + local.get $5 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.tee $1 - local.get $2 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.get $1 local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1534,37 +1534,37 @@ i32.and i32.store end - local.get $2 + local.get $3 i32.const 1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $5 + local.set $4 + local.get $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.store offset=8 - local.get $5 - local.get $2 - local.get $5 + local.get $4 + local.get $3 + local.get $4 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1572,22 +1572,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add - local.tee $5 - local.set $4 + local.tee $4 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $4 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1596,18 +1596,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $4 + 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 @@ -1616,10 +1616,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1628,38 +1628,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 - local.get $4 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $3 + local.tee $1 i32.const 0 i32.store - local.get $3 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $4 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $4 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1672,20 +1672,20 @@ i32.sub i32.const 0 i32.store - local.get $4 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store offset=12 - local.get $3 + local.get $1 i32.const 0 i32.store offset=16 - local.get $3 + local.get $1 i32.const 0 i32.store offset=20 - local.get $3 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1708,49 +1708,49 @@ i32.sub i32.const 0 i32.store - local.get $3 - local.get $3 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 - local.get $4 - local.get $1 - i32.sub local.set $1 + local.get $2 + local.get $0 + i32.sub + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end end - local.get $5 + local.get $4 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -1794,411 +1794,416 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 3460 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - i32.const 2 - i32.const 1056 - i32.load - call_indirect $0 (type $i32_=>_i32) - i32.const 42 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + global.get $~lib/memory/__stack_pointer + i32.const 3460 + i32.lt_s + if + i32.const 19872 + i32.const 19920 i32.const 1 - i32.const 1168 - i32.load - call_indirect $0 (type $i32_=>_i32) - i32.const 42 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 6 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - memory.size - i32.const 16 - i32.shl - i32.const 19844 - i32.sub i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1572 - i32.const 1568 - i32.store - i32.const 1576 - i32.const 1568 - i32.store - i32.const 1568 - global.set $~lib/rt/itcms/pinSpace - i32.const 1604 - i32.const 1600 - i32.store - i32.const 1608 - i32.const 1600 - i32.store - i32.const 1600 - global.set $~lib/rt/itcms/toSpace - i32.const 1748 - i32.const 1744 - i32.store - i32.const 1752 - i32.const 1744 - i32.store - i32.const 1744 - global.set $~lib/rt/itcms/fromSpace + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 2 + i32.const 1056 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 42 + i32.ne + if i32.const 0 - i32.const 1200 - i32.load - call_indirect $0 (type $i32_=>_i32) - 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 3460 - i32.lt_s - br_if $folding-inner0 + i32.const 1088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1168 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 6 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 19844 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1572 + i32.const 1568 + i32.store + i32.const 1576 + i32.const 1568 + i32.store + i32.const 1568 + global.set $~lib/rt/itcms/pinSpace + i32.const 1604 + i32.const 1600 + i32.store + i32.const 1608 + i32.const 1600 + i32.store + i32.const 1600 + global.set $~lib/rt/itcms/toSpace + i32.const 1748 + i32.const 1744 + i32.store + i32.const 1752 + i32.const 1744 + 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 $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 3460 + i32.lt_s + if + i32.const 19872 + i32.const 19920 + 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 $1 + 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 $1 + br $__inlined_func$~lib/util/number/itoa32 + end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32 + local.get $1 + i32.sub + local.get $1 + local.get $1 + i32.const 31 + i32.shr_u + local.tee $3 + select + local.tee $0 + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 + 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 - global.set $~lib/memory/__stack_pointer - i32.const 1424 - local.set $1 - br $__inlined_func$~lib/util/number/itoa32 end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - i32.sub - local.get $1 + else local.get $1 - i32.const 31 - i32.shr_u - local.tee $4 - select - local.tee $0 - i32.const 100000 + i32.const 10000000 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 + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + 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 - end - local.get $4 - i32.add - local.tee $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $while-continue|0 - local.get $0 - i32.const 10000 + local.get $1 + i32.const 1000000000 i32.ge_u - if - local.get $0 - i32.const 10000 - i32.rem_u - local.set $3 - 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 $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1836 - i32.add - i64.load32_u - local.get $3 - 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 + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add end + end + local.get $3 + i32.add + local.tee $2 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $while-continue|0 local.get $0 - i32.const 100 + i32.const 10000 i32.ge_u if - local.get $1 - local.get $2 - i32.const 2 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add local.get $0 - i32.const 100 + i32.const 10000 i32.rem_u - i32.const 2 - i32.shl - i32.const 1836 - i32.add - i32.load - i32.store + local.set $4 local.get $0 - i32.const 100 + i32.const 10000 i32.div_u local.set $0 - end - local.get $0 - i32.const 10 - i32.ge_u - if local.get $1 local.get $2 - i32.const 2 + i32.const 4 i32.sub + local.tee $2 i32.const 1 i32.shl i32.add - local.get $0 + local.get $4 + i32.const 100 + i32.div_u i32.const 2 i32.shl i32.const 1836 i32.add - i32.load - i32.store - else - local.get $1 - local.get $2 - i32.const 1 - i32.sub - i32.const 1 + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 i32.shl + i32.const 1836 i32.add - local.get $0 - i32.const 48 - i32.add - i32.store16 - end - local.get $4 - if - local.get $1 - i32.const 45 - i32.store16 + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 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 $0 - local.get $1 - i32.store local.get $0 - i32.const 3408 - i32.store offset=4 - block $__inlined_func$~lib/string/String.__eq (result i32) - i32.const 1 + i32.const 100 + i32.ge_u + if local.get $1 - i32.const 3408 - i32.eq - br_if $__inlined_func$~lib/string/String.__eq - drop - i32.const 0 - i32.const 3408 - i32.const 0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1836 + i32.add + i32.load + i32.store + local.get $0 + i32.const 100 + i32.div_u + local.set $0 + end + local.get $0 + i32.const 10 + i32.ge_u + if local.get $1 - select - i32.eqz - br_if $__inlined_func$~lib/string/String.__eq - drop - i32.const 0 + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.const 2 + i32.shl + i32.const 1836 + i32.add + i32.load + i32.store + else local.get $1 - i32.const 20 + local.get $2 + i32.const 1 i32.sub - i32.load offset=16 i32.const 1 - i32.shr_u + i32.shl + i32.add + local.get $0 + i32.const 48 + i32.add + i32.store16 + end + local.get $3 + 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 + local.get $1 + local.set $0 + 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.get $0 + i32.const 3408 + i32.eq + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 + local.get $0 + i32.eqz + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + i32.const 3404 + i32.load + i32.const 1 + i32.shr_u + 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 $2 - i32.const 3404 - i32.load + i32.const 7 + i32.and i32.const 1 - i32.shr_u - 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 $4 - local.get $1 - local.tee $0 - i32.const 7 - i32.and - i32.const 1 - local.get $2 - local.tee $1 - i32.const 4 - i32.ge_u - select - i32.eqz - if - loop $do-continue|0 + local.get $1 + local.tee $0 + i32.const 4 + i32.ge_u + select + i32.eqz + if + loop $do-continue|0 + local.get $2 + i64.load + 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 $0 - i64.load - local.get $4 - i64.load - i64.eq - if - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $4 - i32.const 8 - i32.add - local.set $4 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 4 - i32.ge_u - br_if $do-continue|0 - end + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-continue|0 end end - loop $while-continue|1 - local.get $1 - local.tee $2 - i32.const 1 - i32.sub - local.set $1 + end + loop $while-continue|1 + local.get $0 + local.tee $1 + i32.const 1 + i32.sub + local.set $0 + local.get $1 + if local.get $2 + i32.load16_u + local.tee $4 + local.get $3 + i32.load16_u + local.tee $1 + i32.ne if local.get $4 - i32.load16_u - local.tee $2 - local.get $0 - i32.load16_u - local.tee $3 - i32.ne - if - local.get $3 - local.get $2 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $4 - i32.const 2 - i32.add - local.set $4 - br $while-continue|1 + local.get $1 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl end + 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 - i32.const 0 end - i32.eqz - end - i32.eqz - if i32.const 0 - i32.const 1088 - i32.const 11 - 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 + i32.eqz end - i32.const 19872 - i32.const 19920 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 11 + 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 ) ) diff --git a/tests/compiler/resolve-nested.optimized.wat b/tests/compiler/resolve-nested.optimized.wat index 1b85176177..0ee6fbac89 100644 --- a/tests/compiler/resolve-nested.optimized.wat +++ b/tests/compiler/resolve-nested.optimized.wat @@ -178,16 +178,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -199,7 +199,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -215,26 +215,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount diff --git a/tests/compiler/resolve-new.optimized.wat b/tests/compiler/resolve-new.optimized.wat index d015ce8fa5..2c5ee07dfd 100644 --- a/tests/compiler/resolve-new.optimized.wat +++ b/tests/compiler/resolve-new.optimized.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func)) - (type $none_=>_i32 (func (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_i32 (func (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 $i32_=>_i32 (func (param i32) (result i32))) @@ -174,16 +174,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -195,7 +195,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -211,26 +211,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1157,11 +1157,126 @@ end end ) - (func $~lib/rt/itcms/__new (result i32) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $resolve-new/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 $resolve-new/Foo $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return + end + return + end + unreachable + ) + (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 + global.get $~lib/memory/__stack_pointer + i32.const 1476 + i32.lt_s + if + i32.const 17888 + i32.const 17936 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + i32.const 17860 + 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 + call $resolve-new/Foo#constructor + global.set $resolve-new/foo + call $resolve-new/Foo#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $resolve-new/Foo#constructor (result i32) (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 + global.get $~lib/memory/__stack_pointer + i32.const 1476 + i32.lt_s + if + i32.const 17888 + i32.const 17936 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 @@ -1299,7 +1414,7 @@ i32.and i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if @@ -1314,7 +1429,7 @@ i32.const 32 i32.add local.tee $2 - local.get $3 + local.get $4 i32.const 4 i32.sub i32.const 1 @@ -1387,128 +1502,10 @@ i32.add i32.add global.set $~lib/rt/itcms/total + local.get $3 local.get $0 i32.const 20 i32.add - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $resolve-new/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 $resolve-new/Foo $invalid - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (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 - global.get $~lib/memory/__stack_pointer - i32.const 1476 - i32.lt_s - if - i32.const 17888 - i32.const 17936 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - memory.size - i32.const 16 - i32.shl - i32.const 17860 - 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 - call $resolve-new/Foo#constructor - global.set $resolve-new/foo - call $resolve-new/Foo#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $resolve-new/Foo#constructor (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 1476 - i32.lt_s - if - i32.const 17888 - i32.const 17936 - 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 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-propertyaccess.optimized.wat b/tests/compiler/resolve-propertyaccess.optimized.wat index 5c60253bf6..ef53c0bd57 100644 --- a/tests/compiler/resolve-propertyaccess.optimized.wat +++ b/tests/compiler/resolve-propertyaccess.optimized.wat @@ -209,16 +209,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 3680 i32.load i32.gt_u @@ -230,7 +230,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 3684 @@ -246,26 +246,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1714,44 +1714,259 @@ i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $1 local.get $3 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end end local.get $2 ) + (func $~lib/number/I32#toString (param $0 i32) (result 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 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 + 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 + 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 $3 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $while-continue|0 + local.get $1 + i32.const 10000 + 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 $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1660 + 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 $0 + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i32.load + i32.store + else + local.get $0 + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 + end + local.get $3 + 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 + end + local.get $0 + ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -1778,7 +1993,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1792,18 +2007,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -1811,20 +2023,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -1837,33 +2049,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end @@ -1955,7 +2167,7 @@ i32.const 1568 global.set $~lib/rt/itcms/fromSpace i32.const 1 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -1977,7 +2189,7 @@ unreachable end i32.const 11 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -1999,7 +2211,7 @@ unreachable end i32.const 2 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2021,7 +2233,7 @@ unreachable end i32.const 22 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2043,7 +2255,7 @@ unreachable end i32.const 3 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2065,7 +2277,7 @@ unreachable end i32.const 33 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2087,7 +2299,7 @@ unreachable end i32.const 4 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2109,7 +2321,7 @@ unreachable end i32.const 5 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2131,7 +2343,7 @@ unreachable end i32.const 55 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2153,7 +2365,7 @@ unreachable end i32.const 7 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2205,7 +2417,7 @@ i32.store offset=8 local.get $0 i32.load - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2227,7 +2439,7 @@ unreachable end i32.const 8 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2261,219 +2473,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/util/number/itoa32 (param $0 i32) (result 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 - 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 - 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 1248 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - local.tee $4 - select - 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 $4 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $1 - local.set $0 - local.get $2 - local.set $1 - loop $while-continue|0 - local.get $0 - i32.const 10000 - i32.ge_u - if - local.get $0 - i32.const 10000 - i32.rem_u - local.set $2 - local.get $0 - i32.const 10000 - i32.div_u - local.set $0 - local.get $3 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i64.load32_u - local.get $2 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $0 - i32.const 100 - i32.ge_u - if - local.get $3 - local.get $1 - i32.const 2 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i32.load - i32.store - local.get $0 - i32.const 100 - i32.div_u - local.set $0 - end - local.get $0 - i32.const 10 - i32.ge_u - if - local.get $3 - local.get $1 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i32.load - i32.store - else - local.get $3 - local.get $1 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 48 - i32.add - i32.store16 - end - local.get $4 - if - local.get $3 - 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 $3 - ) ) diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index 51fd751aea..11bd5e1b04 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -7,7 +7,7 @@ (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) - (type $i64_i32_i64_i32_i64_=>_i32 (func (param i64 i32 i64 i32 i64) (result i32))) + (type $i64_i64_i32_i64_=>_i32 (func (param i64 i64 i32 i64) (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)) @@ -213,16 +213,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 4608 i32.load i32.gt_u @@ -234,7 +234,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 4612 @@ -250,26 +250,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1318,8 +1318,8 @@ br_if $do-continue|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 @@ -1333,15 +1333,15 @@ local.get $0 i32.const 16 i32.add - local.set $1 + 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.set $5 - local.get $1 + local.set $4 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1352,14 +1352,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $1 + local.get $4 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1367,19 +1367,19 @@ i32.const 4 i32.sub end - local.tee $1 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if - local.get $1 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1 i32.const 27 - local.get $1 + local.get $2 i32.clz i32.sub i32.shl @@ -1387,16 +1387,16 @@ i32.sub i32.add else - local.get $1 + local.get $2 end i32.const 4 memory.size - local.tee $3 + local.tee $5 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $5 + local.get $4 i32.load offset=1568 i32.ne i32.shl @@ -1407,18 +1407,18 @@ i32.and i32.const 16 i32.shr_u - local.set $4 - local.get $3 - local.get $4 - local.get $3 - local.get $4 - i32.gt_s + local.set $1 + local.get $5 + local.get $1 + local.get $1 + local.get $5 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1426,18 +1426,18 @@ unreachable end end + local.get $4 local.get $5 - local.get $3 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $1 + local.get $4 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1448,8 +1448,8 @@ unreachable end end - local.get $1 local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1462,13 +1462,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 + local.get $4 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $3 i32.load - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1481,54 +1481,54 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $1 + local.get $2 i32.sub - local.tee $4 + local.tee $1 i32.const 16 i32.ge_u if - local.get $2 - local.get $1 local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $1 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $1 - local.get $4 + local.tee $2 + local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $1 + local.get $4 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 local.get $3 + local.get $5 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.tee $1 - local.get $2 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.get $1 local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1538,37 +1538,37 @@ i32.and i32.store end - local.get $2 + local.get $3 i32.const 1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $5 + local.set $4 + local.get $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.store offset=8 - local.get $5 - local.get $2 - local.get $5 + local.get $4 + local.get $3 + local.get $4 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1576,22 +1576,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add - local.tee $5 - local.set $4 + local.tee $4 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $4 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1600,18 +1600,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $4 + 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 @@ -1620,10 +1620,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1632,38 +1632,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 - local.get $4 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $3 + local.tee $1 i32.const 0 i32.store - local.get $3 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $4 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $4 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1676,20 +1676,20 @@ i32.sub i32.const 0 i32.store - local.get $4 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store offset=12 - local.get $3 + local.get $1 i32.const 0 i32.store offset=16 - local.get $3 + local.get $1 i32.const 0 i32.store offset=20 - local.get $3 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1712,49 +1712,49 @@ i32.sub i32.const 0 i32.store - local.get $3 - local.get $3 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 - local.get $4 - local.get $1 - i32.sub local.set $1 + local.get $2 + local.get $0 + i32.sub + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end end - local.get $5 + local.get $4 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -1886,7 +1886,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1900,18 +1900,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -1919,20 +1916,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -1945,33 +1942,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end @@ -1979,88 +1976,90 @@ end i32.eqz ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i32) (param $2 i64) (param $3 i32) (param $4 i64) (result i32) + (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 $8 i64) - (local $9 i32) - (local $10 i64) + (local $8 i32) + (local $9 i64) + (local $10 i32) (local $11 i64) - local.get $2 + (local $12 i64) + local.get $1 local.get $0 i64.sub - local.set $8 - local.get $2 + local.set $9 + local.get $1 i64.const 1 i32.const 0 - local.get $3 + local.get $2 i32.sub - local.tee $9 + local.tee $10 i64.extend_i32_s local.tee $0 i64.shl - local.tee $10 + local.tee $11 i64.const 1 i64.sub - local.tee $11 + local.tee $12 i64.and local.set $6 - local.get $2 + local.get $1 local.get $0 i64.shr_u i32.wrap_i64 - local.tee $1 - local.set $3 - local.get $1 + local.tee $2 + local.set $5 + local.get $2 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $5 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $5 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $5 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $5 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $5 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $5 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $5 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $5 i32.const 100000000 i32.ge_u i32.add end end - local.set $7 + local.set $8 loop $while-continue|0 - local.get $7 + local.get $8 i32.const 0 i32.gt_s if @@ -2076,277 +2075,277 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $7 + local.get $8 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 $1 + local.get $2 i32.const 1000000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 1000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 1000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 - local.set $3 + local.get $2 + local.set $5 i32.const 0 - local.set $1 + local.set $2 br $break|1 end i32.const 0 - local.set $3 + local.set $5 end - local.get $3 + local.get $4 local.get $5 i32.or if - local.get $5 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 i32.const 1 i32.shl i32.const 3472 i32.add - local.get $3 + local.get $5 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 end - local.get $7 + local.get $8 i32.const 1 i32.sub - local.set $7 + local.set $8 local.get $6 - local.get $1 + local.get $2 i64.extend_i32_u - local.get $9 + local.get $10 i64.extend_i32_s i64.shl i64.add local.tee $0 - local.get $4 + local.get $3 i64.le_u if - local.get $7 + local.get $8 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $7 + local.get $8 i32.const 2 i32.shl i32.const 4400 i32.add i64.load32_u - local.get $9 + local.get $10 i64.extend_i32_s i64.shl - local.set $2 - local.get $5 + local.set $1 + local.get $4 i32.const 1 i32.shl i32.const 3470 i32.add - local.tee $7 + local.tee $8 i32.load16_u - local.set $3 + local.set $5 loop $while-continue|3 - local.get $2 - local.get $4 + local.get $1 + local.get $3 local.get $0 i64.sub i64.le_u i32.const 0 local.get $0 - local.get $8 + local.get $9 i64.lt_u select if (result i32) i32.const 1 - local.get $8 + local.get $9 local.get $0 i64.sub local.get $0 - local.get $2 + local.get $1 i64.add local.tee $6 - local.get $8 + local.get $9 i64.sub i64.gt_u local.get $6 - local.get $8 + local.get $9 i64.lt_u select else i32.const 0 end if - local.get $3 + local.get $5 i32.const 1 i32.sub - local.set $3 + local.set $5 local.get $0 - local.get $2 + local.get $1 i64.add local.set $0 br $while-continue|3 end end - local.get $7 - local.get $3 - i32.store16 + local.get $8 local.get $5 + i32.store16 + local.get $4 return end br $while-continue|0 end end - local.get $9 - i64.extend_i32_s - local.set $0 loop $while-continue|4 - local.get $4 + local.get $3 i64.const 10 i64.mul - local.set $4 + local.set $3 local.get $6 i64.const 10 i64.mul - local.tee $2 - local.get $0 + local.tee $0 + local.get $10 + i64.extend_i32_s i64.shr_u - local.tee $6 - local.get $5 + local.tee $1 + local.get $4 i64.extend_i32_s i64.or i64.const 0 i64.ne if - local.get $5 + local.get $4 + local.tee $2 + i32.const 1 + i32.add + local.set $4 + local.get $2 i32.const 1 i32.shl i32.const 3472 i32.add - local.get $6 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 end - local.get $7 + local.get $8 i32.const 1 i32.sub - local.set $7 - local.get $4 - local.get $2 - local.get $11 + local.set $8 + local.get $3 + local.get $0 + local.get $12 i64.and local.tee $6 i64.le_u br_if $while-continue|4 end - local.get $7 + local.get $8 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K local.get $6 local.set $0 - local.get $8 + local.get $9 i32.const 0 - local.get $7 + local.get $8 i32.sub i32.const 2 i32.shl @@ -2354,39 +2353,39 @@ i32.add i64.load32_u i64.mul - local.set $2 - local.get $5 + local.set $1 + local.get $4 i32.const 1 i32.shl i32.const 3470 i32.add - local.tee $7 + local.tee $8 i32.load16_u - local.set $3 + local.set $5 loop $while-continue|6 - local.get $10 - local.get $4 + local.get $11 + local.get $3 local.get $0 i64.sub i64.le_u i32.const 0 local.get $0 - local.get $2 + local.get $1 i64.lt_u select if (result i32) i32.const 1 - local.get $2 + local.get $1 local.get $0 i64.sub local.get $0 - local.get $10 + local.get $11 i64.add local.tee $6 - local.get $2 + local.get $1 i64.sub i64.gt_u - local.get $2 + local.get $1 local.get $6 i64.gt_u select @@ -2394,21 +2393,21 @@ i32.const 0 end if - local.get $3 + local.get $5 i32.const 1 i32.sub - local.set $3 + local.set $5 local.get $0 - local.get $10 + local.get $11 i64.add local.set $0 br $while-continue|6 end end - local.get $7 - local.get $3 - i32.store16 + local.get $8 local.get $5 + i32.store16 + local.get $4 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3510,67 +3509,67 @@ local.get $3 i32.const 1 i32.sub - local.tee $1 + local.tee $0 i32.const 0 i32.lt_s local.tee $3 if i32.const 0 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 end - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.set $0 + local.set $1 i32.const 3476 - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.add local.tee $0 @@ -3744,12 +3743,12 @@ ) (func $~start (local $0 i32) - (local $1 i32) - (local $2 i64) + (local $1 i64) + (local $2 i32) (local $3 i64) (local $4 i64) (local $5 i64) - (local $6 f64) + (local $6 i64) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3804,10 +3803,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2 call $~lib/rt/itcms/__new local.tee $0 @@ -3821,10 +3819,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store - local.get $1 + local.get $2 i32.const 3232 i32.store offset=4 local.get $0 @@ -3859,33 +3857,34 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $5 - i64.const 4294967295 - i64.and - local.set $3 - local.get $5 + local.tee $1 i64.const 32 i64.shr_u - local.tee $5 + local.tee $4 i64.const 31 i64.shl - local.get $3 + local.tee $6 + local.get $1 + i64.const 4294967295 + i64.and + local.tee $1 i64.const 31 i64.shl - local.get $3 + local.tee $5 + local.get $1 i64.const 10 i64.shl i64.const 32 i64.shr_u i64.add - local.tee $4 + local.tee $3 i64.const 32 i64.shr_u i64.add - local.get $4 + local.get $3 i64.const 4294967295 i64.and - local.get $5 + local.get $4 i64.const 10 i64.shl i64.add @@ -3896,18 +3895,13 @@ i64.add i64.const 1 i64.sub - local.set $2 + local.set $3 + local.get $6 local.get $5 - i64.const 31 - i64.shl - local.get $3 - i64.const 31 - i64.shl - local.tee $4 i64.const 32 i64.shr_u i64.add - local.get $4 + local.get $5 i64.const 4294967295 i64.and i64.const 2147483647 @@ -3915,35 +3909,31 @@ i64.const 32 i64.shr_u i64.add + local.get $3 global.get $~lib/util/number/_exp_pow - local.tee $1 - i32.const 1 - i32.add - local.get $2 - local.get $1 i32.const 1 i32.add - local.get $2 - local.get $5 + local.get $3 + local.get $4 i64.const 2147483647 i64.mul - local.get $3 + local.get $1 i64.const 2147483647 i64.mul - local.get $3 + local.get $1 i64.const 4294966784 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $2 + local.tee $1 i64.const 32 i64.shr_u i64.add - local.get $5 + local.get $4 i64.const 4294966784 i64.mul - local.get $2 + local.get $1 i64.const 4294967295 i64.and i64.add @@ -3958,28 +3948,27 @@ call $~lib/util/number/genDigits global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.const 1 i32.shl - local.tee $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 call $~lib/rt/itcms/__new local.tee $0 i32.store local.get $0 i32.const 3472 - local.get $1 + 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 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store - local.get $1 + local.get $2 i32.const 4464 i32.store offset=4 local.get $0 diff --git a/tests/compiler/resolve-unary.optimized.wat b/tests/compiler/resolve-unary.optimized.wat index 3cb3074983..d32f2bd0c1 100644 --- a/tests/compiler/resolve-unary.optimized.wat +++ b/tests/compiler/resolve-unary.optimized.wat @@ -229,16 +229,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 3728 i32.load i32.gt_u @@ -250,7 +250,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 3732 @@ -266,26 +266,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1734,44 +1734,259 @@ i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $1 local.get $3 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end end local.get $2 ) + (func $~lib/number/I32#toString (param $0 i32) (result 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 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 + 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 + 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 $3 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $while-continue|0 + local.get $1 + i32.const 10000 + 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 $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1660 + 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 $0 + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i32.load + i32.store + else + local.get $0 + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 + end + local.get $3 + 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 + end + local.get $0 + ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -1798,7 +2013,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1812,18 +2027,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -1831,20 +2043,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -1857,33 +2069,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end @@ -1981,7 +2193,7 @@ i32.const 1568 global.set $~lib/rt/itcms/fromSpace i32.const -1 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2003,7 +2215,7 @@ unreachable end i32.const 1 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2029,7 +2241,7 @@ i32.add global.set $resolve-unary/a global.get $resolve-unary/a - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2055,7 +2267,7 @@ i32.sub global.set $resolve-unary/a global.get $resolve-unary/a - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2125,7 +2337,7 @@ global.get $resolve-unary/a i32.const -1 i32.xor - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2152,7 +2364,7 @@ i32.add global.set $resolve-unary/b local.get $0 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2179,7 +2391,7 @@ i32.sub global.set $resolve-unary/b local.get $0 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -2531,219 +2743,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/util/number/itoa32 (param $0 i32) (result 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 - 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 - 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 1248 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - local.tee $4 - select - 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 $4 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $1 - local.set $0 - local.get $2 - local.set $1 - loop $while-continue|0 - local.get $0 - i32.const 10000 - i32.ge_u - if - local.get $0 - i32.const 10000 - i32.rem_u - local.set $2 - local.get $0 - i32.const 10000 - i32.div_u - local.set $0 - local.get $3 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i64.load32_u - local.get $2 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $0 - i32.const 100 - i32.ge_u - if - local.get $3 - local.get $1 - i32.const 2 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i32.load - i32.store - local.get $0 - i32.const 100 - i32.div_u - local.set $0 - end - local.get $0 - i32.const 10 - i32.ge_u - if - local.get $3 - local.get $1 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i32.load - i32.store - else - local.get $3 - local.get $1 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 48 - i32.add - i32.store16 - end - local.get $4 - if - local.get $3 - 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 $3 - ) ) diff --git a/tests/compiler/rt/finalize.optimized.wat b/tests/compiler/rt/finalize.optimized.wat index 8b15381f84..da8125e469 100644 --- a/tests/compiler/rt/finalize.optimized.wat +++ b/tests/compiler/rt/finalize.optimized.wat @@ -2,9 +2,9 @@ (type $none_=>_none (func)) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (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))) (type $i32_=>_i32 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $rt/finalize/expect (mut i32) (i32.const 0)) @@ -172,16 +172,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1488 i32.load i32.gt_u @@ -193,7 +193,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -209,26 +209,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1170,11 +1170,63 @@ end end ) - (func $~lib/rt/itcms/__new (result i32) + (func $start:rt/finalize (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 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 $3 + i32.const 0 + i32.store global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1312,7 +1364,7 @@ i32.and i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if @@ -1327,7 +1379,7 @@ i32.const 32 i32.add local.tee $2 - local.get $3 + local.get $4 i32.const 4 i32.sub i32.const 1 @@ -1400,100 +1452,10 @@ i32.add i32.add global.set $~lib/rt/itcms/total + local.get $3 local.get $0 i32.const 20 i32.add - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $rt/finalize/Ref - 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 $rt/finalize/Ref $invalid - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start - (local $0 i32) - global.get $~started - if - return - end - i32.const 1 - global.set $~started - 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 i32.store global.get $~lib/memory/__stack_pointer @@ -1546,4 +1508,42 @@ unreachable end ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $rt/finalize/Ref + 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 $rt/finalize/Ref $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return + end + return + end + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:rt/finalize + ) ) diff --git a/tests/compiler/rt/instanceof.optimized.wat b/tests/compiler/rt/instanceof.optimized.wat index 2f088c4a51..3eba342979 100644 --- a/tests/compiler/rt/instanceof.optimized.wat +++ b/tests/compiler/rt/instanceof.optimized.wat @@ -47,38 +47,50 @@ (local $1 i32) global.get $rt/instanceof/animal local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end global.get $rt/instanceof/cat local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end global.get $rt/instanceof/blackcat local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end global.get $rt/instanceof/nullableAnimal local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end global.get $rt/instanceof/nullableCat local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end global.get $rt/instanceof/nullableBlackcat local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end i32.const 1248 @@ -212,16 +224,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1504 i32.load i32.gt_u @@ -233,7 +245,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1508 @@ -249,26 +261,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount diff --git a/tests/compiler/rt/runtime-incremental-export.optimized.wat b/tests/compiler/rt/runtime-incremental-export.optimized.wat index f6d53b32c4..3bbf08ee89 100644 --- a/tests/compiler/rt/runtime-incremental-export.optimized.wat +++ b/tests/compiler/rt/runtime-incremental-export.optimized.wat @@ -1692,38 +1692,38 @@ i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $1 local.get $3 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end diff --git a/tests/compiler/std-wasi/console.optimized.wat b/tests/compiler/std-wasi/console.optimized.wat index 0cb6c11f35..a899cf8df1 100644 --- a/tests/compiler/std-wasi/console.optimized.wat +++ b/tests/compiler/std-wasi/console.optimized.wat @@ -11,6 +11,7 @@ (type $none_=>_i32 (func (result i32))) (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) (type $none_=>_i64 (func (result i64))) + (type $i64_=>_i32 (func (param i64) (result i32))) (import "wasi_snapshot_preview1" "fd_write" (func $~lib/bindings/wasi_snapshot_preview1/fd_write (param i32 i32 i32 i32) (result i32))) (import "wasi_snapshot_preview1" "proc_exit" (func $~lib/bindings/wasi_snapshot_preview1/proc_exit (param i32))) (import "wasi_snapshot_preview1" "clock_time_get" (func $~lib/bindings/wasi_snapshot_preview1/clock_time_get (param i32 i64 i32) (result i32))) @@ -292,43 +293,42 @@ unreachable end local.get $0 - local.tee $3 local.get $1 i32.const 1 i32.shl i32.add local.set $4 local.get $2 - local.set $0 + local.set $1 loop $while-continue|0 - local.get $3 + local.get $0 local.get $4 i32.lt_u if - local.get $3 + local.get $0 i32.load16_u - local.tee $1 + local.tee $3 i32.const 128 i32.lt_u if (result i32) - local.get $0 local.get $1 + local.get $3 i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add else - local.get $1 + local.get $3 i32.const 2048 i32.lt_u if (result i32) - local.get $0 local.get $1 + local.get $3 i32.const 6 i32.shr_u i32.const 192 i32.or - local.get $1 + local.get $3 i32.const 63 i32.and i32.const 128 @@ -337,28 +337,28 @@ i32.shl i32.or i32.store16 - local.get $0 + local.get $1 i32.const 2 i32.add else - local.get $1 + local.get $3 i32.const 63488 i32.and i32.const 55296 i32.eq if local.get $4 - local.get $3 + local.get $0 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $1 + local.get $3 i32.const 56320 i32.lt_u select if - local.get $3 + local.get $0 i32.load16_u offset=2 local.tee $5 i32.const 64512 @@ -366,8 +366,8 @@ i32.const 56320 i32.eq if - local.get $0 local.get $1 + local.get $3 i32.const 1023 i32.and i32.const 10 @@ -378,14 +378,14 @@ i32.const 1023 i32.and i32.or - local.tee $1 + local.tee $3 i32.const 63 i32.and i32.const 128 i32.or i32.const 24 i32.shl - local.get $1 + local.get $3 i32.const 6 i32.shr_u i32.const 63 @@ -395,7 +395,7 @@ i32.const 16 i32.shl i32.or - local.get $1 + local.get $3 i32.const 12 i32.shr_u i32.const 63 @@ -405,32 +405,32 @@ i32.const 8 i32.shl i32.or - local.get $1 + local.get $3 i32.const 18 i32.shr_u i32.const 240 i32.or i32.or i32.store - local.get $0 + local.get $1 i32.const 4 i32.add - local.set $0 - local.get $3 + local.set $1 + local.get $0 i32.const 4 i32.add - local.set $3 + local.set $0 br $while-continue|0 end end end - local.get $0 local.get $1 + local.get $3 i32.const 12 i32.shr_u i32.const 224 i32.or - local.get $1 + local.get $3 i32.const 6 i32.shr_u i32.const 63 @@ -441,27 +441,27 @@ i32.shl i32.or i32.store16 - local.get $0 local.get $1 + local.get $3 i32.const 63 i32.and i32.const 128 i32.or i32.store8 offset=2 - local.get $0 + local.get $1 i32.const 3 i32.add end end - local.set $0 - local.get $3 + local.set $1 + local.get $0 i32.const 2 i32.add - local.set $3 + local.set $0 br $while-continue|0 end end - local.get $0 + local.get $1 local.get $2 i32.sub ) @@ -2089,6 +2089,8 @@ end return end + i32.const 0 + local.set $3 local.get $1 local.tee $2 local.get $2 @@ -2097,8 +2099,6 @@ i32.load offset=16 i32.add local.set $4 - i32.const 0 - local.set $3 loop $while-continue|0 local.get $2 local.get $4 @@ -3479,6 +3479,257 @@ i32.store16 end ) + (func $~lib/number/U64#toString (param $0 i64) (result 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 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.wrap_i64 + local.tee $3 + 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.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + 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 $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $0 + i64.const 100000000 + i64.div_u + local.tee $0 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.tee $3 + i32.const 10000 + i32.rem_u + local.tee $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 6012 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 6012 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + local.get $2 + local.get $1 + i32.const 4 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 6012 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 6012 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $2 + local.get $0 + i32.wrap_i64 + 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 + end + local.get $2 + ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) (local $2 i32) @@ -3686,12 +3937,13 @@ block $__inlined_func$~lib/string/String.__eq (result i32) i32.const 1 local.get $1 + local.tee $4 local.get $2 i32.eq br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 - local.get $1 + local.get $4 i32.const 0 local.get $2 select @@ -3706,7 +3958,7 @@ i32.const 1 i32.shr_u local.tee $3 - local.get $1 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -3717,11 +3969,10 @@ drop block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $2 - local.tee $4 + local.tee $5 i32.const 7 i32.and - local.get $1 - local.tee $5 + local.get $4 i32.const 7 i32.and i32.or @@ -3734,20 +3985,20 @@ i32.eqz if loop $do-continue|0 - local.get $4 - i64.load local.get $5 i64.load + local.get $4 + i64.load i64.eq if - local.get $4 - i32.const 8 - i32.add - local.set $4 local.get $5 i32.const 8 i32.add local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 local.get $2 i32.const 4 i32.sub @@ -3766,10 +4017,10 @@ local.set $2 local.get $3 if - local.get $4 + local.get $5 i32.load16_u local.tee $3 - local.get $5 + local.get $4 i32.load16_u local.tee $7 i32.ne @@ -3779,14 +4030,14 @@ i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $4 - i32.const 2 - i32.add - local.set $4 local.get $5 i32.const 2 i32.add local.set $5 + local.get $4 + i32.const 2 + i32.add + local.set $4 br $while-continue|1 end end @@ -3997,325 +4248,83 @@ (func $~lib/console/timeLogImpl (param $0 i32) (local $1 i32) (local $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 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 7972 - 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 - global.get $~lib/console/timers - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,u64>#find - local.tee $1 - i32.eqz - if - i32.const 5696 - i32.const 5760 - i32.const 105 - i32.const 17 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i64.load offset=8 - local.set $2 - call $~lib/process/process.hrtime - local.get $2 - i64.sub - i64.const 1000000 - i64.div_u - local.set $2 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - 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 $2 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 6000 - local.set $3 - 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 $4 - 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.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 $4 - 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 - 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.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - loop $while-continue|0 - local.get $2 - i64.const 100000000 - i64.ge_u - if - local.get $3 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $2 - i64.const 100000000 - i64.div_u - local.tee $2 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.tee $4 - i32.const 10000 - i32.rem_u - local.tee $6 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 6012 - i32.add - i64.load32_u - local.get $6 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 6012 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - local.get $3 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - i32.const 10000 - i32.div_u - local.tee $4 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 6012 - i32.add - i64.load32_u - local.get $4 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 6012 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $3 - local.get $2 - i32.wrap_i64 - 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 - end - local.get $5 - local.get $3 - i32.store offset=4 - i32.const 1 - local.get $0 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 7584 - i32.store offset=8 - i32.const 1 - i32.const 7584 - call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + if + i32.const 24384 + i32.const 24432 i32.const 1 - local.get $3 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=8 i32.const 1 - i32.const 7616 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return + call $~lib/wasi/index/abort + unreachable end - i32.const 24384 - i32.const 24432 + 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 + global.get $~lib/console/timers + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $0 + call $~lib/util/hash/HASH<~lib/string/String> + call $~lib/map/Map<~lib/string/String,u64>#find + local.tee $1 + i32.eqz + if + i32.const 5696 + i32.const 5760 + i32.const 105 + i32.const 17 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i64.load offset=8 + local.set $2 + call $~lib/process/process.hrtime + local.get $2 + i64.sub + i64.const 1000000 + i64.div_u + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/number/U64#toString + local.tee $1 + i32.store offset=4 i32.const 1 + local.get $0 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 7584 + i32.store offset=8 i32.const 1 - call $~lib/wasi/index/abort - unreachable + i32.const 7584 + call $~lib/process/writeString + i32.const 1 + local.get $1 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=8 + i32.const 1 + i32.const 7616 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/console/console.timeLog (param $0 i32) (local $1 i32) diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index 4ca6d149ce..9e7744fee7 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -1,10 +1,10 @@ (module (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_i32 (func (param 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 $i32_=>_i32 (func (param 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_i32_i32_=>_none (func (param i32 i32 i32 i32))) @@ -249,43 +249,42 @@ unreachable end local.get $0 - local.tee $3 local.get $1 i32.const 1 i32.shl i32.add local.set $4 local.get $2 - local.set $0 + local.set $1 loop $while-continue|0 - local.get $3 + local.get $0 local.get $4 i32.lt_u if - local.get $3 + local.get $0 i32.load16_u - local.tee $1 + local.tee $3 i32.const 128 i32.lt_u if (result i32) - local.get $0 local.get $1 + local.get $3 i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add else - local.get $1 + local.get $3 i32.const 2048 i32.lt_u if (result i32) - local.get $0 local.get $1 + local.get $3 i32.const 6 i32.shr_u i32.const 192 i32.or - local.get $1 + local.get $3 i32.const 63 i32.and i32.const 128 @@ -294,28 +293,28 @@ i32.shl i32.or i32.store16 - local.get $0 + local.get $1 i32.const 2 i32.add else - local.get $1 + local.get $3 i32.const 63488 i32.and i32.const 55296 i32.eq if local.get $4 - local.get $3 + local.get $0 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $1 + local.get $3 i32.const 56320 i32.lt_u select if - local.get $3 + local.get $0 i32.load16_u offset=2 local.tee $5 i32.const 64512 @@ -323,8 +322,8 @@ i32.const 56320 i32.eq if - local.get $0 local.get $1 + local.get $3 i32.const 1023 i32.and i32.const 10 @@ -335,14 +334,14 @@ i32.const 1023 i32.and i32.or - local.tee $1 + local.tee $3 i32.const 63 i32.and i32.const 128 i32.or i32.const 24 i32.shl - local.get $1 + local.get $3 i32.const 6 i32.shr_u i32.const 63 @@ -352,7 +351,7 @@ i32.const 16 i32.shl i32.or - local.get $1 + local.get $3 i32.const 12 i32.shr_u i32.const 63 @@ -362,32 +361,32 @@ i32.const 8 i32.shl i32.or - local.get $1 + local.get $3 i32.const 18 i32.shr_u i32.const 240 i32.or i32.or i32.store - local.get $0 + local.get $1 i32.const 4 i32.add - local.set $0 - local.get $3 + local.set $1 + local.get $0 i32.const 4 i32.add - local.set $3 + local.set $0 br $while-continue|0 end end end - local.get $0 local.get $1 + local.get $3 i32.const 12 i32.shr_u i32.const 224 i32.or - local.get $1 + local.get $3 i32.const 6 i32.shr_u i32.const 63 @@ -398,27 +397,27 @@ i32.shl i32.or i32.store16 - local.get $0 local.get $1 + local.get $3 i32.const 63 i32.and i32.const 128 i32.or i32.store8 offset=2 - local.get $0 + local.get $1 i32.const 3 i32.add end end - local.set $0 - local.get $3 + local.set $1 + local.get $0 i32.const 2 i32.add - local.set $3 + local.set $0 br $while-continue|0 end end - local.get $0 + local.get $1 local.get $2 i32.sub ) @@ -3893,434 +3892,46 @@ end end ) - (func $~lib/string/String.__concat (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#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.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 - 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 $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1 - i32.shl - local.tee $3 - i32.add - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 4848 - local.set $1 - br $__inlined_func$~lib/string/String#concat - end + block $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - i32.const 4768 - local.get $2 - call $~lib/memory/memory.copy - local.get $1 - local.get $2 - i32.add - local.get $0 - local.get $3 - call $~lib/memory/memory.copy + i32.const 6900 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $1 - ) - (func $~lib/process/writeString (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - i32.const -1 - local.set $1 - i32.const -1 - local.set $2 - i32.const -1 - local.set $3 - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 - end - local.get $0 - i32.load16_u offset=6 - local.tee $3 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u offset=4 - local.tee $2 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u offset=2 - local.tee $1 - i32.const 128 - i32.ge_u - br_if $break|0 - end + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray local.get $0 - i32.load16_u - local.tee $4 - i32.const 128 - i32.ge_u - br_if $break|0 - i32.const 6672 - i32.const 6680 - i32.store - i32.const 6676 - local.get $1 - i32.const -1 - i32.ne - i32.const 1 - i32.add - local.get $2 - i32.const -1 - i32.ne - i32.add - local.get $3 - i32.const -1 - i32.ne - i32.add - i32.store - i32.const 6680 - local.get $4 - local.get $1 - i32.const 8 - i32.shl - i32.or - local.get $2 - i32.const 16 - i32.shl - i32.or - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - i32.const 1 - i32.const 6672 i32.const 1 - i32.const 6684 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.tee $0 - i32.const 65535 - i32.and + i32.sub + local.tee $2 + i32.const 0 + i32.lt_s if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 6720 - i32.const 178 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - end - return - end - local.get $0 - local.set $1 - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.add - local.set $3 - i32.const 0 - local.set $2 - loop $while-continue|0 - local.get $1 - local.get $3 - i32.lt_u - if - local.get $1 - i32.load16_u - local.tee $4 - i32.const 128 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1 - i32.add - else - local.get $4 - i32.const 2048 - i32.lt_u - if (result i32) - local.get $2 - i32.const 2 - i32.add - else - local.get $3 - local.get $1 - i32.const 2 - i32.add - i32.gt_u - i32.const 0 - local.get $4 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - select - if - local.get $1 - i32.load16_u offset=2 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $2 - i32.const 3 - i32.add - end - end - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - 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 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $4 - i32.const 3 - global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $2 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $1 - i32.ne - if - i32.const 0 - i32.const 6720 - i32.const 184 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - i32.const 6672 - local.get $2 - i32.store - i32.const 6676 - local.get $1 - i32.store - i32.const 1 - i32.const 6672 - i32.const 1 - i32.const 6680 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $0 - local.get $2 - call $~lib/rt/tlsf/__free - local.get $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 6720 - i32.const 189 - i32.const 12 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1472 - i32.const 1680 - i32.const 164 - i32.const 45 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - ) - (func $~lib/rt/__visit_members (param $0 i32) - 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-inner0 $invalid - end - return - end - return - end - unreachable - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std-wasi/crypto - ) - (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result 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 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - i32.const 6656 - i32.store - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.set $0 - local.get $2 - 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 - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 - i32.const 1 - i32.sub - local.tee $2 - 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 + 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 block $folding-inner0 local.get $2 @@ -4492,7 +4103,7 @@ call $~lib/util/number/itoa_buffered local.get $1 i32.add - local.tee $1 + local.tee $2 i32.gt_s if global.get $~lib/memory/__stack_pointer @@ -4506,51 +4117,53 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/string/String#substring - 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 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $3 + i32.gt_s + local.set $4 + block $__inlined_func$~lib/string/String#substring i32.const 0 - i32.gt_s - select - local.tee $3 local.get $1 - i32.const 0 local.get $1 i32.const 0 i32.gt_s select - local.tee $1 - local.get $2 + local.tee $2 + local.get $3 local.get $1 - local.get $2 - i32.lt_s + local.get $4 select - local.tee $1 - local.get $1 + local.tee $3 + local.get $2 local.get $3 - i32.lt_s + i32.gt_s select i32.const 1 i32.shl - local.tee $5 + local.tee $4 + local.get $2 local.get $3 - local.get $1 - local.get $1 + local.get $2 local.get $3 - i32.gt_s + i32.lt_s select i32.const 1 i32.shl - local.tee $3 + local.tee $2 i32.sub - local.tee $4 + local.tee $3 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -4562,65 +4175,469 @@ br $__inlined_func$~lib/string/String#substring end i32.const 0 - local.get $5 - local.get $2 + local.get $4 + local.get $1 i32.const 1 i32.shl i32.eq - local.get $3 - select + local.get $2 + select + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/string/String#substring + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $2 + i32.add + 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 $1 + local.set $0 + end + br $folding-inner0 + 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 + local.get $0 + return + end + i32.const 23312 + i32.const 23360 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + ) + (func $~lib/string/String.__concat (param $0 i32) (result i32) + (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 + 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 $2 + local.get $0 + local.tee $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $3 + i32.add + local.tee $0 + i32.eqz + 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/string/String#concat + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 4768 + local.get $2 + call $~lib/memory/memory.copy + local.get $0 + local.get $2 + i32.add + local.get $1 + 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 + end + local.get $0 + ) + (func $~lib/process/writeString (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const -1 + local.set $1 + i32.const -1 + local.set $2 + i32.const -1 + local.set $4 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + 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 $4 + i32.const 128 + i32.ge_u + br_if $break|0 + end + local.get $0 + i32.load16_u offset=4 + local.tee $2 + i32.const 128 + i32.ge_u + br_if $break|0 + end + local.get $0 + i32.load16_u offset=2 + local.tee $1 + i32.const 128 + i32.ge_u + br_if $break|0 + end + local.get $0 + i32.load16_u + local.tee $3 + i32.const 128 + i32.ge_u + br_if $break|0 + i32.const 6672 + i32.const 6680 + i32.store + i32.const 6676 + local.get $1 + i32.const -1 + i32.ne + i32.const 1 + i32.add + local.get $2 + i32.const -1 + i32.ne + i32.add + local.get $4 + i32.const -1 + i32.ne + i32.add + i32.store + i32.const 6680 + local.get $3 + local.get $1 + i32.const 8 + i32.shl + i32.or + local.get $2 + i32.const 16 + i32.shl + i32.or + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + i32.const 1 + i32.const 6672 + i32.const 1 + i32.const 6684 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.tee $2 + local.set $0 + local.get $2 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 6720 + i32.const 178 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + end + return + end + i32.const 0 + local.set $2 + local.get $0 + local.set $1 + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $4 + loop $while-continue|0 + local.get $1 + local.get $4 + i32.lt_u + if + local.get $1 + i32.load16_u + local.tee $3 + i32.const 128 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1 + i32.add + else + local.get $3 + i32.const 2048 + i32.lt_u + if (result i32) + local.get $2 + i32.const 2 + i32.add + else + local.get $4 + local.get $1 + i32.const 2 + i32.add + i32.gt_u + i32.const 0 + local.get $3 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + select + if + local.get $1 + i32.load16_u offset=2 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq if - global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#substring + local.set $2 + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $3 - i32.add - 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 $1 - local.set $0 end - br $folding-inner0 + local.get $2 + i32.const 3 + i32.add 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 + local.set $2 + local.get $1 + i32.const 2 i32.add - global.set $~lib/memory/__stack_pointer + local.set $1 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + end + local.get $2 + local.set $3 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $3 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $1 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $4 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $3 + i32.ne + if + i32.const 0 + i32.const 6720 + i32.const 184 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + i32.const 6672 + local.get $1 + i32.store + i32.const 6676 + local.get $3 + i32.store + i32.const 1 + i32.const 6672 + i32.const 1 + i32.const 6680 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.tee $2 + local.set $0 + local.get $1 + call $~lib/rt/tlsf/__free + local.get $2 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 6720 + i32.const 189 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 1472 + i32.const 1680 + i32.const 164 + i32.const 45 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + ) + (func $~lib/rt/__visit_members (param $0 i32) + 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-inner0 $invalid + end + return + end + return + end + unreachable + end + local.get $0 + i32.load + local.tee $0 + if local.get $0 + call $~lib/rt/itcms/__visit + end + ) + (func $~start + global.get $~started + if return end - i32.const 23312 - i32.const 23360 i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable + global.set $~started + call $start:std-wasi/crypto + ) + (func $~lib/typedarray/Uint8Array#toString (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 + 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 + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 6656 + i32.store + local.get $0 + call $~lib/typedarray/Uint8Array#join + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/console/console.log (param $0 i32) global.get $~lib/memory/__stack_pointer @@ -5030,32 +5047,39 @@ 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 6900 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 i32.const 0 i32.store i32.const 0 local.get $0 i32.load offset=8 - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 0 i32.gt_s select - local.set $6 + local.set $5 + local.get $1 local.get $5 + i32.sub + local.tee $2 + i32.const 0 + i32.gt_s + local.set $3 + local.get $4 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 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -5067,25 +5091,20 @@ local.tee $1 i32.store local.get $2 - local.get $6 - i32.sub - local.tee $2 - i32.const 0 - local.get $2 i32.const 0 - i32.gt_s + local.get $3 select - local.tee $7 - local.set $3 + local.tee $6 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $7 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-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -5111,7 +5130,7 @@ local.get $1 i32.const 0 i32.store offset=8 - local.get $3 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -5123,47 +5142,47 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store offset=4 - local.get $4 local.get $3 + local.get $2 call $~lib/memory/memory.fill local.get $1 - local.get $4 + local.get $3 i32.store local.get $1 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $1 - local.get $4 + local.get $3 i32.store offset=4 local.get $1 - 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 $2 + local.get $7 local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 local.get $1 i32.store local.get $1 i32.load offset=4 - local.get $6 + local.get $5 local.get $0 i32.load offset=4 i32.add - local.get $7 + local.get $6 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index 3bb4f8507a..e0b9c8b131 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -279,43 +279,42 @@ unreachable end local.get $0 - local.tee $3 local.get $1 i32.const 1 i32.shl i32.add local.set $4 local.get $2 - local.set $0 + local.set $1 loop $while-continue|0 - local.get $3 + local.get $0 local.get $4 i32.lt_u if - local.get $3 + local.get $0 i32.load16_u - local.tee $1 + local.tee $3 i32.const 128 i32.lt_u if (result i32) - local.get $0 local.get $1 + local.get $3 i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add else - local.get $1 + local.get $3 i32.const 2048 i32.lt_u if (result i32) - local.get $0 local.get $1 + local.get $3 i32.const 6 i32.shr_u i32.const 192 i32.or - local.get $1 + local.get $3 i32.const 63 i32.and i32.const 128 @@ -324,28 +323,28 @@ i32.shl i32.or i32.store16 - local.get $0 + local.get $1 i32.const 2 i32.add else - local.get $1 + local.get $3 i32.const 63488 i32.and i32.const 55296 i32.eq if local.get $4 - local.get $3 + local.get $0 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $1 + local.get $3 i32.const 56320 i32.lt_u select if - local.get $3 + local.get $0 i32.load16_u offset=2 local.tee $5 i32.const 64512 @@ -353,8 +352,8 @@ i32.const 56320 i32.eq if - local.get $0 local.get $1 + local.get $3 i32.const 1023 i32.and i32.const 10 @@ -365,14 +364,14 @@ i32.const 1023 i32.and i32.or - local.tee $1 + local.tee $3 i32.const 63 i32.and i32.const 128 i32.or i32.const 24 i32.shl - local.get $1 + local.get $3 i32.const 6 i32.shr_u i32.const 63 @@ -382,7 +381,7 @@ i32.const 16 i32.shl i32.or - local.get $1 + local.get $3 i32.const 12 i32.shr_u i32.const 63 @@ -392,32 +391,32 @@ i32.const 8 i32.shl i32.or - local.get $1 + local.get $3 i32.const 18 i32.shr_u i32.const 240 i32.or i32.or i32.store - local.get $0 + local.get $1 i32.const 4 i32.add - local.set $0 - local.get $3 + local.set $1 + local.get $0 i32.const 4 i32.add - local.set $3 + local.set $0 br $while-continue|0 end end end - local.get $0 local.get $1 + local.get $3 i32.const 12 i32.shr_u i32.const 224 i32.or - local.get $1 + local.get $3 i32.const 6 i32.shr_u i32.const 63 @@ -428,27 +427,27 @@ i32.shl i32.or i32.store16 - local.get $0 local.get $1 + local.get $3 i32.const 63 i32.and i32.const 128 i32.or i32.store8 offset=2 - local.get $0 + local.get $1 i32.const 3 i32.add end end - local.set $0 - local.get $3 + local.set $1 + local.get $0 i32.const 2 i32.add - local.set $3 + local.set $0 br $while-continue|0 end end - local.get $0 + local.get $1 local.get $2 i32.sub ) @@ -1981,7 +1980,7 @@ i32.const -1 local.set $2 i32.const -1 - local.set $3 + local.set $4 block $break|0 block $case4|0 block $case3|0 @@ -1998,7 +1997,7 @@ end local.get $0 i32.load16_u offset=6 - local.tee $3 + local.tee $4 i32.const 128 i32.ge_u br_if $break|0 @@ -2019,7 +2018,7 @@ end local.get $0 i32.load16_u - local.tee $4 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 @@ -2036,13 +2035,13 @@ i32.const -1 i32.ne i32.add - local.get $3 + local.get $4 i32.const -1 i32.ne i32.add i32.store i32.const 1096 - local.get $4 + local.get $3 local.get $1 i32.const 8 i32.shl @@ -2051,7 +2050,7 @@ i32.const 16 i32.shl i32.or - local.get $3 + local.get $4 i32.const 24 i32.shl i32.or @@ -2061,7 +2060,9 @@ i32.const 1 i32.const 1100 call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.tee $0 + local.tee $2 + local.set $0 + local.get $2 i32.const 65535 i32.and if @@ -2076,6 +2077,8 @@ end return end + i32.const 0 + local.set $2 local.get $0 local.set $1 local.get $0 @@ -2084,17 +2087,15 @@ i32.sub i32.load offset=16 i32.add - local.set $3 - i32.const 0 - local.set $2 + local.set $4 loop $while-continue|0 local.get $1 - local.get $3 + local.get $4 i32.lt_u if local.get $1 i32.load16_u - local.tee $4 + local.tee $3 i32.const 128 i32.lt_u if (result i32) @@ -2102,7 +2103,7 @@ i32.const 1 i32.add else - local.get $4 + local.get $3 i32.const 2048 i32.lt_u if (result i32) @@ -2110,13 +2111,13 @@ i32.const 2 i32.add else - local.get $3 + local.get $4 local.get $1 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $4 + local.get $3 i32.const 64512 i32.and i32.const 55296 @@ -2155,18 +2156,18 @@ end end local.get $2 - local.set $1 + local.set $3 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 $3 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.set $2 + local.set $1 local.get $0 i32.const 20 i32.sub @@ -2178,9 +2179,9 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $2 - call $~lib/string/String.UTF8.encodeUnsafe@varargs local.get $1 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $3 i32.ne if i32.const 0 @@ -2191,20 +2192,21 @@ unreachable end i32.const 1088 - local.get $2 + local.get $1 i32.store i32.const 1092 - local.get $1 + local.get $3 i32.store i32.const 1 i32.const 1088 i32.const 1 i32.const 1096 call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.tee $2 local.set $0 - local.get $2 + local.get $1 call $~lib/rt/tlsf/__free - local.get $0 + local.get $2 i32.const 65535 i32.and if @@ -2226,32 +2228,42 @@ call $~lib/rt/itcms/__visit global.get $~lib/process/process.argv local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end global.get $~lib/process/process.env local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end global.get $std-wasi/process/argv local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end global.get $std-wasi/process/env local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end global.get $std-wasi/process/envKeys local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end i32.const 4784 @@ -4025,6 +4037,7 @@ (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $1 local.get $0 i32.load offset=8 @@ -4055,7 +4068,7 @@ local.set $1 local.get $0 i32.load - local.tee $4 + local.tee $5 local.get $2 if local.get $3 @@ -4063,15 +4076,19 @@ i32.shl local.tee $2 i32.const 1073741820 + i32.lt_u + local.set $4 + local.get $1 local.get $2 i32.const 1073741820 - i32.lt_u + local.get $4 select local.tee $2 - local.get $1 - local.get $1 - local.get $2 i32.lt_u + local.set $4 + local.get $2 + local.get $1 + local.get $4 select local.set $1 end @@ -4085,7 +4102,7 @@ i32.sub call $~lib/memory/memory.fill local.get $2 - local.get $4 + local.get $5 i32.ne if local.get $0 @@ -4641,34 +4658,35 @@ return end local.get $0 - i32.load offset=4 local.tee $1 + i32.load offset=4 + local.tee $2 local.get $0 i32.load offset=12 i32.const 2 i32.shl i32.add - local.set $2 + local.set $3 loop $while-continue|0 - local.get $1 local.get $2 + local.get $3 i32.lt_u if - local.get $1 + local.get $2 i32.load - local.tee $3 + local.tee $0 if - local.get $3 + local.get $0 call $~lib/rt/itcms/__visit end - local.get $1 + local.get $2 i32.const 4 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end - local.get $0 + local.get $1 i32.load call $~lib/rt/itcms/__visit return @@ -5251,7 +5269,7 @@ i32.const 1092 i32.load i32.add - local.tee $3 + local.tee $8 local.set $1 global.get $~lib/rt/tlsf/ROOT i32.eqz @@ -5263,16 +5281,16 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $7 + local.tee $1 + local.get $1 local.get $4 - local.get $7 i32.add call $~lib/bindings/wasi_snapshot_preview1/args_get - local.tee $1 + local.tee $4 i32.const 65535 i32.and if - local.get $1 + local.get $4 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 73 @@ -5286,38 +5304,38 @@ local.tee $4 i32.store loop $for-loop|0 - local.get $0 + local.get $3 local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $0 + local.get $1 + local.get $3 i32.const 2 i32.shl i32.add i32.load - local.tee $1 - local.get $1 - local.get $3 - i32.add + local.tee $7 local.get $7 + local.get $8 + i32.add + local.get $1 i32.sub call $~lib/string/String.UTF8.decodeUnsafe - local.tee $1 + local.tee $7 i32.store offset=4 local.get $4 - local.get $0 - local.get $1 + local.get $3 + local.get $7 call $~lib/array/Array<~lib/string/String>#__set - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end - local.get $7 + local.get $1 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 8 @@ -5340,16 +5358,16 @@ i32.load offset=12 local.set $3 loop $for-loop|00 + local.get $0 local.get $3 - local.get $5 - i32.gt_s + i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/argv local.tee $1 i32.store offset=4 local.get $1 - local.get $5 + local.get $0 call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer @@ -5357,10 +5375,10 @@ i32.store local.get $1 call $~lib/console/console.log - local.get $5 + local.get $0 i32.const 1 i32.add - local.set $5 + local.set $0 br $for-loop|00 end end @@ -5369,13 +5387,13 @@ 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 + global.get $std-wasi/process/env + local.tee $1 i32.store i32.const 0 local.set $0 - local.get $1 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -5384,68 +5402,68 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $3 - i32.load offset=8 - local.set $4 local.get $1 + i32.load offset=8 + local.set $6 local.get $3 + local.get $1 i32.load offset=16 local.tee $3 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $6 + local.tee $1 i32.store loop $for-loop|002 local.get $3 - local.get $8 + local.get $5 i32.gt_s if - local.get $4 - local.get $8 + local.get $6 + local.get $5 i32.const 12 i32.mul i32.add - local.tee $1 + local.tee $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.load - local.tee $1 + local.tee $4 i32.store offset=4 - local.get $6 - local.get $0 local.get $1 + local.get $0 + local.get $4 call $~lib/array/Array<~lib/string/String>#__set local.get $0 i32.const 1 i32.add local.set $0 end - local.get $8 + local.get $5 i32.const 1 i32.add - local.set $8 + local.set $5 br $for-loop|002 end end - local.get $6 + local.get $1 local.get $0 i32.const 0 call $~lib/array/ensureCapacity - local.get $6 + local.get $1 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $1 global.set $std-wasi/process/envKeys global.get $~lib/memory/__stack_pointer i32.const 5232 @@ -5453,36 +5471,36 @@ i32.const 5232 call $~lib/console/console.log i32.const 0 - local.set $5 + 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 $4 + local.set $3 loop $for-loop|1 - local.get $4 - local.get $5 - i32.gt_s + local.get $0 + local.get $3 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $3 - global.get $std-wasi/process/envKeys local.tee $1 + global.get $std-wasi/process/envKeys + local.tee $5 i32.store - local.get $3 local.get $1 local.get $5 + local.get $0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $3 + local.tee $1 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 + local.get $1 call $~lib/console/console.log global.get $~lib/memory/__stack_pointer i32.const 5312 @@ -5491,11 +5509,11 @@ call $~lib/process/writeString global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/env - local.tee $1 + local.tee $5 i32.store offset=4 + local.get $5 + local.get $1 local.get $1 - 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 $1 @@ -5515,10 +5533,10 @@ i32.store local.get $1 call $~lib/console/console.log - local.get $5 + local.get $0 i32.const 1 i32.add - local.set $5 + local.set $0 br $for-loop|1 end end @@ -5568,7 +5586,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 5696 - local.set $0 + local.set $1 br $__inlined_func$~lib/util/number/itoa64 end i64.const 0 @@ -5579,7 +5597,7 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.tee $4 + local.tee $0 select local.tee $2 i64.const 4294967295 @@ -5588,7 +5606,7 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.wrap_i64 - local.tee $3 + local.tee $5 local.tee $1 i32.const 100000 i32.lt_u @@ -5635,18 +5653,18 @@ i32.add end end - local.get $4 + local.get $0 i32.add - local.tee $1 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 - local.get $3 local.get $1 + local.get $5 + local.get $3 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer @@ -5700,23 +5718,23 @@ i32.add end end - local.get $4 + local.get $0 i32.add - local.tee $1 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 - local.get $2 local.get $1 + local.get $2 + local.get $3 call $~lib/util/number/utoa64_dec_lut end - local.get $4 + local.get $0 if - local.get $0 + local.get $1 i32.const 45 i32.store16 end @@ -5726,9 +5744,9 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $~lib/console/console.log global.get $~lib/memory/__stack_pointer i32.const 7280 @@ -5925,20 +5943,20 @@ call $~lib/bindings/wasi_snapshot_preview1/proc_exit i32.const 0 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 20 i32.sub i32.load offset=16 - local.set $1 + local.set $0 i32.const 1088 - local.get $3 + local.get $1 i32.store i32.const 1092 - local.get $1 + local.get $0 i32.store i32.const 0 i32.const 1088 @@ -5946,10 +5964,12 @@ i32.const 1096 call $~lib/bindings/wasi_snapshot_preview1/fd_read local.tee $1 + local.set $0 + local.get $1 i32.const 65535 i32.and if - local.get $1 + local.get $0 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 142 diff --git a/tests/compiler/std/array-access.optimized.wat b/tests/compiler/std/array-access.optimized.wat index c46c10c769..fca4126d01 100644 --- a/tests/compiler/std/array-access.optimized.wat +++ b/tests/compiler/std/array-access.optimized.wat @@ -24,21 +24,22 @@ (local $2 i32) (local $3 i32) (local $4 i32) - i32.const 0 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $1 - local.get $1 + local.tee $2 i32.const 0 - i32.gt_s - select - local.set $2 - local.get $1 + i32.ne + local.set $1 local.get $2 + i32.const 0 + local.get $2 + local.get $1 + select + local.tee $2 i32.const 1292 i32.load i32.const 1 @@ -63,7 +64,6 @@ i32.and i32.const 1 local.get $1 - local.tee $0 i32.const 4 i32.ge_u select @@ -84,10 +84,10 @@ i32.const 8 i32.add local.set $3 - local.get $0 + local.get $1 i32.const 4 i32.sub - local.tee $0 + local.tee $1 i32.const 4 i32.ge_u br_if $do-continue|0 @@ -95,23 +95,23 @@ end end loop $while-continue|1 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.sub - local.set $0 - local.get $1 + local.set $1 + local.get $0 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $0 + local.get $2 + i32.load16_u local.tee $4 i32.ne if - local.get $1 local.get $4 + local.get $0 i32.sub br $__inlined_func$~lib/util/string/compareImpl end diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index 35d02b54c5..751145df31 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -104,32 +104,42 @@ call $~lib/rt/itcms/__visit global.get $std/array-literal/emptyArrayI32 local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end global.get $std/array-literal/dynamicArrayI8 local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end global.get $std/array-literal/dynamicArrayI32 local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end global.get $std/array-literal/dynamicArrayRef local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end global.get $std/array-literal/dynamicArrayRefWithCtor local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end i32.const 1200 @@ -1772,38 +1782,38 @@ i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $1 local.get $3 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -1927,34 +1937,35 @@ return end local.get $0 - i32.load offset=4 local.tee $1 + i32.load offset=4 + local.tee $2 local.get $0 i32.load offset=12 i32.const 2 i32.shl i32.add - local.set $2 + local.set $3 loop $while-continue|0 - local.get $1 local.get $2 + local.get $3 i32.lt_u if - local.get $1 + local.get $2 i32.load - local.tee $3 + local.tee $0 if - local.get $3 + local.get $0 call $~lib/rt/itcms/__visit end - local.get $1 + local.get $2 i32.const 4 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end - local.get $0 + local.get $1 i32.load call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index ef8e31f4b2..ff45c5b53e 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -20,7 +20,7 @@ (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_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (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))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) @@ -701,22 +701,28 @@ (local $1 i32) global.get $std/array/arr local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end i32.const 7488 call $~lib/rt/itcms/__visit global.get $std/array/inputStabArr local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end global.get $std/array/outputStabArr local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end i32.const 1344 @@ -3534,11 +3540,14 @@ (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) local.get $0 i32.load offset=12 local.tee $3 + local.set $4 local.get $1 i32.load offset=12 + local.get $3 i32.ne if i32.const 0 @@ -3553,7 +3562,7 @@ end loop $for-loop|0 local.get $2 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -3600,11 +3609,14 @@ (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) local.get $0 i32.load offset=12 local.tee $3 + local.set $4 local.get $1 i32.load offset=12 + local.get $3 i32.ne if i32.const 0 @@ -3619,7 +3631,7 @@ end loop $for-loop|0 local.get $2 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -5436,11 +5448,14 @@ (local $2 i32) (local $3 f32) (local $4 i32) + (local $5 i32) local.get $0 i32.load offset=12 local.tee $4 + local.set $5 local.get $1 i32.load offset=12 + local.get $4 i32.ne if i32.const 0 @@ -5455,7 +5470,7 @@ end loop $for-loop|0 local.get $2 - local.get $4 + local.get $5 i32.lt_s if local.get $0 @@ -9770,87 +9785,89 @@ end local.get $0 ) - (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (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) (local $7 i64) (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i64) + (local $9 i32) + (local $10 i64) + (local $11 i32) (local $12 i64) - local.get $3 + (local $13 i64) + local.get $2 local.get $1 i64.sub - local.set $9 - local.get $3 + local.set $10 + local.get $2 i64.const 1 i32.const 0 - local.get $4 + local.get $3 i32.sub - local.tee $10 + local.tee $11 i64.extend_i32_s local.tee $1 i64.shl - local.tee $11 + local.tee $12 i64.const 1 i64.sub - local.tee $12 + local.tee $13 i64.and local.set $7 - local.get $3 + local.get $2 local.get $1 i64.shr_u i32.wrap_i64 - local.tee $2 - local.set $4 - local.get $2 + local.tee $6 + local.set $3 + local.get $6 i32.const 100000 i32.lt_u if (result i32) - local.get $4 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $4 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $4 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $4 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $4 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $4 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $4 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $4 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end - local.set $8 + local.set $9 loop $while-continue|0 - local.get $8 + local.get $9 i32.const 0 i32.gt_s if @@ -9866,279 +9883,279 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $8 + local.get $9 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 $6 i32.const 1000000000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 1000000000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 100000000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 100000000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 10000000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 10000000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 1000000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 1000000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 100000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 100000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 10000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 10000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 1000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 1000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 100 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 100 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 10 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 10 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 - local.set $4 + local.get $6 + local.set $3 i32.const 0 - local.set $2 + local.set $6 br $break|1 end i32.const 0 - local.set $4 + local.set $3 end - local.get $4 - local.get $6 + local.get $3 + local.get $5 i32.or if + local.get $5 + local.tee $8 + i32.const 1 + i32.add + local.set $5 local.get $0 - local.get $6 + local.get $8 i32.const 1 i32.shl i32.add - local.get $4 + local.get $3 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $6 - i32.const 1 - i32.add - local.set $6 end - local.get $8 + local.get $9 i32.const 1 i32.sub - local.set $8 + local.set $9 local.get $7 - local.get $2 + local.get $6 i64.extend_i32_u - local.get $10 + local.get $11 i64.extend_i32_s i64.shl i64.add local.tee $1 - local.get $5 + local.get $4 i64.le_u if - local.get $8 + local.get $9 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $8 + local.get $9 i32.const 2 i32.shl i32.const 12624 i32.add i64.load32_u - local.get $10 + local.get $11 i64.extend_i32_s i64.shl - local.set $3 + local.set $2 local.get $0 - local.get $6 + local.get $5 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.tee $2 + local.tee $6 i32.load16_u - local.set $4 + local.set $3 loop $while-continue|3 - local.get $3 - local.get $5 + local.get $2 + local.get $4 local.get $1 i64.sub i64.le_u i32.const 0 local.get $1 - local.get $9 + local.get $10 i64.lt_u select if (result i32) i32.const 1 - local.get $9 + local.get $10 local.get $1 i64.sub local.get $1 - local.get $3 + local.get $2 i64.add local.tee $7 - local.get $9 + local.get $10 i64.sub i64.gt_u local.get $7 - local.get $9 + local.get $10 i64.lt_u select else i32.const 0 end if - local.get $4 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 local.get $1 - local.get $3 + local.get $2 i64.add local.set $1 br $while-continue|3 end end - local.get $2 - local.get $4 - i32.store16 local.get $6 + local.get $3 + i32.store16 + local.get $5 return end br $while-continue|0 end end - local.get $10 - i64.extend_i32_s - local.set $1 loop $while-continue|4 - local.get $5 + local.get $4 i64.const 10 i64.mul - local.set $5 + local.set $4 local.get $7 i64.const 10 i64.mul - local.tee $3 - local.get $1 + local.tee $1 + local.get $11 + i64.extend_i32_s i64.shr_u - local.tee $7 - local.get $6 + local.tee $2 + local.get $5 i64.extend_i32_s i64.or i64.const 0 i64.ne if + local.get $5 + local.tee $3 + i32.const 1 + i32.add + local.set $5 local.get $0 - local.get $6 + local.get $3 i32.const 1 i32.shl i32.add - local.get $7 + local.get $2 i32.wrap_i64 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $6 - i32.const 1 - i32.add - local.set $6 end - local.get $8 + local.get $9 i32.const 1 i32.sub - local.set $8 - local.get $5 - local.get $3 - local.get $12 + local.set $9 + local.get $4 + local.get $1 + local.get $13 i64.and local.tee $7 i64.le_u br_if $while-continue|4 end - local.get $8 + local.get $9 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K local.get $7 local.set $1 - local.get $9 + local.get $10 i32.const 0 - local.get $8 + local.get $9 i32.sub i32.const 2 i32.shl @@ -10146,41 +10163,41 @@ i32.add i64.load32_u i64.mul - local.set $3 + local.set $2 local.get $0 - local.get $6 + local.get $5 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.tee $2 + local.tee $6 i32.load16_u - local.set $4 + local.set $3 loop $while-continue|6 - local.get $11 - local.get $5 + local.get $12 + local.get $4 local.get $1 i64.sub i64.le_u i32.const 0 local.get $1 - local.get $3 + local.get $2 i64.lt_u select if (result i32) i32.const 1 - local.get $3 + local.get $2 local.get $1 i64.sub local.get $1 - local.get $11 + local.get $12 i64.add local.tee $7 - local.get $3 + local.get $2 i64.sub i64.gt_u - local.get $3 + local.get $2 local.get $7 i64.gt_u select @@ -10188,21 +10205,21 @@ i32.const 0 end if - local.get $4 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 local.get $1 - local.get $11 + local.get $12 i64.add local.set $1 br $while-continue|6 end end - local.get $2 - local.get $4 - i32.store16 local.get $6 + local.get $3 + i32.store16 + local.get $5 ) (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -10549,16 +10566,15 @@ (local $3 i64) (local $4 i64) (local $5 i32) - (local $6 i64) + (local $6 i32) (local $7 i64) - (local $8 i32) + (local $8 i64) (local $9 i32) (local $10 i32) - (local $11 i32) local.get $1 f64.const 0 f64.lt - local.tee $10 + local.tee $9 if (result f64) local.get $0 i32.const 45 @@ -10575,7 +10591,7 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $9 + local.tee $5 i32.const 0 i32.ne i64.extend_i32_u @@ -10594,47 +10610,47 @@ local.get $2 i64.clz i32.wrap_i64 - local.tee $8 + local.tee $6 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $9 + local.get $5 i32.const 1 - local.get $9 + local.get $5 select i32.const 1075 i32.sub - local.tee $9 + local.tee $10 i32.const 1 i32.sub - local.get $8 + local.get $6 i32.sub - local.set $8 + local.set $5 local.get $3 local.get $3 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $5 + local.tee $6 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $9 - local.get $5 + local.get $10 + local.get $6 i32.sub - local.get $8 + local.get $5 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $8 + local.get $5 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $8 + local.tee $5 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -10643,9 +10659,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $5 + local.tee $6 local.get $1 - local.get $5 + local.get $6 f64.convert_i32_s f64.ne i32.add @@ -10653,18 +10669,18 @@ i32.shr_s i32.const 1 i32.add - local.tee $5 + local.tee $6 i32.const 3 i32.shl - local.tee $11 + local.tee $10 i32.sub global.set $~lib/util/number/_K - local.get $11 + local.get $10 i32.const 11752 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $5 + local.get $6 i32.const 1 i32.shl i32.const 12448 @@ -10672,22 +10688,22 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $6 + local.tee $7 i64.const 4294967295 i64.and local.set $2 - local.get $6 + local.get $7 i64.const 32 i64.shr_u - local.tee $6 + local.tee $7 global.get $~lib/util/number/_frc_plus local.tee $4 i64.const 32 i64.shr_u - local.tee $7 + local.tee $8 i64.mul local.get $2 - local.get $7 + local.get $8 i64.mul local.get $2 local.get $4 @@ -10698,14 +10714,14 @@ i64.const 32 i64.shr_u i64.add - local.tee $7 + local.tee $8 i64.const 32 i64.shr_u i64.add local.get $4 - local.get $6 - i64.mul local.get $7 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -10718,26 +10734,23 @@ i64.sub local.set $4 local.get $0 - local.get $10 + local.get $9 i32.const 1 i32.shl i32.add local.get $0 - local.get $6 + local.get $7 local.get $3 local.get $3 i64.clz - i32.wrap_i64 - local.tee $0 - i64.extend_i32_s i64.shl local.tee $3 i64.const 32 i64.shr_u - local.tee $7 + local.tee $8 i64.mul local.get $2 - local.get $7 + local.get $8 i64.mul local.get $2 local.get $3 @@ -10748,14 +10761,14 @@ i64.const 32 i64.shr_u i64.add - local.tee $7 + local.tee $8 i64.const 32 i64.shr_u i64.add local.get $3 - local.get $6 - i64.mul local.get $7 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -10764,22 +10777,14 @@ i64.const 32 i64.shr_u i64.add - global.get $~lib/util/number/_exp_pow - local.tee $5 - local.get $9 - local.get $0 - i32.sub - i32.add - i32.const -64 - i32.sub local.get $4 + global.get $~lib/util/number/_exp_pow local.get $5 - local.get $8 i32.add i32.const -64 i32.sub local.get $4 - local.get $6 + local.get $7 global.get $~lib/util/number/_frc_minus local.tee $3 i64.const 32 @@ -10803,7 +10808,7 @@ i64.shr_u i64.add local.get $2 - local.get $6 + local.get $7 i64.mul local.get $3 i64.const 4294967295 @@ -10817,13 +10822,13 @@ i64.const 1 i64.add i64.sub - local.get $10 + local.get $9 call $~lib/util/number/genDigits - local.get $10 + local.get $9 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $10 + local.get $9 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -10896,8 +10901,9 @@ local.get $1 call $~lib/util/number/dtoa_core ) - (func $~lib/array/Array<~lib/string/String|null>#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/array/Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 f64) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10905,112 +10911,350 @@ (local $7 i32) local.get $0 i32.load offset=4 - local.set $7 + local.set $4 local.get $0 i32.load offset=12 - local.set $5 + local.set $1 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - if - i32.const 31744 - i32.const 31792 - 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 - block $__inlined_func$~lib/util/string/joinStringArray - local.get $5 - i32.const 1 - i32.sub - local.tee $6 - i32.const 0 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 15340 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9024 - local.set $0 - 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 $7 - i32.load - local.tee $0 - i32.store - local.get $0 - i32.const 9024 - local.get $0 - select - local.set $0 + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinFloatArray local.get $1 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinStringArray - end - loop $for-loop|0 - local.get $3 - local.get $5 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $3 - i32.const 2 - i32.shl + i32.const 4 i32.add - i32.load - local.tee $4 - i32.store offset=4 - local.get $4 + global.set $~lib/memory/__stack_pointer + i32.const 9024 + local.set $0 + br $__inlined_func$~lib/util/string/joinFloatArray + end + block $folding-inner0 + local.get $3 + i32.eqz if - local.get $0 local.get $4 - i32.const 20 + f64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.add - local.set $0 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/dtoa + local.get $2 + 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 11552 + local.set $0 + br $__inlined_func$~lib/util/number/dtoa + end + local.get $2 + local.get $2 + f64.sub + f64.const 0 + f64.ne + if + local.get $2 + local.get $2 + f64.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11584 + local.set $0 + 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 11616 + i32.const 11664 + local.get $2 + f64.const 0 + f64.lt + select + local.set $0 + br $__inlined_func$~lib/util/number/dtoa + end + i32.const 11696 + local.get $2 + 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 11696 + 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 + br $folding-inner0 end + global.get $~lib/memory/__stack_pointer local.get $3 + i32.const 11516 + i32.load i32.const 1 + i32.shr_u + local.tee $5 + i32.const 28 i32.add - local.set $3 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $6 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u + i32.mul + i32.const 28 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $5 + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.const 11520 + 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 $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $3 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_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 + 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/joinFloatArray + 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 31744 + i32.const 31792 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array<~lib/string/String|null>#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $7 + 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 15340 + i32.lt_s + if + i32.const 31744 + i32.const 31792 + 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 + block $__inlined_func$~lib/util/string/joinStringArray + 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 9024 + local.set $0 + 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 $7 + i32.load + local.tee $0 + i32.store + local.get $0 + i32.const 9024 + local.get $0 + select + local.set $0 + local.get $1 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinStringArray + end + loop $for-loop|0 + local.get $3 + local.get $5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $7 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store offset=4 + local.get $4 + if + local.get $0 + local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u local.tee $5 i32.mul i32.add @@ -11660,239 +11904,9 @@ end local.get $0 ) - (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 $3 - if - local.get $0 - i32.const 45 - i32.store16 - i64.const 0 - local.get $1 - i64.sub - local.set $1 - end - local.get $1 - i64.const 10 - i64.lt_u - if - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $1 - i64.const 48 - i64.or - i64.store16 - local.get $3 - i32.const 1 - i32.add - return - end - local.get $1 - i64.const 4294967295 - i64.le_u - if - local.get $1 - i32.wrap_i64 - local.tee $4 - local.tee $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.set $2 - local.get $0 - local.get $4 - local.get $2 - local.get $3 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - else - local.get $0 - local.get $1 - 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.add - local.get $1 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.get $3 - i32.add - local.tee $0 - call $~lib/util/number/utoa64_dec_lut - 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 255 - i32.and - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $1 - i32.const 255 - i32.and - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return - end - local.get $1 - i32.const 255 - i32.and - 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.set $1 - local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - local.get $1 - ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (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) @@ -11903,1565 +11917,1990 @@ local.set $4 local.get $0 i32.load offset=12 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - if - i32.const 31744 - i32.const 31792 - 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.const 1 - i32.sub - local.tee $3 - i32.const 0 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 15340 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9024 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - local.get $3 - i32.eqz - if - local.get $4 - 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 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 + i32.const 0 i32.store - loop $for-loop|0 - local.get $3 - local.get $6 - i32.gt_s + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 + i32.const 1 + i32.sub + local.tee $3 + 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 9024 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + block $folding-inner0 + local.get $3 + i32.eqz + if + local.get $4 + 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 15340 + 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 9616 + local.set $0 + 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 $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.tee $1 + 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 $1 + 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.tee $1 + 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 $1 + call $~lib/util/number/utoa64_dec_lut + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 9308 + i32.load + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 20 + i32.add + i32.mul + i32.const 20 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $5 + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.const 9312 + 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 $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 + local.get $1 local.get $0 - local.get $2 i32.const 1 i32.shl i32.add local.get $4 - local.get $6 + local.get $3 + i32.const 3 + i32.shl i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $2 + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 i32.add - local.set $2 - local.get $5 + local.tee $0 + i32.gt_s if + local.get $1 local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $5 - i32.add - local.set $2 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 end - local.get $6 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $6 - br $for-loop|0 + 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 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end - local.get $7 local.get $0 - local.get $2 + return + end + i32.const 31744 + i32.const 31792 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (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 $3 + if + local.get $0 + i32.const 45 + i32.store16 + i64.const 0 + local.get $1 + i64.sub + local.set $1 + end + local.get $1 + i64.const 10 + i64.lt_u + if + local.get $0 + local.get $3 i32.const 1 i32.shl i32.add + local.get $1 + i64.const 48 + i64.or + i64.store16 local.get $3 - local.get $4 + i32.const 1 i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered + return + end + local.get $1 + i64.const 4294967295 + i64.le_u + if + local.get $1 + i32.wrap_i64 + local.tee $4 + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $2 + local.get $0 + local.get $4 local.get $2 + local.get $3 i32.add - local.tee $1 - i32.gt_s - if - local.get $0 + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + local.get $1 + local.get $1 + i64.const 1000000000000000 + i64.lt_u + if (result i32) 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 + 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.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end end - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $0 + call $~lib/util/number/utoa64_dec_lut end local.get $0 ) - (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (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) local.get $0 + i32.load offset=4 + local.set $5 local.get $0 i32.load offset=12 - local.tee $3 - i32.const 1 - i32.add - local.tee $2 + local.set $1 i32.const 0 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - i32.load offset=4 - local.get $3 - i32.add - local.get $1 - i32.store8 - local.get $0 - local.get $2 - i32.store offset=12 - local.get $2 - ) - (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 $1 - local.get $2 - local.get $1 - i32.sub - i32.const 1 - i32.add - local.tee $5 - i32.const 1 - i32.and - local.get $3 - local.get $5 - local.get $3 - i32.sub - i32.const 1 - i32.and + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.get $3 - i32.eqz - select - i32.add - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $7 - i32.ge_s - if - local.get $0 - local.get $7 - i32.add - local.tee $5 - i32.load8_u - local.set $3 - local.get $5 - i32.load8_u offset=1 - local.tee $6 - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $4 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 + i32.const 1 + i32.sub + local.tee $4 i32.const 0 - i32.le_s + i32.lt_s if - local.get $3 - local.set $5 - local.get $6 - local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9024 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $7 - i32.const 1 - i32.sub - local.set $6 - loop $while-continue|1 - local.get $1 - local.get $6 - i32.le_s + block $folding-inner0 + local.get $4 + i32.eqz if - block $while-break|1 - local.get $0 - local.get $6 - i32.add - i32.load8_u - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 + 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 15340 + 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 9616 + 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.const 63 + i64.shr_u + i32.wrap_i64 + local.tee $3 + 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 $6 + 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 $3 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $6 + 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 + 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 $3 + i32.add + local.tee $1 + 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 $1 + call $~lib/util/number/utoa64_dec_lut + end local.get $3 - local.get $4 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $0 - local.get $6 + if + local.get $0 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.get $8 - i32.store8 offset=2 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|1 + global.set $~lib/memory/__stack_pointer end + br $folding-inner0 end - end - local.get $0 - local.get $6 - i32.add - local.get $3 - i32.store8 offset=2 - loop $while-continue|2 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|2 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 9308 + 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 $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_s + if + local.get $1 local.get $0 - local.get $6 + i32.const 1 + i32.shl i32.add - i32.load8_u - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $3 local.get $5 - local.get $4 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.le_s - br_if $while-break|2 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered local.get $0 - local.get $6 i32.add + local.set $0 + local.get $7 + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.const 9312 + local.get $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $7 + i32.add + local.set $0 + end local.get $3 - i32.store8 offset=1 - local.get $6 i32.const 1 - i32.sub - local.set $6 - br $while-continue|2 + i32.add + local.set $3 + br $for-loop|0 end end - end - local.get $0 - local.get $6 - i32.add - local.get $5 - i32.store8 offset=1 - local.get $7 - i32.const 2 - i32.add - local.set $7 - br $for-loop|0 - end - end - ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - local.get $2 - i32.eq - if - local.get $1 - return - end - local.get $0 - local.get $1 - i32.add - i32.load8_u - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.add - i32.load8_u - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) + local.get $6 + local.get $1 local.get $0 - local.get $4 + i32.const 1 + i32.shl i32.add - local.tee $5 - i32.load8_u offset=1 local.get $5 - i32.load8_u - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 + i32.const 3 + i32.shl i32.add - local.tee $3 - i32.load8_u - local.set $5 - local.get $3 + i64.load + call $~lib/util/number/itoa_buffered local.get $0 - local.get $2 - i32.add - local.tee $3 - i32.load8_u - i32.store8 - local.get $1 - i32.const 1 i32.add - local.set $1 - local.get $3 - local.get $5 - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $1 - i32.load8_u offset=1 + global.set $~lib/memory/__stack_pointer local.get $1 - i32.load8_u - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 + local.set $0 + 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 - local.get $4 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $3 - local.get $2 + i32.const 31744 + i32.const 31792 i32.const 1 - i32.sub - local.tee $6 - i32.add - local.set $7 - local.get $6 i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $4 - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - local.tee $8 - i32.add - local.get $0 - local.get $8 - i32.add - i32.load8_u - i32.store8 - br $for-loop|0 - end + 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 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 255 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $4 - local.get $7 - local.get $6 - i32.sub + local.get $1 + i32.const 255 + i32.and + 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 - local.get $0 - local.get $6 + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 i32.add - i32.load8_u offset=1 - i32.store8 - local.get $6 - i32.const 1 + local.get $1 + i32.const 1000 + i32.ge_u i32.add - local.set $6 - br $for-loop|1 end - end - loop $for-loop|2 + else local.get $1 - local.get $3 - i32.le_s - if - local.get $4 - local.get $6 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 i32.add - i32.load8_u - local.set $7 - local.get $2 - local.get $4 + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 i32.add - i32.load8_u - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $1 - i32.add - local.get $7 - i32.store8 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 - local.get $1 - i32.add - local.get $8 - i32.store8 - local.get $2 - i32.const 1 - i32.add - local.set $2 - end local.get $1 - i32.const 1 + i32.const 100000000 + i32.ge_u i32.add - local.set $1 - br $for-loop|2 end end + local.set $1 + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + local.get $1 ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result 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 i64) - (local $13 i32) - local.get $1 - i32.const 48 - i32.le_s + local.get $0 + i32.load offset=4 + local.set $4 + 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 15340 + i32.lt_s if - local.get $1 + i32.const 31744 + i32.const 31792 i32.const 1 - i32.le_s + 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 $3 + i32.const 0 + i32.lt_s if - return + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9024 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray end - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end + local.get $3 + i32.eqz + if + local.get $4 + 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 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $7 + 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.gt_s + if local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $6 + i32.add i32.load8_u - local.set $1 - local.get $0 - i32.load8_u offset=1 - local.set $4 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $1 - local.get $1 - local.get $4 + call $~lib/util/number/itoa_buffered local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s - local.tee $5 - select - i32.store8 - local.get $0 - i32.load8_u offset=2 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $1 - local.get $4 + i32.add + local.set $2 local.get $5 - select - local.tee $1 - local.get $3 - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s - local.set $4 - local.get $0 - local.get $3 - local.get $1 - local.get $4 - select - i32.store8 offset=1 - local.get $0 - local.get $1 - local.get $3 - local.get $4 - select - i32.store8 offset=2 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $5 + i32.add + local.set $2 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 end - local.get $0 - i32.load8_u - local.set $1 - local.get $0 - i32.load8_u offset=1 - local.set $4 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $1 - local.get $1 - local.get $4 - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s - local.tee $2 - select - i32.store8 - local.get $0 - local.get $1 - local.get $4 - local.get $2 - select - i32.store8 offset=1 - return end + local.get $7 local.get $0 - i32.const 0 - local.get $1 + local.get $2 i32.const 1 - i32.sub - i32.const 0 + i32.shl + i32.add + local.get $3 + local.get $4 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered local.get $2 - call $~lib/util/sort/insertionSort - return - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $6 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $9 - local.get $5 - i32.add - local.set $10 - i32.const 0 - local.set $5 - loop $for-loop|1 - local.get $5 - local.get $6 - i32.lt_u + i32.add + local.tee $1 + i32.gt_s if - local.get $9 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $5 - i32.const 1 + 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 - local.set $5 - br $for-loop|1 + 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/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $11 local.get $0 + ) + (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.const 1 + i32.add + local.tee $2 i32.const 0 - local.get $1 i32.const 1 - i32.sub - local.tee $8 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.get $3 + i32.add + local.get $1 + i32.store8 + local.get $0 local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $1 + i32.store offset=12 + local.get $2 + ) + (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 $1 + local.get $2 + local.get $1 + i32.sub i32.const 1 i32.add local.tee $5 - i32.const 32 - i32.lt_s - if - local.get $0 - i32.const 0 - local.get $8 - i32.const 31 - local.get $8 - i32.const 31 - i32.lt_s - select - local.tee $1 - local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.eqz + select + i32.add + local.set $7 + loop $for-loop|0 local.get $2 - call $~lib/util/sort/insertionSort - end - loop $while-continue|2 - local.get $1 - local.get $8 - i32.lt_s + local.get $7 + i32.ge_s if local.get $0 - local.get $1 - i32.const 1 + local.get $7 i32.add - local.tee $6 - local.get $8 - local.get $2 - call $~lib/util/sort/extendRunRight local.tee $5 + i32.load8_u + local.set $3 + local.get $5 + i32.load8_u offset=1 + local.tee $6 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $3 local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s if - local.get $0 - local.get $6 - local.get $8 + local.get $3 + local.set $5 local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $8 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort + local.set $3 end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $8 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $12 - i64.div_u - local.get $5 - local.get $6 - i32.add + local.get $7 i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $12 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $4 - local.get $7 - i32.gt_u + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s if - local.get $9 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $13 - i32.const -1 - i32.ne - if + block $while-break|1 local.get $0 - local.get $13 - local.get $10 - local.get $4 - i32.const 2 - i32.shl - local.tee $3 + local.get $6 i32.add + i32.load8_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $6 + i32.add + local.get $8 + i32.store8 offset=2 + local.get $6 i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.add + local.get $3 + i32.store8 offset=2 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 i32.add - local.get $1 - local.get $11 - local.get $2 - call $~lib/util/sort/mergeRuns + i32.load8_u + local.set $3 + i32.const 2 + global.set $~argumentsLength local.get $3 - local.get $9 + local.get $5 + 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 $0 + local.get $6 i32.add - i32.const -1 - i32.store - local.get $13 - local.set $3 + local.get $3 + i32.store8 offset=1 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|3 end end - local.get $9 - local.get $7 - i32.const 2 - i32.shl - local.tee $4 - i32.add - local.get $3 - i32.store - local.get $4 - local.get $10 - i32.add - local.get $1 - i32.store + local.get $0 local.get $6 - local.set $3 + i32.add local.get $5 - local.set $1 + i32.store8 offset=1 local.get $7 - local.set $4 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $4 - if - local.get $9 - local.get $4 i32.const 2 - i32.shl i32.add - i32.load - local.tee $1 - i32.const -1 - i32.ne - if - local.get $0 - local.get $1 - local.get $10 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $8 - local.get $11 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|4 + local.set $7 + br $for-loop|0 end end - local.get $11 - call $~lib/rt/tlsf/__free - local.get $9 - call $~lib/rt/tlsf/__free ) - (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end local.get $0 + local.get $1 + i32.add + i32.load8_u local.get $0 - i32.load offset=12 - local.tee $3 + local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $4 + i32.add + i32.load8_u i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - i32.load offset=4 + global.set $~argumentsLength local.get $3 - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $0 - local.get $2 - i32.store offset=12 - local.get $2 - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.const 255 - i32.and - local.tee $0 - local.get $1 - i32.const 255 - i32.and - local.tee $1 - i32.gt_u - local.get $0 - local.get $1 - i32.lt_u - i32.sub - ) - (func $~lib/array/Array~visit (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 $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 $~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 - call $~lib/rt/itcms/__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner4 - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - block $invalid - block $std/array/ArrayStr - block $std/array/Proxy - block $std/array/Dim - block $std/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-inner4 $folding-inner0 $std/array/Ref $folding-inner4 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $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-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner3 $folding-inner3 $std/array/ArrayStr $folding-inner2 $invalid - end - return - end - return - end - return - end - return - end - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - unreachable - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) local.get $0 - call $~lib/array/Array~visit - return + local.get $4 + i32.add + local.tee $5 + i32.load8_u offset=1 + local.get $5 + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 end - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - return end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - ) - (func $~setArgumentsLength (param $0 i32) - local.get $0 - global.set $~argumentsLength - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std/array - ) - (func $std/array/assertSorted (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 - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - if - i32.const 31744 - i32.const 31792 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.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.get $4 local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - loop $for-loop|0 + loop $while-continue|1 + local.get $1 local.get $2 - local.get $3 i32.lt_s if local.get $0 + local.get $1 + i32.add + local.tee $3 + i32.load8_u + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store8 local.get $2 i32.const 1 i32.sub - call $~lib/array/Array#__get - local.set $4 + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $5 - i32.const 2 - global.set $~argumentsLength - i32.const 0 local.get $4 - local.get $5 + i32.add + local.tee $1 + i32.load8_u offset=1 local.get $1 + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.gt_s - br_if $__inlined_func$std/array/isSorted - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 end end - i32.const 1 - end - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1016 - 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 - ) - (func $std/array/assertSortedDefault (param $0 i32) - (local $1 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 15340 - i32.lt_s - if - i32.const 31744 - i32.const 31792 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 8576 - i32.store - local.get $0 - i32.const 8576 - call $std/array/assertSorted - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $4 ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (local $6 i32) (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - if - i32.const 31744 - i32.const 31792 - 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 - i32.const 0 - i32.store offset=8 - local.get $1 + (local $8 i32) + local.get $3 local.get $2 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $5 - i32.store - local.get $4 - local.get $0 - local.get $1 i32.const 1 - i32.add - local.tee $4 - i32.const 2 - i32.shl - i32.add - i32.load + i32.sub local.tee $6 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - local.get $5 + i32.add + local.set $7 local.get $6 - local.get $3 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 local.get $2 + i32.const 1 + i32.sub + local.tee $2 + local.tee $8 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load8_u + i32.store8 + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if local.get $4 - i32.gt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $6 - i32.load offset=4 - local.tee $7 - i32.store - local.get $5 - local.get $6 - i32.load - local.tee $5 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $5 - local.get $3 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end + local.get $7 + local.get $6 + i32.sub + i32.add + local.get $0 + local.get $6 + i32.add + i32.load8_u offset=1 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 end - local.get $4 - local.set $2 - loop $while-continue|1 - local.get $1 + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.add + i32.load8_u + local.set $7 local.get $2 + local.get $4 + i32.add + i32.load8_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 i32.lt_s if - global.get $~lib/memory/__stack_pointer local.get $0 local.get $1 - i32.const 2 - i32.shl i32.add - local.tee $3 - i32.load - local.tee $5 - i32.store offset=8 - local.get $3 + local.get $7 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else local.get $0 - local.get $2 - i32.const 2 - i32.shl + local.get $1 i32.add - local.tee $3 - i32.load - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - i32.store + local.get $8 + i32.store8 local.get $2 i32.const 1 - i32.sub + i32.add local.set $2 - br $while-continue|1 end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.tee $1 + end + ) + (func $~lib/util/sort/SORT (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 $12 i64) + (local $13 i32) + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end local.get $0 - local.get $4 + i32.load8_u + local.set $1 + local.get $0 + i32.load8_u offset=1 + local.set $4 i32.const 2 - i32.shl - i32.add - local.tee $5 - i32.load offset=4 - local.tee $6 - i32.store + global.set $~argumentsLength + local.get $0 + local.get $4 local.get $1 - local.get $5 + local.get $1 + local.get $4 + local.get $2 i32.load - local.tee $1 - i32.store offset=4 + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $5 + select + i32.store8 + local.get $0 + i32.load8_u offset=2 + local.set $3 i32.const 2 global.set $~argumentsLength - local.get $6 local.get $1 + local.get $4 + local.get $5 + select + local.tee $1 local.get $3 + local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add + i32.gt_s local.set $4 - br $while-continue|2 + local.get $0 + local.get $3 + local.get $1 + local.get $4 + select + i32.store8 offset=1 + local.get $0 + local.get $1 + local.get $3 + local.get $4 + select + i32.store8 offset=2 end + local.get $0 + i32.load8_u + local.set $1 + local.get $0 + i32.load8_u offset=1 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store8 + local.get $0 + local.get $1 + local.get $4 + local.get $2 + select + i32.store8 offset=1 + return end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (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 + local.tee $9 + local.get $5 + i32.add + local.set $10 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $9 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + call $~lib/rt/tlsf/allocateBlock i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner0 - 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.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if local.get $0 - i32.store - block $__inlined_func$std/array/isSorted<~lib/array/Array> (result i32) + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 local.get $2 - i32.const 8 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store i32.const 1 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $5 - loop $for-loop|0 - local.get $2 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 local.get $5 - i32.lt_s + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u if - local.get $0 - local.get $2 - i32.const 1 - i32.sub - call $~lib/array/Array#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer + local.get $9 local.get $4 - i32.store offset=4 i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $4 - local.get $1 + i32.shl + i32.add i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s + local.tee $13 + i32.const -1 + i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - br $__inlined_func$std/array/isSorted<~lib/array/Array> + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 end - local.get $2 + local.get $4 i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + i32.sub + local.set $4 + br $for-loop|3 end end - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 end - i32.eqz + end + loop $for-loop|4 + local.get $4 if - i32.const 0 - i32.const 1552 - i32.const 1016 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 31744 - i32.const 31792 + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + local.get $0 + i32.load offset=12 + local.tee $3 i32.const 1 + i32.add + local.tee $2 + i32.const 2 i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array#toString (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 - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - if - i32.const 31744 - i32.const 31792 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add local.get $1 - i32.const 9312 i32.store local.get $0 - i32.const 9312 - call $~lib/array/Array#join - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 + i32.store offset=12 + local.get $2 ) - (func $~lib/array/Array<~lib/string/String|null>#toString (param $0 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + local.tee $0 + local.get $1 + i32.const 255 + i32.and + local.tee $1 + i32.gt_u + local.get $0 + local.get $1 + i32.lt_u + i32.sub + ) + (func $~lib/array/Array~visit (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 $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 $~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 + call $~lib/rt/itcms/__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + block $invalid + block $std/array/ArrayStr + block $std/array/Proxy + block $std/array/Dim + block $std/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-inner4 $folding-inner0 $std/array/Ref $folding-inner4 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $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-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner3 $folding-inner3 $std/array/ArrayStr $folding-inner2 $invalid + end + return + end + return + end + return + end + return + end + return + end + local.get $0 + call $~lib/array/Array~visit + return + end + unreachable + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + local.get $0 + call $~lib/array/Array~visit + return + end + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + ) + (func $~setArgumentsLength (param $0 i32) + local.get $0 + global.set $~argumentsLength + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std/array + ) + (func $std/array/assertSorted (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 @@ -13478,21 +13917,74 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 local.get $1 - i32.const 9312 - i32.store + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 9312 - call $~lib/array/Array<~lib/string/String|null>#join + i32.store + block $__inlined_func$std/array/isSorted (result i32) + i32.const 1 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + local.set $4 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $5 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + local.get $4 + local.get $5 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + br_if $__inlined_func$std/array/isSorted + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1016 + 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 ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) + (func $std/array/assertSortedDefault (param $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -13514,20 +14006,23 @@ i32.const 0 i32.store local.get $1 - i32.const 9312 + i32.const 8576 i32.store local.get $0 - i32.const 9312 - call $~lib/array/Array#join + i32.const 8576 + call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -13542,29 +14037,196 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 + i64.const 0 + i64.store + local.get $4 i32.const 0 - i32.store + i32.store offset=8 local.get $1 - i32.const 9312 - i32.store - local.get $0 - i32.const 9312 - call $~lib/array/Array#join - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) + local.get $2 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $5 + i32.store + local.get $4 + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $5 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $6 + i32.load offset=4 + local.tee $7 + i32.store + local.get $5 + local.get $6 + i32.load + local.tee $5 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $5 + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.tee $5 + i32.store offset=8 + local.get $3 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load offset=4 + local.tee $6 + i32.store + local.get $1 + local.get $5 + i32.load + local.tee $1 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.get $1 + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + 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) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -13573,20 +14235,21 @@ 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 9312 - i32.store + local.tee $0 + i64.const 0 + i64.store local.get $0 - i32.load offset=4 - local.set $3 + i64.const 0 + i64.store offset=8 local.get $0 - i32.load offset=12 - local.set $0 - local.get $2 - i32.const 12 + i64.const 0 + i64.store offset=16 + local.get $0 + global.get $std/array/inputStabArr + local.tee $2 + i32.store offset=8 + local.get $0 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -13594,139 +14257,171 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store + local.tee $5 + i32.const 0 + i32.store + i32.const 0 local.get $2 + i32.load offset=12 + local.tee $1 + local.get $1 i32.const 0 - i32.store offset=8 - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> - local.get $0 - i32.const 1 - i32.sub - local.tee $2 - 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 9024 - local.set $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> - end - local.get $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load - local.tee $0 - i32.store - local.get $0 - if (result i32) - local.get $0 - call $~lib/array/Array#toString - else - i32.const 9024 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> - end - i32.const 9024 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=4 - i32.const 9308 - i32.load - i32.const 1 - i32.shr_u - local.set $5 - loop $for-loop|0 + i32.gt_s + select + local.set $4 + local.get $1 + local.get $4 + i32.sub + local.tee $3 + i32.const 0 + i32.gt_s + local.set $1 + local.get $5 + local.get $3 + i32.const 0 + local.get $1 + select + local.tee $3 + i32.const 2 + i32.const 19 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store + local.get $1 + i32.load offset=4 + local.set $7 + local.get $2 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.set $4 + i32.const 0 + local.set $2 + local.get $3 + i32.const 2 + i32.shl + local.set $5 + loop $while-continue|0 + local.get $2 + local.get $5 + i32.lt_u + if + local.get $2 + local.get $7 + i32.add + local.get $2 + local.get $4 + i32.add + i32.load + local.tee $3 + i32.store local.get $1 + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__link local.get $2 - i32.lt_s - if + i32.const 4 + i32.add + local.set $2 + 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 $3 + local.get $1 + i32.store + local.get $3 + i32.const 8672 + i32.store offset=4 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load offset=12 + i32.const 8672 + call $~lib/util/sort/SORT + local.get $0 + local.get $1 + i32.store offset=12 + i32.const 1 + local.set $2 + 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 $5 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.gt_s + if + block $for-break0 global.get $~lib/memory/__stack_pointer - local.get $3 local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load + local.get $6 + call $~lib/array/Array#__get local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.tee $3 + global.get $std/array/outputStabArr + local.tee $0 i32.store + local.get $3 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + local.tee $0 + i32.store offset=20 local.get $4 - if - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/array/Array#toString - local.set $4 - global.get $~lib/memory/__stack_pointer + i32.load + local.get $0 + i32.load + i32.ne + if (result i32) + i32.const 1 + else local.get $4 - i32.store offset=8 + i32.load offset=4 local.get $0 - local.get $4 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=4 + i32.load offset=4 + i32.ne end - local.get $5 if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 9312 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=4 + i32.const 0 + local.set $2 + br $for-break0 end - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 + local.set $6 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $1 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/array/Array#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=4 - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + end + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1012 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 31744 @@ -13736,1233 +14431,1343 @@ call $~lib/builtins/abort unreachable ) - (func $start:std/array - (local $0 i32) - (local $1 i32) + (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) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 f64) - (local $12 f32) global.get $~lib/memory/__stack_pointer - i32.const 172 + 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 15340 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 - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i64.const 0 - i64.store offset=16 - local.get $1 - i64.const 0 - i64.store offset=24 - local.get $1 - i64.const 0 - i64.store offset=32 - local.get $1 - i64.const 0 - i64.store offset=40 - local.get $1 - i64.const 0 - i64.store offset=48 - local.get $1 - i64.const 0 - i64.store offset=56 - local.get $1 - i64.const 0 - i64.store offset=64 - local.get $1 - i64.const 0 - i64.store offset=72 - local.get $1 - i64.const 0 - i64.store offset=80 - local.get $1 - i64.const 0 - i64.store offset=88 + i32.const 0 + i32.store + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 local.get $1 - i64.const 0 - i64.store offset=96 - local.get $1 - i64.const 0 - i64.store offset=104 - local.get $1 - i64.const 0 - i64.store offset=112 - local.get $1 - i64.const 0 - i64.store offset=120 - local.get $1 - i64.const 0 - i64.store offset=128 - local.get $1 - i64.const 0 - i64.store offset=136 - local.get $1 - i64.const 0 - i64.store offset=144 - local.get $1 - i64.const 0 - i64.store offset=152 - local.get $1 - i64.const 0 - i64.store offset=160 - local.get $1 - i32.const 0 - i32.store offset=168 - memory.size - i32.const 16 - i32.shl - i32.const 31724 - 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 - i32.const 0 - call $~lib/array/Array#constructor - global.set $std/array/arr - i32.const 0 - call $std/array/Ref#constructor - local.set $0 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 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 15340 - 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 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - i32.eqz - if + block $__inlined_func$std/array/isSorted<~lib/array/Array> (result i32) + local.get $2 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store + i32.const 15340 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 1 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $5 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $4 + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + 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/isSorted<~lib/array/Array> + 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 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 end - local.get $1 - i32.const 0 - i32.store - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - 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 $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 1 - call $~lib/memory/memory.fill - local.get $1 - local.get $3 - i32.store - local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $1 - local.get $3 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store - local.get $0 - i32.const 1664 - i32.store - local.get $0 - global.get $std/array/arr - local.tee $1 - i32.store - local.get $1 i32.eqz if i32.const 0 i32.const 1552 - i32.const 52 + i32.const 1016 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5 - i32.const 0 - i32.const 6 - i32.const 1696 - call $~lib/rt/__newArray - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/array/Array#fill - drop - i32.const 5 - i32.const 0 - i32.const 6 - i32.const 1728 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - i32.const 0 - i32.const 2147483647 - call $~lib/array/Array#fill - drop - i32.const 5 - i32.const 0 - i32.const 6 - i32.const 1760 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 63 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 31744 + i32.const 31792 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#toString (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 + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + if + i32.const 31744 + i32.const 31792 i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/array/Array#fill - drop - i32.const 5 - i32.const 0 - i32.const 6 - i32.const 1792 - call $~lib/rt/__newArray - local.set $1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 9312 + i32.store + local.get $0 + i32.const 9312 + call $~lib/array/Array#join + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String|null>#toString (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 + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + if + i32.const 31744 + i32.const 31792 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 9312 + i32.store + local.get $0 + i32.const 9312 + call $~lib/array/Array<~lib/string/String|null>#join + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#toString (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 + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + if + i32.const 31744 + i32.const 31792 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 9312 + i32.store + local.get $0 + i32.const 9312 + call $~lib/array/Array#join + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#toString (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 + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + if + i32.const 31744 + i32.const 31792 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 9312 + i32.store + local.get $0 + i32.const 9312 + call $~lib/array/Array#join + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result 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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15340 + 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.store offset=8 + i32.const 9312 + i32.store local.get $0 - local.get $1 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 66 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.load offset=4 + local.set $2 local.get $0 - i32.const 2 - i32.const -2 - i32.const 2147483647 - call $~lib/array/Array#fill - drop - i32.const 5 - i32.const 0 - i32.const 6 - i32.const 1824 - call $~lib/rt/__newArray - local.set $1 + i32.load offset=12 + local.set $0 + local.get $1 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15340 + 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 $0 - local.get $1 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 69 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/array/Array#fill - drop - i32.const 5 - i32.const 0 - i32.const 6 - i32.const 1856 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 72 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 1888 - call $~lib/rt/__newArray - local.tee $1 - i32.store offset=12 - local.get $1 - i32.load offset=4 - local.set $4 - i32.const 1 - local.get $1 - i32.load offset=12 - local.tee $3 - local.get $3 - i32.const 1 - i32.gt_s - select - local.set $0 - i32.const 3 - local.get $3 - local.get $3 - i32.const 3 - i32.gt_s - select - local.set $3 - loop $for-loop|0 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> local.get $0 - local.get $3 + i32.const 1 + i32.sub + local.tee $1 + i32.const 0 i32.lt_s if - local.get $4 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.const 1 - i32.store - local.get $0 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9024 local.set $0 - br $for-loop|0 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - end - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 1936 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $1 - local.get $0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 79 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=4 - local.set $3 - i32.const 0 - local.get $1 - i32.load offset=12 - local.tee $4 - local.get $4 - i32.const 0 - i32.gt_s - select - local.set $0 - loop $for-loop|02 - local.get $0 - local.get $4 - i32.lt_s + local.get $1 + i32.eqz if - local.get $3 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.tee $0 i32.store local.get $0 - i32.const 1 - i32.add + if (result i32) + local.get $0 + call $~lib/array/Array#toString + else + i32.const 9024 + end local.set $0 - br $for-loop|02 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> + end + i32.const 9024 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 9024 + i32.store offset=4 + i32.const 9308 + i32.load + i32.const 1 + i32.shr_u + local.set $5 + loop $for-loop|0 + local.get $1 + local.get $4 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $3 + i32.store + local.get $3 + if + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/array/Array#toString + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + local.get $5 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 9312 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + local.get $2 + if + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/array/Array#toString + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $0 + local.get $2 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer end - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 1984 - call $~lib/rt/__newArray - local.set $0 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 31744 + i32.const 31792 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $start:std/array + (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 f64) + (local $10 i32) + (local $11 f32) + global.get $~lib/memory/__stack_pointer + i32.const 172 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + br_if $folding-inner2 + 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 + i64.const 0 + i64.store offset=24 + local.get $0 + i64.const 0 + i64.store offset=32 + local.get $0 + i64.const 0 + i64.store offset=40 + local.get $0 + i64.const 0 + i64.store offset=48 + local.get $0 + i64.const 0 + i64.store offset=56 + local.get $0 + i64.const 0 + i64.store offset=64 + local.get $0 + i64.const 0 + i64.store offset=72 + local.get $0 + i64.const 0 + i64.store offset=80 + local.get $0 + i64.const 0 + i64.store offset=88 + local.get $0 + i64.const 0 + i64.store offset=96 + local.get $0 + i64.const 0 + i64.store offset=104 + local.get $0 + i64.const 0 + i64.store offset=112 + local.get $0 + i64.const 0 + i64.store offset=120 + local.get $0 + i64.const 0 + i64.store offset=128 + local.get $0 + i64.const 0 + i64.store offset=136 + local.get $0 + i64.const 0 + i64.store offset=144 + local.get $0 + i64.const 0 + i64.store offset=152 + local.get $0 + i64.const 0 + i64.store offset=160 local.get $0 - i32.store offset=8 - local.get $1 - local.get $0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 82 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=4 - local.set $4 - i32.const 0 - local.get $1 - i32.load offset=12 - local.tee $3 - local.get $3 i32.const 0 - i32.gt_s - select - local.set $0 - local.get $3 - i32.const 3 + i32.store offset=168 + memory.size + i32.const 16 + i32.shl + i32.const 31724 i32.sub - local.tee $3 + 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 i32.const 0 - local.get $3 + call $~lib/array/Array#constructor + global.set $std/array/arr i32.const 0 - i32.gt_s - select - local.set $3 - loop $for-loop|04 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $4 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.const 1 - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|04 - end - end - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 2032 - call $~lib/rt/__newArray - local.set $0 + call $std/array/Ref#constructor + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + local.tee $0 local.get $1 + i32.store local.get $0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 85 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=4 - local.set $4 - local.get $1 - i32.load offset=12 - local.tee $3 - i32.const 2 + i32.const 4 i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 + i32.store local.get $0 - i32.const 0 - i32.gt_s - select - local.set $0 - loop $for-loop|06 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $4 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.const 2 - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|06 - end - end + i32.const 12 i32.const 5 - i32.const 2 - i32.const 7 - i32.const 2080 - call $~lib/rt/__newArray - local.set $0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - i32.store offset=8 - local.get $1 - local.get $0 - call $std/array/isArraysEqual i32.eqz if - i32.const 0 - i32.const 1552 - i32.const 88 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 $1 - local.tee $0 - i32.load offset=4 - local.set $4 - i32.const 1 - local.get $1 - i32.load offset=12 - local.tee $3 - local.get $3 + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 1 - i32.gt_s - select - local.set $1 i32.const 0 - local.get $3 - local.get $3 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 i32.const 0 - i32.gt_s - select - local.set $3 - loop $for-loop|08 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.const 0 - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|08 - end - end - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 2128 - call $~lib/rt/__newArray - local.set $1 + i32.const 1 + call $~lib/memory/memory.fill + local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 local.get $0 - local.get $1 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 91 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + 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 - global.get $std/array/arr local.tee $1 + local.get $0 i32.store local.get $1 - i32.load offset=12 - if - i32.const 0 - i32.const 1552 - i32.const 97 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 + i32.const 1664 i32.store local.get $1 - call $std/array/internalCapacity - i32.const 8 - i32.ne + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.eqz if i32.const 0 i32.const 1552 - i32.const 98 + i32.const 52 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $std/array/arr + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 1696 + call $~lib/rt/__newArray local.tee $1 - i32.store + i32.store offset=4 local.get $1 - i32.const 42 - call $~lib/array/Array#push + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/array/Array#fill drop + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 1728 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store + local.get $0 + i32.store offset=8 local.get $1 - i32.const 0 - call $~lib/array/Array#__get - i32.const 42 - i32.ne + local.get $0 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 102 + i32.const 60 i32.const 3 call $~lib/builtins/abort unreachable end + local.get $1 + i32.const 0 + i32.const 0 + i32.const 2147483647 + call $~lib/array/Array#fill + drop + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 1760 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store + local.get $0 + i32.store offset=8 local.get $1 - i32.load offset=12 - i32.const 1 - i32.ne + local.get $0 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 103 + i32.const 63 i32.const 3 call $~lib/builtins/abort unreachable end + local.get $1 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/array/Array#fill + drop + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 1792 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store + local.get $0 + i32.store offset=8 local.get $1 - call $std/array/internalCapacity - i32.const 8 - i32.ne + local.get $0 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 104 + i32.const 66 i32.const 3 call $~lib/builtins/abort unreachable end + local.get $1 + i32.const 2 + i32.const -2 + i32.const 2147483647 + call $~lib/array/Array#fill + drop + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 1824 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store + local.get $0 + i32.store offset=8 local.get $1 - call $~lib/array/Array#pop - i32.const 42 - i32.ne + local.get $0 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 108 + i32.const 69 i32.const 3 call $~lib/builtins/abort unreachable end + local.get $1 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/array/Array#fill + drop + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 1856 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store + local.get $0 + i32.store offset=8 local.get $1 - i32.load offset=12 + local.get $0 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 109 + i32.const 72 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $std/array/arr + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 1888 + call $~lib/rt/__newArray local.tee $1 - i32.store + i32.store offset=12 local.get $1 - call $std/array/internalCapacity - i32.const 8 - i32.ne + i32.load offset=4 + local.set $4 + i32.const 1 + local.get $1 + i32.load offset=12 + local.tee $2 + local.get $2 + i32.const 1 + i32.gt_s + select + local.set $0 + i32.const 3 + local.get $2 + local.get $2 + i32.const 3 + i32.gt_s + select + local.set $2 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.const 1 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 1936 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $1 + local.get $0 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 110 + i32.const 79 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store 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 $1 - i32.store + i32.load offset=4 + local.set $2 + i32.const 0 local.get $1 i32.load offset=12 - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 114 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.tee $4 + local.get $4 + i32.const 0 + i32.gt_s + select + local.set $0 + loop $for-loop|04 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.const 0 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|04 + end end + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 1984 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store + local.get $0 + i32.store offset=8 local.get $1 - call $std/array/internalCapacity - i32.const 8 - i32.ne + local.get $0 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 115 + i32.const 82 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store local.get $1 + i32.load offset=4 + local.set $4 i32.const 0 - call $~lib/array/Array#__get - i32.const 43 - i32.ne + local.get $1 + i32.load offset=12 + local.tee $2 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $2 + i32.const 3 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + loop $for-loop|06 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.const 1 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|06 + end + end + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 2032 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $1 + local.get $0 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 116 + i32.const 85 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store 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 $1 - i32.store + i32.load offset=4 + local.set $4 local.get $1 i32.load offset=12 + local.tee $2 i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 120 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + loop $for-loop|08 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.const 2 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|08 + end end + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 2080 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store + local.get $0 + i32.store offset=8 local.get $1 - call $std/array/internalCapacity - i32.const 8 - i32.ne + local.get $0 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 121 + i32.const 88 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store local.get $1 - i32.const 0 - call $~lib/array/Array#__get - i32.const 43 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 122 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.tee $0 + i32.load offset=4 + local.set $4 + i32.const 1 + local.get $0 + i32.load offset=12 + local.tee $2 + local.get $2 + i32.const 1 + i32.gt_s + select + local.set $1 + i32.const 0 + local.get $2 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + loop $for-loop|010 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|010 + end end + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 2128 + call $~lib/rt/__newArray + local.set $1 global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store local.get $1 - i32.const 1 - call $~lib/array/Array#__get - i32.const 44 - i32.ne + i32.store offset=8 + local.get $0 + local.get $1 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 123 + i32.const 91 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 - i32.store - 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 $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 - i32.const 3 - i32.ne if i32.const 0 i32.const 1552 - i32.const 127 + i32.const 97 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne if i32.const 0 i32.const 1552 - i32.const 128 + i32.const 98 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 + i32.const 42 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 i32.const 0 call $~lib/array/Array#__get - i32.const 43 + i32.const 42 i32.ne if i32.const 0 i32.const 1552 - i32.const 129 + i32.const 102 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 + i32.load offset=12 i32.const 1 - call $~lib/array/Array#__get - i32.const 44 i32.ne if i32.const 0 i32.const 1552 - i32.const 130 + i32.const 103 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 - i32.const 2 - call $~lib/array/Array#__get - i32.const 45 + local.get $0 + call $std/array/internalCapacity + i32.const 8 i32.ne if i32.const 0 i32.const 1552 - i32.const 131 + i32.const 104 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 2 - i32.const 2 - i32.const 8 - i32.const 0 - call $~lib/rt/__newArray + global.get $std/array/arr local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.const 0 - call $std/array/Ref#constructor - call $~lib/array/Array#__uset - local.get $0 - i32.const 1 - i32.const 0 - call $std/array/Ref#constructor - call $~lib/array/Array#__uset - local.get $1 - local.get $0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.const 2 - i32.const 0 - call $~lib/array/ensureCapacity - local.get $0 - i32.const 0 - i32.store offset=12 + i32.store local.get $0 - i32.load offset=12 - if - i32.const 0 - i32.const 1552 - i32.const 139 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 2 - i32.const 3 - i32.const 2224 - call $~lib/rt/__newArray - local.tee $1 - i32.store offset=12 - local.get $1 - i32.const 0 - call $~lib/array/Array#at - i32.const 1 + call $~lib/array/Array#pop + i32.const 42 i32.ne if i32.const 0 i32.const 1552 - i32.const 147 + i32.const 108 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 3 - call $~lib/array/Array#at - i32.const 4 - i32.ne + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 if i32.const 0 i32.const 1552 - i32.const 148 + i32.const 109 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const -1 - call $~lib/array/Array#at - i32.const 4 + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 i32.ne if i32.const 0 i32.const 1552 - i32.const 149 + i32.const 110 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const -4 - call $~lib/array/Array#at + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 43 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 i32.const 1 i32.ne if i32.const 0 i32.const 1552 - i32.const 150 + i32.const 114 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/array/Array#constructor - local.tee $3 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 - i32.store - local.get $0 - local.get $1 - local.get $3 - call $~lib/array/Array#concat local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne if i32.const 0 i32.const 1552 - i32.const 159 + i32.const 115 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 - i32.load offset=12 - i32.const 3 + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 i32.ne if i32.const 0 i32.const 1552 - i32.const 160 + i32.const 116 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - i32.load offset=12 - i32.const 3 + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 44 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 2 i32.ne if i32.const 0 i32.const 1552 - i32.const 161 + i32.const 120 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 2272 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/array/Array#concat - drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne if i32.const 0 i32.const 1552 - i32.const 164 + i32.const 121 i32.const 3 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store local.get $0 i32.const 0 call $~lib/array/Array#__get @@ -14971,11 +15776,15 @@ if i32.const 0 i32.const 1552 - i32.const 166 + i32.const 122 i32.const 3 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store local.get $0 i32.const 1 call $~lib/array/Array#__get @@ -14984,522 +15793,520 @@ if i32.const 0 i32.const 1552 - i32.const 167 + i32.const 123 i32.const 3 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store local.get $0 - i32.const 2 - call $~lib/array/Array#__get i32.const 45 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 i32.ne if i32.const 0 i32.const 1552 - i32.const 168 + i32.const 127 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 46 - call $~lib/array/Array#push - drop - local.get $3 - i32.const 47 - call $~lib/array/Array#push - drop global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 - i32.store - local.get $0 - local.get $1 - local.get $3 - call $~lib/array/Array#concat local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne if i32.const 0 i32.const 1552 - i32.const 175 + i32.const 128 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $3 - i32.load offset=12 - i32.const 2 + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 i32.ne if i32.const 0 i32.const 1552 - i32.const 176 + i32.const 129 i32.const 3 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store local.get $0 - i32.load offset=12 - i32.const 5 + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 i32.ne if i32.const 0 i32.const 1552 - i32.const 177 + i32.const 130 i32.const 3 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store local.get $0 - i32.const 0 + i32.const 2 call $~lib/array/Array#__get - i32.const 43 + i32.const 45 i32.ne if i32.const 0 i32.const 1552 - i32.const 178 + i32.const 131 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 2 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + i32.store offset=16 + local.get $1 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $1 i32.const 1 - call $~lib/array/Array#__get - i32.const 44 - i32.ne + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $0 + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 0 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $1 + i32.load offset=12 if i32.const 0 i32.const 1552 - i32.const 179 + i32.const 139 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.const 2 - call $~lib/array/Array#__get - i32.const 45 + i32.const 3 + i32.const 2224 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=12 + local.get $0 + i32.const 0 + call $~lib/array/Array#at + i32.const 1 i32.ne if i32.const 0 i32.const 1552 - i32.const 180 + i32.const 147 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 i32.const 3 - call $~lib/array/Array#__get - i32.const 46 + call $~lib/array/Array#at + i32.const 4 i32.ne if i32.const 0 i32.const 1552 - i32.const 181 + i32.const 148 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 + i32.const -1 + call $~lib/array/Array#at i32.const 4 - call $~lib/array/Array#__get - i32.const 47 i32.ne if i32.const 0 i32.const 1552 - i32.const 182 + i32.const 149 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - call $~lib/array/Array#pop - drop - local.get $0 - i32.load offset=12 - i32.const 4 + i32.const -4 + call $~lib/array/Array#at + i32.const 1 i32.ne if i32.const 0 i32.const 1552 - i32.const 185 + i32.const 150 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 2 - i32.const 3 - i32.const 2304 - call $~lib/rt/__newArray - local.tee $3 - i32.store offset=4 - local.get $3 - i32.load offset=12 + call $~lib/array/Array#constructor + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.tee $1 + global.get $std/array/arr + local.tee $0 + i32.store + local.get $1 + local.get $0 + local.get $2 + call $~lib/array/Array#concat + local.tee $1 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 + i32.ne if i32.const 0 i32.const 1552 - i32.const 193 + i32.const 159 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 - i32.store offset=8 + local.tee $0 + i32.store local.get $0 - local.get $3 - local.get $1 - call $~lib/array/Array#concat - local.tee $1 - i32.store offset=16 - local.get $1 i32.load offset=12 i32.const 3 i32.ne if i32.const 0 i32.const 1552 - i32.const 195 + i32.const 160 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 i32.load offset=12 + i32.const 3 + i32.ne if i32.const 0 i32.const 1552 - i32.const 196 + i32.const 161 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5 + i32.const 0 i32.const 2 i32.const 3 - i32.const 2336 + i32.const 2272 call $~lib/rt/__newArray - local.tee $1 - i32.store offset=16 - local.get $1 - i32.const 0 - i32.const 3 - i32.const 2147483647 - call $~lib/array/Array#copyWithin local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2384 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=8 - local.get $0 local.get $1 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz + local.get $0 + call $~lib/array/Array#concat + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 + i32.ne if i32.const 0 i32.const 1552 - i32.const 203 + i32.const 164 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2432 - call $~lib/rt/__newArray - local.tee $1 - i32.store offset=16 - local.get $1 - i32.const 1 - i32.const 3 - i32.const 2147483647 - call $~lib/array/Array#copyWithin - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2480 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 local.get $1 i32.const 0 - call $std/array/isArraysEqual - i32.eqz + call $~lib/array/Array#__get + i32.const 43 + i32.ne if i32.const 0 i32.const 1552 - i32.const 205 + i32.const 166 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2528 - call $~lib/rt/__newArray - local.tee $1 - i32.store offset=16 local.get $1 i32.const 1 - i32.const 2 - i32.const 2147483647 - call $~lib/array/Array#copyWithin - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2576 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz + call $~lib/array/Array#__get + i32.const 44 + i32.ne if i32.const 0 i32.const 1552 - i32.const 207 + i32.const 167 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2624 - call $~lib/rt/__newArray - local.tee $1 - i32.store offset=16 local.get $1 i32.const 2 - i32.const 2 - i32.const 2147483647 - call $~lib/array/Array#copyWithin - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2672 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz + call $~lib/array/Array#__get + i32.const 45 + i32.ne if i32.const 0 i32.const 1552 - i32.const 209 + i32.const 168 i32.const 3 call $~lib/builtins/abort unreachable end + local.get $2 + i32.const 46 + call $~lib/array/Array#push + drop + local.get $2 + i32.const 47 + call $~lib/array/Array#push + drop global.get $~lib/memory/__stack_pointer - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2720 - call $~lib/rt/__newArray local.tee $1 - i32.store offset=16 + global.get $std/array/arr + local.tee $0 + i32.store local.get $1 - i32.const 0 - i32.const 3 - i32.const 4 - call $~lib/array/Array#copyWithin - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2768 - call $~lib/rt/__newArray - local.set $1 + local.get $2 + call $~lib/array/Array#concat + local.tee $1 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 + global.get $std/array/arr + local.tee $0 + i32.store local.get $0 - local.get $1 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz + call $std/array/internalCapacity + i32.const 8 + i32.ne if i32.const 0 i32.const 1552 - i32.const 211 + i32.const 175 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2816 - call $~lib/rt/__newArray - local.tee $1 - i32.store offset=16 - local.get $1 - i32.const 1 - i32.const 3 - i32.const 4 - call $~lib/array/Array#copyWithin - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 5 + local.get $2 + i32.load offset=12 i32.const 2 - i32.const 3 - i32.const 2864 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz + i32.ne if i32.const 0 i32.const 1552 - i32.const 213 + i32.const 176 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2912 - call $~lib/rt/__newArray - local.tee $1 - i32.store offset=16 local.get $1 - i32.const 1 - i32.const 2 - i32.const 4 - call $~lib/array/Array#copyWithin - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.load offset=12 i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2960 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz + i32.ne if i32.const 0 i32.const 1552 - i32.const 215 + i32.const 177 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3008 - call $~lib/rt/__newArray - local.tee $1 - i32.store offset=16 local.get $1 i32.const 0 - i32.const -2 - i32.const 2147483647 - call $~lib/array/Array#copyWithin - local.set $0 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 178 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 179 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 180 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + call $~lib/array/Array#__get + i32.const 46 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 181 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + call $~lib/array/Array#__get + i32.const 47 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 182 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/array/Array#pop + drop + local.get $1 + i32.load offset=12 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 185 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 5 + i32.const 0 i32.const 2 i32.const 3 - i32.const 3056 + i32.const 2304 call $~lib/rt/__newArray - local.set $1 + local.tee $2 + i32.store offset=4 + local.get $2 + i32.load offset=12 + if + i32.const 0 + i32.const 1552 + i32.const 193 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 + local.tee $1 + global.get $std/array/arr + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz + local.get $2 + local.get $0 + call $~lib/array/Array#concat + local.tee $0 + i32.store offset=16 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.ne if i32.const 0 i32.const 1552 - i32.const 217 + i32.const 195 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=12 + if + i32.const 0 + i32.const 1552 + i32.const 196 i32.const 3 call $~lib/builtins/abort unreachable @@ -15508,37 +16315,37 @@ i32.const 5 i32.const 2 i32.const 3 - i32.const 3104 + i32.const 2336 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 - i32.const -2 - 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 3152 + i32.const 2384 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 1552 - i32.const 219 + i32.const 203 i32.const 3 call $~lib/builtins/abort unreachable @@ -15547,37 +16354,37 @@ i32.const 5 i32.const 2 i32.const 3 - i32.const 3200 + i32.const 2432 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 - i32.const -4 - i32.const -3 - i32.const -2 + local.get $0 + 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 3248 + i32.const 2480 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 1552 - i32.const 221 + i32.const 205 i32.const 3 call $~lib/builtins/abort unreachable @@ -15586,37 +16393,37 @@ i32.const 5 i32.const 2 i32.const 3 - i32.const 3296 + i32.const 2528 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 - i32.const -4 - i32.const -3 - i32.const -1 + local.get $0 + 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 3344 + i32.const 2576 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 1552 - i32.const 223 + i32.const 207 i32.const 3 call $~lib/builtins/abort unreachable @@ -15625,197 +16432,509 @@ i32.const 5 i32.const 2 i32.const 3 - i32.const 3392 + i32.const 2624 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 - i32.const -4 - i32.const -3 + local.get $0 + 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 3440 + i32.const 2672 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 1552 - i32.const 225 + i32.const 209 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store - local.get $1 - i32.const 42 - call $~lib/array/Array#unshift - drop + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2720 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const 3 + i32.const 4 + call $~lib/array/Array#copyWithin + local.set $1 global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 + local.get $1 i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2768 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $1 - i32.load offset=12 - i32.const 4 - i32.ne + local.get $0 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 233 + i32.const 211 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2816 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 3 + i32.const 4 + call $~lib/array/Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2864 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $1 - call $std/array/internalCapacity - i32.const 8 - i32.ne + local.get $0 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 234 + i32.const 213 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2912 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 2 + i32.const 4 + call $~lib/array/Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2960 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 - call $~lib/array/Array#__get - i32.const 42 - i32.ne + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 235 + i32.const 215 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3008 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const -2 + i32.const 2147483647 + call $~lib/array/Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3056 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $1 - i32.const 1 - call $~lib/array/Array#__get - i32.const 43 - i32.ne + local.get $0 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 236 + i32.const 217 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store - local.get $1 + i32.const 5 i32.const 2 - call $~lib/array/Array#__get - i32.const 44 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 237 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 3 + i32.const 3104 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const -2 + i32.const -1 + call $~lib/array/Array#copyWithin + local.set $1 global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store local.get $1 + i32.store + i32.const 5 + i32.const 2 i32.const 3 - call $~lib/array/Array#__get - i32.const 45 - i32.ne + i32.const 3152 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $1 + local.get $0 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 238 + i32.const 219 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store - local.get $1 - i32.const 41 - call $~lib/array/Array#unshift - drop + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3200 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const -4 + i32.const -3 + i32.const -2 + call $~lib/array/Array#copyWithin + local.set $1 global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store local.get $1 - i32.load offset=12 + i32.store i32.const 5 - i32.ne + i32.const 2 + i32.const 3 + i32.const 3248 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $1 + local.get $0 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 242 + i32.const 221 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3296 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const -4 + i32.const -3 + i32.const -1 + call $~lib/array/Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3344 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $1 - call $std/array/internalCapacity - i32.const 8 - i32.ne + local.get $0 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 243 + i32.const 223 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $1 - i32.store - local.get $1 - i32.const 0 - call $~lib/array/Array#__get - i32.const 41 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3392 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const -4 + i32.const -3 + i32.const 2147483647 + call $~lib/array/Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3440 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $1 + local.get $0 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 225 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 42 + call $~lib/array/Array#unshift + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 233 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 236 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 237 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#__get + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 238 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 41 + call $~lib/array/Array#unshift + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 242 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $std/array/internalCapacity + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 243 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 41 i32.ne if i32.const 0 @@ -15827,9 +16946,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -15844,9 +16963,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -15861,9 +16980,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -15878,9 +16997,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -15899,7 +17018,7 @@ i32.store local.get $5 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.lt_s if @@ -15918,21 +17037,21 @@ local.get $4 i32.const 4 i32.add - local.get $1 + local.get $0 i32.const 1 i32.sub - local.tee $0 + local.tee $1 i32.const 2 i32.shl - local.tee $1 + local.tee $0 call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add i32.const 0 i32.store local.get $5 - local.get $0 + local.get $1 i32.store offset=12 global.set $std/array/i global.get $std/array/i @@ -15948,9 +17067,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 4 i32.ne @@ -15964,9 +17083,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15980,9 +17099,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -15997,9 +17116,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -16014,9 +17133,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -16031,9 +17150,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -16048,9 +17167,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -16066,9 +17185,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -16082,9 +17201,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16098,9 +17217,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -16115,9 +17234,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -16132,9 +17251,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -16153,26 +17272,26 @@ i32.const 3 i32.const 3488 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 3 i32.const 2 i32.const 3 i32.const 3536 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 @@ -16185,23 +17304,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3568 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 @@ -16214,23 +17333,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 4 i32.const 2 i32.const 3 i32.const 3600 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 @@ -16243,14 +17362,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16263,23 +17382,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const -2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3648 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 @@ -16292,23 +17411,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3680 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 @@ -16321,23 +17440,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3712 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 @@ -16349,15 +17468,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -16367,15 +17486,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 10 i32.const 2147483647 call $~lib/array/Array#slice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -16387,16 +17506,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.load offset=12 local.tee $1 if - local.get $3 + local.get $2 i32.load offset=4 local.set $0 - local.get $3 + local.get $2 i32.load offset=4 local.get $1 i32.const 1 @@ -16404,39 +17523,39 @@ i32.const 2 i32.shl i32.add - local.set $6 + local.set $1 loop $while-continue|0 local.get $0 - local.get $6 + local.get $1 i32.lt_u if local.get $0 i32.load - local.set $1 + local.set $2 local.get $0 - local.get $6 + local.get $1 i32.load i32.store - local.get $6 local.get $1 + local.get $2 i32.store local.get $0 i32.const 4 i32.add local.set $0 - local.get $6 + local.get $1 i32.const 4 i32.sub - local.set $6 + local.set $1 br $while-continue|0 end end end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -16450,9 +17569,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16466,9 +17585,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -16483,9 +17602,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -16500,9 +17619,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -16517,17 +17636,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 43 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 44 call $~lib/array/Array#push drop @@ -16540,11 +17659,11 @@ block $__inlined_func$~lib/array/Array#indexOf local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $2 select if i32.const -1 @@ -16554,9 +17673,9 @@ local.get $0 i32.load offset=4 local.set $0 - loop $while-continue|09 + loop $while-continue|011 local.get $1 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -16572,7 +17691,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|09 + br $while-continue|011 end end i32.const -1 @@ -16595,26 +17714,26 @@ i32.store i32.const 0 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf10 + block $__inlined_func$~lib/array/Array#indexOf12 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $2 select if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf10 + br $__inlined_func$~lib/array/Array#indexOf12 end local.get $0 i32.load offset=4 local.set $0 - loop $while-continue|011 + loop $while-continue|013 local.get $1 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -16625,12 +17744,12 @@ i32.load i32.const 42 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf10 + br_if $__inlined_func$~lib/array/Array#indexOf12 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|011 + br $while-continue|013 end end i32.const -1 @@ -16655,26 +17774,26 @@ i32.store i32.const 0 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf12 + block $__inlined_func$~lib/array/Array#indexOf14 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $2 select if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf12 + br $__inlined_func$~lib/array/Array#indexOf14 end local.get $0 i32.load offset=4 local.set $0 - loop $while-continue|013 + loop $while-continue|015 local.get $1 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -16685,12 +17804,12 @@ i32.load i32.const 45 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf12 + br_if $__inlined_func$~lib/array/Array#indexOf14 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|013 + br $while-continue|015 end end i32.const -1 @@ -16715,26 +17834,26 @@ i32.store i32.const 100 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf14 + block $__inlined_func$~lib/array/Array#indexOf16 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const 100 i32.le_s i32.const 1 - local.get $3 + local.get $2 select if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf14 + br $__inlined_func$~lib/array/Array#indexOf16 end local.get $0 i32.load offset=4 local.set $0 - loop $while-continue|015 + loop $while-continue|017 local.get $1 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -16745,12 +17864,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf14 + br_if $__inlined_func$~lib/array/Array#indexOf16 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|015 + br $while-continue|017 end end i32.const -1 @@ -16773,21 +17892,21 @@ global.get $std/array/arr local.tee $0 i32.store - block $__inlined_func$~lib/array/Array#indexOf16 + block $__inlined_func$~lib/array/Array#indexOf18 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $2 select if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf16 + br $__inlined_func$~lib/array/Array#indexOf18 end - local.get $3 + local.get $2 i32.const 100 i32.sub local.tee $1 @@ -16800,9 +17919,9 @@ local.get $0 i32.load offset=4 local.set $0 - loop $while-continue|017 + loop $while-continue|019 local.get $1 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -16813,12 +17932,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf16 + br_if $__inlined_func$~lib/array/Array#indexOf18 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|017 + br $while-continue|019 end end i32.const -1 @@ -16841,21 +17960,21 @@ global.get $std/array/arr local.tee $0 i32.store - block $__inlined_func$~lib/array/Array#indexOf18 + block $__inlined_func$~lib/array/Array#indexOf20 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const -2 i32.le_s i32.const 1 - local.get $3 + local.get $2 select if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf18 + br $__inlined_func$~lib/array/Array#indexOf20 end - local.get $3 + local.get $2 i32.const 2 i32.sub local.tee $1 @@ -16868,9 +17987,9 @@ local.get $0 i32.load offset=4 local.set $0 - loop $while-continue|019 + loop $while-continue|021 local.get $1 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -16881,12 +18000,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf18 + br_if $__inlined_func$~lib/array/Array#indexOf20 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|019 + br $while-continue|021 end end i32.const -1 @@ -16909,21 +18028,21 @@ global.get $std/array/arr local.tee $0 i32.store - block $__inlined_func$~lib/array/Array#indexOf20 + block $__inlined_func$~lib/array/Array#indexOf22 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const -4 i32.le_s i32.const 1 - local.get $3 + local.get $2 select if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf20 + br $__inlined_func$~lib/array/Array#indexOf22 end - local.get $3 + local.get $2 i32.const 4 i32.sub local.tee $1 @@ -16936,9 +18055,9 @@ local.get $0 i32.load offset=4 local.set $0 - loop $while-continue|021 + loop $while-continue|023 local.get $1 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -16949,12 +18068,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf20 + br_if $__inlined_func$~lib/array/Array#indexOf22 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|021 + br $while-continue|023 end end i32.const -1 @@ -16979,26 +18098,26 @@ i32.store i32.const 0 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf22 + block $__inlined_func$~lib/array/Array#indexOf24 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $2 select if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf22 + br $__inlined_func$~lib/array/Array#indexOf24 end local.get $0 i32.load offset=4 local.set $0 - loop $while-continue|023 + loop $while-continue|025 local.get $1 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -17009,12 +18128,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf22 + br_if $__inlined_func$~lib/array/Array#indexOf24 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|023 + br $while-continue|025 end end i32.const -1 @@ -17039,26 +18158,26 @@ i32.store i32.const 1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf24 + block $__inlined_func$~lib/array/Array#indexOf26 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const 1 i32.le_s i32.const 1 - local.get $3 + local.get $2 select if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf24 + br $__inlined_func$~lib/array/Array#indexOf26 end local.get $0 i32.load offset=4 local.set $0 - loop $while-continue|025 + loop $while-continue|027 local.get $1 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -17069,12 +18188,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf24 + br_if $__inlined_func$~lib/array/Array#indexOf26 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|025 + br $while-continue|027 end end i32.const -1 @@ -17099,26 +18218,26 @@ i32.store i32.const 2 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf26 + block $__inlined_func$~lib/array/Array#indexOf28 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const 2 i32.le_s i32.const 1 - local.get $3 + local.get $2 select if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf26 + br $__inlined_func$~lib/array/Array#indexOf28 end local.get $0 i32.load offset=4 local.set $0 - loop $while-continue|027 + loop $while-continue|029 local.get $1 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -17129,12 +18248,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf26 + br_if $__inlined_func$~lib/array/Array#indexOf28 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|027 + br $while-continue|029 end end i32.const -1 @@ -17158,16 +18277,16 @@ i32.const 9 i32.const 3744 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store i32.const 0 local.set $1 i32.const -1 local.set $0 block $__inlined_func$~lib/array/Array#indexOf - local.get $3 + local.get $2 i32.load offset=12 local.tee $4 i32.const 0 @@ -17176,15 +18295,15 @@ local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf - local.get $3 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|02528 + local.set $2 + loop $while-continue|02530 local.get $1 local.get $4 i32.lt_s if - local.get $3 + local.get $2 local.get $1 local.tee $0 i32.const 2 @@ -17198,7 +18317,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|02528 + br $while-continue|02530 end end i32.const -1 @@ -17220,16 +18339,16 @@ i32.const 10 i32.const 3776 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store i32.const 0 local.set $1 i32.const -1 local.set $0 block $__inlined_func$~lib/array/Array#indexOf - local.get $3 + local.get $2 i32.load offset=12 local.tee $4 i32.const 0 @@ -17238,15 +18357,15 @@ local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf - local.get $3 + local.get $2 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|026 local.get $1 local.get $4 i32.lt_s if - local.get $3 + local.get $2 local.get $1 local.tee $0 i32.const 3 @@ -17289,7 +18408,7 @@ global.set $~argumentsLength local.get $1 i32.load offset=12 - local.set $3 + local.set $2 i32.const -1 local.set $0 block $__inlined_func$~lib/array/Array#lastIndexOf @@ -17298,32 +18417,32 @@ local.tee $4 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $3 + local.get $2 local.get $4 i32.add local.get $4 i32.const 1 i32.sub - local.get $3 - local.get $3 + local.get $2 + local.get $2 local.get $4 i32.ge_s select - local.get $3 + local.get $2 i32.const 0 i32.lt_s select - local.set $3 + local.set $2 local.get $1 i32.load offset=4 local.set $4 - loop $while-continue|01 - local.get $3 + loop $while-continue|00 + local.get $2 i32.const 0 i32.ge_s if local.get $4 - local.get $3 + local.get $2 local.tee $0 i32.const 2 i32.shl @@ -17335,8 +18454,8 @@ local.get $0 i32.const 1 i32.sub - local.set $3 - br $while-continue|01 + local.set $2 + br $while-continue|00 end end i32.const -1 @@ -17357,41 +18476,41 @@ global.set $~argumentsLength local.get $1 i32.load offset=12 - local.set $3 + local.set $2 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf6 + block $__inlined_func$~lib/array/Array#lastIndexOf5 local.get $1 i32.load offset=12 local.tee $4 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf6 - local.get $3 + br_if $__inlined_func$~lib/array/Array#lastIndexOf5 + local.get $2 local.get $4 i32.add local.get $4 i32.const 1 i32.sub - local.get $3 - local.get $3 + local.get $2 + local.get $2 local.get $4 i32.ge_s select - local.get $3 + local.get $2 i32.const 0 i32.lt_s select - local.set $3 + local.set $2 local.get $1 i32.load offset=4 local.set $4 - loop $while-continue|07 - local.get $3 + loop $while-continue|06 + local.get $2 i32.const 0 i32.ge_s if local.get $4 - local.get $3 + local.get $2 local.tee $0 i32.const 2 i32.shl @@ -17399,12 +18518,12 @@ i32.load i32.const 7 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf6 + br_if $__inlined_func$~lib/array/Array#lastIndexOf5 local.get $0 i32.const 1 i32.sub - local.set $3 - br $while-continue|07 + local.set $2 + br $while-continue|06 end end i32.const -1 @@ -17421,7 +18540,7 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#lastIndexOf8 + block $__inlined_func$~lib/array/Array#lastIndexOf7 local.get $1 i32.load offset=12 local.tee $0 @@ -17429,7 +18548,7 @@ if i32.const -1 local.set $0 - br $__inlined_func$~lib/array/Array#lastIndexOf8 + br $__inlined_func$~lib/array/Array#lastIndexOf7 end local.get $0 i32.const 1 @@ -17442,13 +18561,13 @@ local.set $0 local.get $1 i32.load offset=4 - local.set $3 - loop $while-continue|029 + local.set $2 + loop $while-continue|031 local.get $0 i32.const 0 i32.ge_s if - local.get $3 + local.get $2 local.get $0 i32.const 2 i32.shl @@ -17456,12 +18575,12 @@ i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf8 + br_if $__inlined_func$~lib/array/Array#lastIndexOf7 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|029 + br $while-continue|031 end end i32.const -1 @@ -17478,7 +18597,7 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#lastIndexOf30 + block $__inlined_func$~lib/array/Array#lastIndexOf32 local.get $1 i32.load offset=12 local.tee $0 @@ -17486,7 +18605,7 @@ if i32.const -1 local.set $0 - br $__inlined_func$~lib/array/Array#lastIndexOf30 + br $__inlined_func$~lib/array/Array#lastIndexOf32 end local.get $0 i32.const 1 @@ -17499,13 +18618,13 @@ local.set $0 local.get $1 i32.load offset=4 - local.set $3 - loop $while-continue|031 + local.set $2 + loop $while-continue|033 local.get $0 i32.const 0 i32.ge_s if - local.get $3 + local.get $2 local.get $0 i32.const 2 i32.shl @@ -17513,12 +18632,12 @@ i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf30 + br_if $__inlined_func$~lib/array/Array#lastIndexOf32 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|031 + br $while-continue|033 end end i32.const -1 @@ -17533,7 +18652,7 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#lastIndexOf32 + block $__inlined_func$~lib/array/Array#lastIndexOf34 local.get $1 i32.load offset=12 local.tee $0 @@ -17541,7 +18660,7 @@ if i32.const -1 local.set $0 - br $__inlined_func$~lib/array/Array#lastIndexOf32 + br $__inlined_func$~lib/array/Array#lastIndexOf34 end local.get $0 i32.const 2 @@ -17549,13 +18668,13 @@ local.set $0 local.get $1 i32.load offset=4 - local.set $3 - loop $while-continue|033 + local.set $2 + loop $while-continue|035 local.get $0 i32.const 0 i32.ge_s if - local.get $3 + local.get $2 local.get $0 i32.const 2 i32.shl @@ -17563,12 +18682,12 @@ i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf32 + br_if $__inlined_func$~lib/array/Array#lastIndexOf34 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|033 + br $while-continue|035 end end i32.const -1 @@ -17583,7 +18702,7 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#lastIndexOf34 + block $__inlined_func$~lib/array/Array#lastIndexOf36 local.get $1 local.tee $0 i32.load offset=12 @@ -17592,7 +18711,7 @@ if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#lastIndexOf34 + br $__inlined_func$~lib/array/Array#lastIndexOf36 end local.get $1 i32.const 1 @@ -17601,7 +18720,7 @@ local.get $0 i32.load offset=4 local.set $0 - loop $while-continue|035 + loop $while-continue|037 local.get $1 i32.const 0 i32.ge_s @@ -17614,12 +18733,12 @@ i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf34 + br_if $__inlined_func$~lib/array/Array#lastIndexOf36 local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|035 + br $while-continue|037 end end i32.const -1 @@ -17638,52 +18757,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store i32.const 0 - local.set $3 - block $__inlined_func$~lib/array/Array#indexOf9 - local.get $1 + local.set $2 + block $__inlined_func$~lib/array/Array#indexOf8 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 0 i32.le_s i32.const 1 - local.get $0 + local.get $1 select if i32.const -1 - local.set $3 - br $__inlined_func$~lib/array/Array#indexOf9 + local.set $2 + br $__inlined_func$~lib/array/Array#indexOf8 end - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 - loop $while-continue|010 - local.get $0 - local.get $3 + local.set $0 + loop $while-continue|09 + local.get $1 + local.get $2 i32.gt_s if - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.const 2 i32.shl i32.add i32.load i32.const 44 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf9 - local.get $3 + br_if $__inlined_func$~lib/array/Array#indexOf8 + local.get $2 i32.const 1 i32.add - local.set $3 - br $while-continue|010 + local.set $2 + br $while-continue|09 end end i32.const -1 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.lt_s if @@ -17696,52 +18815,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store i32.const 0 - local.set $3 - block $__inlined_func$~lib/array/Array#indexOf13 - local.get $1 + local.set $2 + block $__inlined_func$~lib/array/Array#indexOf11 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 0 i32.le_s i32.const 1 - local.get $0 + local.get $1 select if i32.const -1 - local.set $3 - br $__inlined_func$~lib/array/Array#indexOf13 + local.set $2 + br $__inlined_func$~lib/array/Array#indexOf11 end - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 - loop $while-continue|014 - local.get $0 - local.get $3 + local.set $0 + loop $while-continue|012 + local.get $1 + local.get $2 i32.gt_s if - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.const 2 i32.shl i32.add i32.load i32.const 42 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf13 - local.get $3 + br_if $__inlined_func$~lib/array/Array#indexOf11 + local.get $2 i32.const 1 i32.add - local.set $3 - br $while-continue|014 + local.set $2 + br $while-continue|012 end end i32.const -1 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.lt_s if @@ -17754,52 +18873,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store i32.const 0 - local.set $3 - block $__inlined_func$~lib/array/Array#indexOf17 - local.get $1 + local.set $2 + block $__inlined_func$~lib/array/Array#indexOf15 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 0 i32.le_s i32.const 1 - local.get $0 + local.get $1 select if i32.const -1 - local.set $3 - br $__inlined_func$~lib/array/Array#indexOf17 + local.set $2 + br $__inlined_func$~lib/array/Array#indexOf15 end - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 - loop $while-continue|018 - local.get $0 - local.get $3 + local.set $0 + loop $while-continue|016 + local.get $1 + local.get $2 i32.gt_s if - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.const 2 i32.shl i32.add i32.load i32.const 45 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf17 - local.get $3 + br_if $__inlined_func$~lib/array/Array#indexOf15 + local.get $2 i32.const 1 i32.add - local.set $3 - br $while-continue|018 + local.set $2 + br $while-continue|016 end end i32.const -1 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.ge_s if @@ -17812,52 +18931,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store i32.const 100 - local.set $3 - block $__inlined_func$~lib/array/Array#indexOf21 - local.get $1 + local.set $2 + block $__inlined_func$~lib/array/Array#indexOf19 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 100 i32.le_s i32.const 1 - local.get $0 + local.get $1 select if i32.const -1 - local.set $3 - br $__inlined_func$~lib/array/Array#indexOf21 + local.set $2 + br $__inlined_func$~lib/array/Array#indexOf19 end - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 - loop $while-continue|022 - local.get $0 - local.get $3 + local.set $0 + loop $while-continue|020 + local.get $1 + local.get $2 i32.gt_s if - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.const 2 i32.shl i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf21 - local.get $3 + br_if $__inlined_func$~lib/array/Array#indexOf19 + local.get $2 i32.const 1 i32.add - local.set $3 - br $while-continue|022 + local.set $2 + br $while-continue|020 end end i32.const -1 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.ge_s if @@ -17870,23 +18989,23 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - block $__inlined_func$~lib/array/Array#indexOf25 - local.get $3 + block $__inlined_func$~lib/array/Array#indexOf23 + local.get $0 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $2 select if i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf25 + local.set $1 + br $__inlined_func$~lib/array/Array#indexOf23 end - local.get $4 + local.get $2 i32.const 100 i32.sub local.tee $1 @@ -17895,35 +19014,35 @@ i32.const 0 i32.gt_s select - local.set $0 - local.get $3 - i32.load offset=4 local.set $1 - loop $while-continue|028 - local.get $0 - local.get $4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|024 + local.get $1 + local.get $2 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf25 - local.get $0 + br_if $__inlined_func$~lib/array/Array#indexOf23 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|028 + local.set $1 + br $while-continue|024 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -17936,23 +19055,23 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - block $__inlined_func$~lib/array/Array#indexOf30 - local.get $3 + block $__inlined_func$~lib/array/Array#indexOf27 + local.get $0 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const -2 i32.le_s i32.const 1 - local.get $4 + local.get $2 select if i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf30 + local.set $1 + br $__inlined_func$~lib/array/Array#indexOf27 end - local.get $4 + local.get $2 i32.const 2 i32.sub local.tee $1 @@ -17961,35 +19080,35 @@ i32.const 0 i32.gt_s select - local.set $0 - local.get $3 - i32.load offset=4 local.set $1 - loop $while-continue|032 - local.get $0 - local.get $4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|028 + local.get $1 + local.get $2 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf30 - local.get $0 + br_if $__inlined_func$~lib/array/Array#indexOf27 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|032 + local.set $1 + br $while-continue|028 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -18002,23 +19121,23 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - block $__inlined_func$~lib/array/Array#indexOf34 - local.get $3 + block $__inlined_func$~lib/array/Array#indexOf30 + local.get $0 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const -4 i32.le_s i32.const 1 - local.get $4 + local.get $2 select if i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf34 + local.set $1 + br $__inlined_func$~lib/array/Array#indexOf30 end - local.get $4 + local.get $2 i32.const 4 i32.sub local.tee $1 @@ -18027,35 +19146,35 @@ i32.const 0 i32.gt_s select - local.set $0 - local.get $3 - i32.load offset=4 local.set $1 - loop $while-continue|036 - local.get $0 - local.get $4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|032 + local.get $1 + local.get $2 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf34 - local.get $0 + br_if $__inlined_func$~lib/array/Array#indexOf30 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|036 + local.set $1 + br $while-continue|032 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -18068,52 +19187,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store i32.const 0 - local.set $3 - block $__inlined_func$~lib/array/Array#indexOf38 - local.get $1 + local.set $2 + block $__inlined_func$~lib/array/Array#indexOf34 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 0 i32.le_s i32.const 1 - local.get $0 + local.get $1 select if i32.const -1 - local.set $3 - br $__inlined_func$~lib/array/Array#indexOf38 + local.set $2 + br $__inlined_func$~lib/array/Array#indexOf34 end - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 - loop $while-continue|039 - local.get $0 - local.get $3 + local.set $0 + loop $while-continue|036 + local.get $1 + local.get $2 i32.gt_s if - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.const 2 i32.shl i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf38 - local.get $3 + br_if $__inlined_func$~lib/array/Array#indexOf34 + local.get $2 i32.const 1 i32.add - local.set $3 - br $while-continue|039 + local.set $2 + br $while-continue|036 end end i32.const -1 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.lt_s if @@ -18126,52 +19245,52 @@ 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 $3 - block $__inlined_func$~lib/array/Array#indexOf41 - local.get $1 + local.set $2 + block $__inlined_func$~lib/array/Array#indexOf38 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_s i32.const 1 - local.get $0 + local.get $1 select if i32.const -1 - local.set $3 - br $__inlined_func$~lib/array/Array#indexOf41 + local.set $2 + br $__inlined_func$~lib/array/Array#indexOf38 end - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 - loop $while-continue|042 - local.get $0 - local.get $3 + local.set $0 + loop $while-continue|039 + local.get $1 + local.get $2 i32.gt_s if - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.const 2 i32.shl i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf41 - local.get $3 + br_if $__inlined_func$~lib/array/Array#indexOf38 + local.get $2 i32.const 1 i32.add - local.set $3 - br $while-continue|042 + local.set $2 + br $while-continue|039 end end i32.const -1 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.lt_s if @@ -18184,52 +19303,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store i32.const 2 - local.set $3 - block $__inlined_func$~lib/array/Array#indexOf44 - local.get $1 + local.set $2 + block $__inlined_func$~lib/array/Array#indexOf41 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 2 i32.le_s i32.const 1 - local.get $0 + local.get $1 select if i32.const -1 - local.set $3 - br $__inlined_func$~lib/array/Array#indexOf44 + local.set $2 + br $__inlined_func$~lib/array/Array#indexOf41 end - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 - loop $while-continue|045 - local.get $0 - local.get $3 + local.set $0 + loop $while-continue|042 + local.get $1 + local.get $2 i32.gt_s if - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.const 2 i32.shl i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf44 - local.get $3 + br_if $__inlined_func$~lib/array/Array#indexOf41 + local.get $2 i32.const 1 i32.add - local.set $3 - br $while-continue|045 + local.set $2 + br $while-continue|042 end end i32.const -1 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.lt_s if @@ -18255,20 +19374,20 @@ i32.const 0 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $2 select br_if $__inlined_func$~lib/array/Array#includes drop local.get $0 i32.load offset=4 local.set $0 - loop $while-continue|02736 + loop $while-continue|02738 local.get $1 - local.get $3 + local.get $2 i32.lt_s if i32.const 1 @@ -18279,10 +19398,10 @@ i32.shl i32.add f32.load - local.tee $12 - local.get $12 + local.tee $11 + local.get $11 f32.ne - local.get $12 + local.get $11 f32.const nan:0x400000 f32.eq select @@ -18292,7 +19411,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|02736 + br $while-continue|02738 end end i32.const 0 @@ -18321,20 +19440,20 @@ i32.const 0 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $2 select br_if $__inlined_func$~lib/array/Array#includes drop local.get $0 i32.load offset=4 local.set $0 - loop $while-continue|02846 + loop $while-continue|02843 local.get $1 - local.get $3 + local.get $2 i32.lt_s if i32.const 1 @@ -18345,10 +19464,10 @@ i32.shl i32.add f64.load - local.tee $11 - local.get $11 + local.tee $9 + local.get $9 f64.ne - local.get $11 + local.get $9 f64.const nan:0x8000000000000 f64.eq select @@ -18358,7 +19477,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|02846 + br $while-continue|02843 end end i32.const 0 @@ -18374,18 +19493,18 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.const 1 call $~lib/array/Array#splice drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 4 i32.ne @@ -18399,9 +19518,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18415,9 +19534,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -18432,9 +19551,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -18453,27 +19572,27 @@ i32.const 3 i32.const 3920 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/array/Array#splice - 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 3968 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18490,12 +19609,12 @@ i32.const 3 i32.const 4016 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18513,27 +19632,27 @@ i32.const 3 i32.const 4048 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 4096 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18550,12 +19669,12 @@ i32.const 3 i32.const 4128 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18573,27 +19692,27 @@ i32.const 3 i32.const 4176 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 2 i32.const 2147483647 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 3 i32.const 2 i32.const 3 i32.const 4224 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18610,12 +19729,12 @@ i32.const 3 i32.const 4256 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18633,27 +19752,27 @@ i32.const 3 i32.const 4288 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 2 i32.const 2 i32.const 3 i32.const 4336 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18670,12 +19789,12 @@ i32.const 3 i32.const 4368 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18693,27 +19812,27 @@ i32.const 3 i32.const 4400 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 4448 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18730,12 +19849,12 @@ i32.const 3 i32.const 4480 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18753,27 +19872,27 @@ i32.const 3 i32.const 4528 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const -1 i32.const 2147483647 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 4576 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18790,12 +19909,12 @@ i32.const 3 i32.const 4608 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18813,27 +19932,27 @@ i32.const 3 i32.const 4656 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const -2 i32.const 2147483647 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 2 i32.const 2 i32.const 3 i32.const 4704 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18850,12 +19969,12 @@ i32.const 3 i32.const 4736 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18873,27 +19992,27 @@ i32.const 3 i32.const 4768 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 4816 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18910,12 +20029,12 @@ i32.const 3 i32.const 4848 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18933,27 +20052,27 @@ i32.const 3 i32.const 4896 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 4944 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18970,12 +20089,12 @@ i32.const 3 i32.const 4976 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18993,27 +20112,27 @@ i32.const 3 i32.const 5024 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5072 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19030,12 +20149,12 @@ i32.const 3 i32.const 5104 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19053,27 +20172,27 @@ i32.const 3 i32.const 5152 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5200 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19090,12 +20209,12 @@ i32.const 3 i32.const 5232 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19113,27 +20232,27 @@ i32.const 3 i32.const 5280 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5328 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19150,12 +20269,12 @@ i32.const 3 i32.const 5360 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19173,27 +20292,27 @@ i32.const 3 i32.const 5408 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5456 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19210,12 +20329,12 @@ i32.const 3 i32.const 5488 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19233,27 +20352,27 @@ i32.const 3 i32.const 5536 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5584 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19270,12 +20389,12 @@ i32.const 3 i32.const 5616 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19293,15 +20412,15 @@ i32.const 8 i32.const 5664 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#splice - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -19311,7 +20430,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -19322,53 +20441,53 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 5 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=24 - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 2 i32.const 3 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 3 i32.const 4 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 4 i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 local.get $0 + local.get $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#splice - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -19380,7 +20499,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.load @@ -19394,7 +20513,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.load @@ -19408,7 +20527,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -19420,7 +20539,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.load @@ -19434,7 +20553,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.load @@ -19448,7 +20567,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.load @@ -19469,121 +20588,125 @@ i32.const 11 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.load offset=4 i32.store offset=20 - local.get $2 + local.get $0 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $2 + local.get $0 i32.const 1 i32.const 0 call $~lib/array/Array#__uset - local.get $2 + local.get $0 i32.const 2 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__uset local.get $1 - local.get $2 + local.get $0 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 i32.const 0 i32.store i32.const 0 - local.get $2 + local.get $0 i32.load offset=12 - local.tee $8 - local.get $8 + local.tee $7 + local.get $7 i32.const 0 i32.gt_s select - local.set $4 - local.get $1 - i32.const 1 - local.get $8 - local.get $4 + local.set $6 + local.get $7 + local.get $6 i32.sub - local.tee $1 - local.get $1 + local.tee $2 i32.const 1 i32.gt_s - select - local.tee $1 - i32.const 0 + local.set $1 + i32.const 1 + local.get $2 local.get $1 + select + local.tee $2 i32.const 0 i32.gt_s + local.set $1 + local.get $4 + local.get $2 + i32.const 0 + local.get $1 select - local.tee $5 + local.tee $3 i32.const 2 i32.const 11 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $8 i32.store - local.get $7 + local.get $8 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=4 - local.tee $0 - local.get $4 + local.tee $2 + local.get $6 i32.const 2 i32.shl i32.add local.tee $1 - local.get $5 + local.get $3 i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $8 - local.get $4 - local.get $5 + local.get $7 + local.get $3 + local.get $6 i32.add local.tee $4 i32.ne if local.get $1 - local.get $0 + local.get $2 local.get $4 i32.const 2 i32.shl i32.add - local.get $8 + local.get $7 local.get $4 i32.sub i32.const 2 i32.shl call $~lib/memory/memory.copy end - local.get $2 - local.get $8 - local.get $5 + local.get $0 + local.get $7 + local.get $3 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 $3 - local.get $7 + local.get $5 + local.get $8 i32.store offset=24 - local.get $7 + local.get $8 i32.load offset=12 i32.const 1 i32.ne @@ -19596,7 +20719,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.const 0 call $~lib/array/Array#__get local.tee $1 @@ -19623,7 +20746,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -19635,7 +20758,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 call $~lib/array/Array#__get if @@ -19647,12 +20770,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 1 call $~lib/array/Array#__get - local.tee $1 + local.tee $0 i32.store offset=28 - local.get $1 + local.get $0 i32.eqz if i32.const 5824 @@ -19662,7 +20785,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load i32.const 2 i32.ne @@ -19676,58 +20799,58 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.const 1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 i32.const 2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 i32.const 3 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 5888 i32.store offset=8 i32.const 0 local.set $1 local.get $4 i32.load offset=12 - local.set $3 + local.set $2 block $__inlined_func$~lib/array/Array#findIndex - loop $for-loop|037 + loop $for-loop|040 local.get $1 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $0 local.get $0 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -19751,7 +20874,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|037 + br $for-loop|040 end end i32.const -1 @@ -19769,27 +20892,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 5920 i32.store offset=8 i32.const 0 local.set $1 local.get $4 i32.load offset=12 - local.set $3 - block $__inlined_func$~lib/array/Array#findIndex38 - loop $for-loop|039 + local.set $2 + block $__inlined_func$~lib/array/Array#findIndex41 + loop $for-loop|042 local.get $1 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $0 local.get $0 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -19808,12 +20931,12 @@ i32.const 5920 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex38 + br_if $__inlined_func$~lib/array/Array#findIndex41 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|039 + br $for-loop|042 end end i32.const -1 @@ -19833,27 +20956,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 5952 i32.store offset=8 i32.const 0 local.set $1 local.get $4 i32.load offset=12 - local.set $3 - block $__inlined_func$~lib/array/Array#findIndex40 - loop $for-loop|041 + local.set $2 + block $__inlined_func$~lib/array/Array#findIndex43 + loop $for-loop|044 local.get $1 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $0 local.get $0 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -19872,12 +20995,12 @@ i32.const 5952 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex40 + br_if $__inlined_func$~lib/array/Array#findIndex43 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|041 + br $for-loop|044 end end i32.const -1 @@ -19897,27 +21020,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 5984 i32.store offset=8 i32.const 0 local.set $1 local.get $4 i32.load offset=12 - local.set $3 - block $__inlined_func$~lib/array/Array#findIndex42 - loop $for-loop|043 + local.set $2 + block $__inlined_func$~lib/array/Array#findIndex45 + loop $for-loop|046 local.get $1 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $0 local.get $0 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -19936,12 +21059,12 @@ i32.const 5984 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex42 + br_if $__inlined_func$~lib/array/Array#findIndex45 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|043 + br $for-loop|046 end end i32.const -1 @@ -19962,9 +21085,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -19977,27 +21100,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 6016 i32.store offset=8 i32.const 0 local.set $1 local.get $4 i32.load offset=12 - local.set $3 - block $__inlined_func$~lib/array/Array#findIndex44 - loop $for-loop|045 + local.set $2 + block $__inlined_func$~lib/array/Array#findIndex47 + loop $for-loop|048 local.get $1 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $0 local.get $0 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -20016,12 +21139,12 @@ i32.const 6016 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex44 + br_if $__inlined_func$~lib/array/Array#findIndex47 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|045 + br $for-loop|048 end end i32.const -1 @@ -20042,54 +21165,54 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 6048 i32.store offset=8 i32.const 0 local.set $1 local.get $4 i32.load offset=12 - local.set $3 - block $__inlined_func$~lib/array/Array#findIndex46 - loop $for-loop|047 + local.set $2 + block $__inlined_func$~lib/array/Array#findIndex49 + loop $for-loop|050 local.get $1 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $0 local.get $0 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -20108,12 +21231,12 @@ i32.const 6048 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex46 + br_if $__inlined_func$~lib/array/Array#findIndex49 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|047 + br $for-loop|050 end end i32.const -1 @@ -20134,9 +21257,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -20150,17 +21273,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop @@ -20181,7 +21304,7 @@ i32.sub local.set $0 block $__inlined_func$~lib/array/Array#findLastIndex - loop $for-loop|048 + loop $for-loop|051 local.get $0 i32.const 0 i32.ge_s @@ -20205,7 +21328,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|048 + br $for-loop|051 end end i32.const -1 @@ -20230,8 +21353,8 @@ i32.const 1 i32.sub local.set $0 - block $__inlined_func$~lib/array/Array#findLastIndex49 - loop $for-loop|050 + block $__inlined_func$~lib/array/Array#findLastIndex52 + loop $for-loop|053 local.get $0 i32.const 0 i32.ge_s @@ -20250,12 +21373,12 @@ i32.const 6160 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex49 + br_if $__inlined_func$~lib/array/Array#findLastIndex52 local.get $0 i32.const 1 i32.sub local.set $0 - br $for-loop|050 + br $for-loop|053 end end i32.const -1 @@ -20282,8 +21405,8 @@ i32.const 1 i32.sub local.set $0 - block $__inlined_func$~lib/array/Array#findLastIndex51 - loop $for-loop|052 + block $__inlined_func$~lib/array/Array#findLastIndex54 + loop $for-loop|055 local.get $0 i32.const 0 i32.ge_s @@ -20302,12 +21425,12 @@ i32.const 6192 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex51 + br_if $__inlined_func$~lib/array/Array#findLastIndex54 local.get $0 i32.const 1 i32.sub local.set $0 - br $for-loop|052 + br $for-loop|055 end end i32.const -1 @@ -20335,8 +21458,8 @@ i32.const 1 i32.sub local.set $1 - block $__inlined_func$~lib/array/Array#findLastIndex53 - loop $for-loop|054 + block $__inlined_func$~lib/array/Array#findLastIndex56 + loop $for-loop|057 local.get $1 i32.const 0 i32.ge_s @@ -20355,12 +21478,12 @@ i32.const 6224 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex53 + br_if $__inlined_func$~lib/array/Array#findLastIndex56 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|054 + br $for-loop|057 end end i32.const -1 @@ -20380,11 +21503,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6256 i32.store offset=8 block $__inlined_func$~lib/array/Array#every (result i32) @@ -20393,7 +21516,7 @@ local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|055 + loop $for-loop|058 local.get $0 local.get $4 local.get $5 @@ -20429,7 +21552,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|055 + br $for-loop|058 end end i32.const 1 @@ -20444,20 +21567,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6288 i32.store offset=8 - block $__inlined_func$~lib/array/Array#every56 (result i32) + block $__inlined_func$~lib/array/Array#every59 (result i32) i32.const 0 local.set $0 local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|057 + loop $for-loop|060 local.get $0 local.get $4 local.get $5 @@ -20487,13 +21610,13 @@ i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every56 + br_if $__inlined_func$~lib/array/Array#every59 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|057 + br $for-loop|060 end end i32.const 1 @@ -20507,20 +21630,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6320 i32.store offset=8 - block $__inlined_func$~lib/array/Array#every58 (result i32) + block $__inlined_func$~lib/array/Array#every61 (result i32) i32.const 0 local.set $0 local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|059 + loop $for-loop|062 local.get $0 local.get $4 local.get $5 @@ -20550,13 +21673,13 @@ i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every58 + br_if $__inlined_func$~lib/array/Array#every61 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|059 + br $for-loop|062 end end i32.const 1 @@ -20572,9 +21695,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -20587,20 +21710,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6352 i32.store offset=8 - block $__inlined_func$~lib/array/Array#every60 (result i32) + block $__inlined_func$~lib/array/Array#every63 (result i32) i32.const 0 local.set $0 local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|061 + loop $for-loop|064 local.get $0 local.get $4 local.get $5 @@ -20630,13 +21753,13 @@ i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every60 + br_if $__inlined_func$~lib/array/Array#every63 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|061 + br $for-loop|064 end end i32.const 1 @@ -20651,47 +21774,47 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6384 i32.store offset=8 - block $__inlined_func$~lib/array/Array#every62 (result i32) + block $__inlined_func$~lib/array/Array#every65 (result i32) i32.const 0 local.set $0 local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|063 + loop $for-loop|066 local.get $0 local.get $4 local.get $5 @@ -20721,13 +21844,13 @@ i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every62 + br_if $__inlined_func$~lib/array/Array#every65 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|063 + br $for-loop|066 end end i32.const 1 @@ -20743,9 +21866,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -20759,26 +21882,26 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6416 i32.store offset=8 block $__inlined_func$~lib/array/Array#some (result i32) @@ -20787,7 +21910,7 @@ local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|064 + loop $for-loop|067 local.get $0 local.get $4 local.get $5 @@ -20822,7 +21945,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|064 + br $for-loop|067 end end i32.const 0 @@ -20837,20 +21960,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6448 i32.store offset=8 - block $__inlined_func$~lib/array/Array#some65 (result i32) + block $__inlined_func$~lib/array/Array#some68 (result i32) i32.const 0 local.set $0 local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|066 + loop $for-loop|069 local.get $0 local.get $4 local.get $5 @@ -20879,13 +22002,13 @@ i32.const 6448 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some65 + br_if $__inlined_func$~lib/array/Array#some68 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|066 + br $for-loop|069 end end i32.const 0 @@ -20899,20 +22022,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6480 i32.store offset=8 - block $__inlined_func$~lib/array/Array#some67 (result i32) + block $__inlined_func$~lib/array/Array#some70 (result i32) i32.const 0 local.set $0 local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|068 + loop $for-loop|071 local.get $0 local.get $4 local.get $5 @@ -20941,13 +22064,13 @@ i32.const 6480 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some67 + br_if $__inlined_func$~lib/array/Array#some70 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|068 + br $for-loop|071 end end i32.const 0 @@ -20962,9 +22085,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -20977,20 +22100,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6512 i32.store offset=8 - block $__inlined_func$~lib/array/Array#some69 (result i32) + block $__inlined_func$~lib/array/Array#some72 (result i32) i32.const 0 local.set $0 local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|070 + loop $for-loop|073 local.get $0 local.get $4 local.get $5 @@ -21019,13 +22142,13 @@ i32.const 6512 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some69 + br_if $__inlined_func$~lib/array/Array#some72 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|070 + br $for-loop|073 end end i32.const 0 @@ -21041,47 +22164,47 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6544 i32.store offset=8 - block $__inlined_func$~lib/array/Array#some71 (result i32) + block $__inlined_func$~lib/array/Array#some74 (result i32) i32.const 0 local.set $0 local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|072 + loop $for-loop|075 local.get $0 local.get $4 local.get $5 @@ -21110,13 +22233,13 @@ i32.const 6544 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some71 + br_if $__inlined_func$~lib/array/Array#some74 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|072 + br $for-loop|075 end end i32.const 0 @@ -21131,9 +22254,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -21147,43 +22270,43 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 6576 i32.store offset=8 i32.const 0 local.set $0 local.get $4 i32.load offset=12 - local.set $3 - loop $for-loop|073 + local.set $2 + loop $for-loop|076 local.get $0 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -21206,7 +22329,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|073 + br $for-loop|076 end end global.get $std/array/i @@ -21223,26 +22346,26 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 6608 i32.store offset=8 i32.const 0 local.set $0 local.get $4 i32.load offset=12 - local.set $3 - loop $for-loop|075 + local.set $2 + loop $for-loop|078 local.get $0 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -21265,7 +22388,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|075 + br $for-loop|078 end end global.get $std/array/i @@ -21281,9 +22404,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -21298,26 +22421,26 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 6640 i32.store offset=8 i32.const 0 local.set $0 local.get $4 i32.load offset=12 - local.set $3 - loop $for-loop|077 + local.set $2 + loop $for-loop|080 local.get $0 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -21340,7 +22463,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|077 + br $for-loop|080 end end global.get $std/array/i @@ -21356,55 +22479,55 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 6672 i32.store offset=8 i32.const 0 local.set $0 local.get $4 i32.load offset=12 - local.set $3 - loop $for-loop|079 + local.set $2 + loop $for-loop|082 local.get $0 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -21427,7 +22550,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|079 + br $for-loop|082 end end global.get $std/array/i @@ -21443,9 +22566,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -21459,41 +22582,41 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 6704 i32.store offset=8 i32.const 0 local.set $0 local.get $4 i32.load offset=12 - local.set $3 - loop $for-loop|081 + local.set $2 + loop $for-loop|084 local.get $0 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -21516,14 +22639,14 @@ i32.const 1 i32.add local.set $0 - br $for-loop|081 + br $for-loop|084 end end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 100 i32.ne @@ -21537,7 +22660,7 @@ end i32.const 0 local.set $0 - loop $for-loop|082 + loop $for-loop|085 local.get $0 i32.const 100 i32.lt_s @@ -21553,124 +22676,126 @@ i32.const 1 i32.add local.set $0 - br $for-loop|082 + br $for-loop|085 end end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $0 global.get $std/array/arr local.tee $8 i32.store - local.get $5 + local.get $0 i32.const 6736 i32.store offset=8 i32.const 0 - local.set $6 - local.get $5 + local.set $1 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 local.get $8 i32.load offset=12 - local.tee $4 + local.tee $3 i32.const 2 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 $3 - loop $for-loop|04584 - local.get $6 - local.get $4 + local.set $5 + loop $for-loop|045 + local.get $3 local.get $8 i32.load offset=12 - local.tee $1 + local.tee $4 + i32.lt_s + local.set $2 local.get $1 + local.get $3 local.get $4 - i32.gt_s + local.get $2 select i32.lt_s if - local.get $6 + local.get $1 i32.const 2 i32.shl - local.tee $0 + local.tee $4 local.get $8 i32.load offset=4 i32.add i32.load - local.set $1 + local.set $2 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $3 + local.get $4 + local.get $5 i32.add + local.get $2 local.get $1 - local.get $6 local.get $8 i32.const 6736 i32.load call_indirect $0 (type $i32_i32_i32_=>_f32) f32.store - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|04584 + local.set $1 + 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 $5 - local.get $7 + local.get $0 + local.get $6 i32.store offset=20 - local.get $7 + local.get $6 i32.load offset=12 i32.const 4 i32.ne @@ -21682,14 +22807,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 i32.const 0 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get f32.convert_i32_s @@ -21705,14 +22830,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr local.tee $1 + global.get $std/array/arr + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 6768 i32.store offset=8 - local.get $1 + local.get $0 i32.const 6768 call $~lib/array/Array#map global.get $std/array/i @@ -21728,9 +22853,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -21745,14 +22870,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr local.tee $1 + global.get $std/array/arr + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 6800 i32.store offset=8 - local.get $1 + local.get $0 i32.const 6800 call $~lib/array/Array#map global.get $std/array/i @@ -21768,43 +22893,43 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr local.tee $1 + global.get $std/array/arr + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 6832 i32.store offset=8 - local.get $1 + local.get $0 i32.const 6832 call $~lib/array/Array#map global.get $std/array/i @@ -21820,9 +22945,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -21836,35 +22961,35 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr local.tee $1 + global.get $std/array/arr + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 6864 i32.store offset=8 - local.get $0 local.get $1 + local.get $0 i32.const 6864 call $~lib/array/Array#filter - local.tee $1 + local.tee $0 i32.store offset=20 - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -21879,14 +23004,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr local.tee $1 + global.get $std/array/arr + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 6896 i32.store offset=8 - local.get $1 + local.get $0 i32.const 6896 call $~lib/array/Array#filter drop @@ -21903,9 +23028,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -21920,14 +23045,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr local.tee $1 + global.get $std/array/arr + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 6928 i32.store offset=8 - local.get $1 + local.get $0 i32.const 6928 call $~lib/array/Array#filter drop @@ -21944,43 +23069,43 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr local.tee $1 + global.get $std/array/arr + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 6960 i32.store offset=8 - local.get $1 + local.get $0 i32.const 6960 call $~lib/array/Array#filter drop @@ -21997,9 +23122,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -22013,26 +23138,26 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 6992 i32.store offset=8 i32.const 0 @@ -22041,15 +23166,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $3 - loop $for-loop|085 + local.set $2 + loop $for-loop|087 local.get $0 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -22076,7 +23201,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|085 + br $for-loop|087 end end local.get $6 @@ -22093,11 +23218,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 7024 i32.store offset=8 i32.const 4 @@ -22106,15 +23231,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $3 - loop $for-loop|087 + local.set $2 + loop $for-loop|089 local.get $0 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -22141,7 +23266,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|087 + br $for-loop|089 end end local.get $6 @@ -22158,11 +23283,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 7056 i32.store offset=8 i32.const 0 @@ -22171,15 +23296,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $3 - loop $for-loop|089 + local.set $2 + loop $for-loop|091 local.get $0 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -22206,7 +23331,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|089 + br $for-loop|091 end end local.get $6 @@ -22220,11 +23345,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 7088 i32.store offset=8 i32.const 0 @@ -22233,15 +23358,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $3 - loop $for-loop|091 + local.set $2 + loop $for-loop|093 local.get $0 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -22268,7 +23393,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|091 + br $for-loop|093 end end local.get $6 @@ -22281,11 +23406,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 7120 i32.store offset=8 i32.const 0 @@ -22294,15 +23419,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $3 - loop $for-loop|093 + local.set $2 + loop $for-loop|095 local.get $0 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -22329,7 +23454,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|093 + br $for-loop|095 end end local.get $6 @@ -22347,9 +23472,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -22362,11 +23487,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 7152 i32.store offset=8 i32.const 0 @@ -22375,15 +23500,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $3 - loop $for-loop|095 + local.set $2 + loop $for-loop|097 local.get $0 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -22410,7 +23535,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|095 + br $for-loop|097 end end local.get $6 @@ -22428,38 +23553,38 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 7184 i32.store offset=8 i32.const 0 @@ -22468,15 +23593,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $3 - loop $for-loop|097 + local.set $2 + loop $for-loop|099 local.get $0 - local.get $3 + local.get $2 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $3 + local.get $2 i32.gt_s select i32.lt_s @@ -22503,7 +23628,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|097 + br $for-loop|099 end end local.get $6 @@ -22521,9 +23646,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -22537,41 +23662,41 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $2 i32.store - local.get $1 + local.get $0 i32.const 7216 i32.store offset=8 i32.const 0 local.set $6 - local.get $3 + local.get $2 i32.load offset=12 i32.const 1 i32.sub local.set $0 - loop $for-loop|098 + loop $for-loop|0100 local.get $0 i32.const 0 i32.ge_s if - local.get $3 + local.get $2 i32.load offset=4 local.get $0 i32.const 2 @@ -22584,7 +23709,7 @@ local.get $6 local.get $1 local.get $0 - local.get $3 + local.get $2 i32.const 7216 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) @@ -22593,7 +23718,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|098 + br $for-loop|0100 end end local.get $6 @@ -22610,26 +23735,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $2 i32.store - local.get $1 + local.get $0 i32.const 7248 i32.store offset=8 i32.const 4 local.set $6 - local.get $3 + local.get $2 i32.load offset=12 i32.const 1 i32.sub local.set $0 - loop $for-loop|0100 + loop $for-loop|0102 local.get $0 i32.const 0 i32.ge_s if - local.get $3 + local.get $2 i32.load offset=4 local.get $0 i32.const 2 @@ -22642,7 +23767,7 @@ local.get $6 local.get $1 local.get $0 - local.get $3 + local.get $2 i32.const 7248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) @@ -22651,7 +23776,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0100 + br $for-loop|0102 end end local.get $6 @@ -22668,26 +23793,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $2 i32.store - local.get $1 + local.get $0 i32.const 7280 i32.store offset=8 i32.const 0 local.set $6 - local.get $3 + local.get $2 i32.load offset=12 i32.const 1 i32.sub local.set $0 - loop $for-loop|0102 + loop $for-loop|0104 local.get $0 i32.const 0 i32.ge_s if - local.get $3 + local.get $2 i32.load offset=4 local.get $0 i32.const 2 @@ -22700,7 +23825,7 @@ local.get $6 local.get $1 local.get $0 - local.get $3 + local.get $2 i32.const 7280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) @@ -22709,7 +23834,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0102 + br $for-loop|0104 end end local.get $6 @@ -22723,26 +23848,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $2 i32.store - local.get $1 + local.get $0 i32.const 7312 i32.store offset=8 i32.const 0 local.set $6 - local.get $3 + local.get $2 i32.load offset=12 i32.const 1 i32.sub local.set $0 - loop $for-loop|0104 + loop $for-loop|0106 local.get $0 i32.const 0 i32.ge_s if - local.get $3 + local.get $2 i32.load offset=4 local.get $0 i32.const 2 @@ -22755,7 +23880,7 @@ local.get $6 local.get $1 local.get $0 - local.get $3 + local.get $2 i32.const 7312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) @@ -22764,7 +23889,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0104 + br $for-loop|0106 end end local.get $6 @@ -22777,26 +23902,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $2 i32.store - local.get $1 + local.get $0 i32.const 7344 i32.store offset=8 i32.const 0 local.set $6 - local.get $3 + local.get $2 i32.load offset=12 i32.const 1 i32.sub local.set $0 - loop $for-loop|0106 + loop $for-loop|0108 local.get $0 i32.const 0 i32.ge_s if - local.get $3 + local.get $2 i32.load offset=4 local.get $0 i32.const 2 @@ -22809,7 +23934,7 @@ local.get $6 local.get $1 local.get $0 - local.get $3 + local.get $2 i32.const 7344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) @@ -22818,7 +23943,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0106 + br $for-loop|0108 end end local.get $6 @@ -22836,9 +23961,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -22851,26 +23976,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $2 i32.store - local.get $1 + local.get $0 i32.const 7376 i32.store offset=8 i32.const 0 local.set $6 - local.get $3 + local.get $2 i32.load offset=12 i32.const 1 i32.sub local.set $0 - loop $for-loop|0108 + loop $for-loop|0110 local.get $0 i32.const 0 i32.ge_s if - local.get $3 + local.get $2 i32.load offset=4 local.get $0 i32.const 2 @@ -22883,7 +24008,7 @@ local.get $6 local.get $1 local.get $0 - local.get $3 + local.get $2 i32.const 7376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) @@ -22892,7 +24017,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0108 + br $for-loop|0110 end end local.get $6 @@ -22910,53 +24035,53 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $2 i32.store - local.get $1 + local.get $0 i32.const 7408 i32.store offset=8 i32.const 0 local.set $6 - local.get $3 + local.get $2 i32.load offset=12 i32.const 1 i32.sub local.set $0 - loop $for-loop|0110 + loop $for-loop|0112 local.get $0 i32.const 0 i32.ge_s if - local.get $3 + local.get $2 i32.load offset=4 local.get $0 i32.const 2 @@ -22969,7 +24094,7 @@ local.get $6 local.get $1 local.get $0 - local.get $3 + local.get $2 i32.const 7408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) @@ -22978,7 +24103,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0110 + br $for-loop|0112 end end local.get $6 @@ -22996,9 +24121,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -23010,33 +24135,33 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop @@ -23049,182 +24174,182 @@ i32.const 19 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.tee $0 + local.get $1 i32.load offset=4 i32.store offset=24 - local.get $1 + local.get $0 call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $1 + local.get $0 i32.const 100 i32.store - local.get $1 + local.get $0 i32.const 80 i32.store offset=4 - local.get $0 - i32.const 0 local.get $1 + i32.const 0 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 90 i32.store - local.get $1 + local.get $0 i32.const 90 i32.store offset=4 - local.get $0 - i32.const 1 local.get $1 + i32.const 1 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 70 i32.store - local.get $1 + local.get $0 i32.const 95 i32.store offset=4 - local.get $0 - i32.const 2 local.get $1 + i32.const 2 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=28 - local.get $1 + local.get $0 i32.const 100 i32.store - local.get $1 + local.get $0 i32.const 100 i32.store offset=4 - local.get $0 - i32.const 3 local.get $1 + i32.const 3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=32 - local.get $1 + local.get $0 i32.const 80 i32.store - local.get $1 + local.get $0 i32.const 110 i32.store offset=4 - local.get $0 - i32.const 4 local.get $1 + i32.const 4 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=36 - local.get $1 + local.get $0 i32.const 110 i32.store - local.get $1 + local.get $0 i32.const 115 i32.store offset=4 - local.get $0 - i32.const 5 local.get $1 + i32.const 5 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=40 - local.get $1 + local.get $0 i32.const 100 i32.store - local.get $1 + local.get $0 i32.const 120 i32.store offset=4 - local.get $0 - i32.const 6 local.get $1 + i32.const 6 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=44 - local.get $1 + local.get $0 i32.const 70 i32.store - local.get $1 + local.get $0 i32.const 125 i32.store offset=4 - local.get $0 - i32.const 7 local.get $1 + i32.const 7 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=48 - local.get $1 + local.get $0 i32.const 70 i32.store - local.get $1 + local.get $0 i32.const 130 i32.store offset=4 - local.get $0 - i32.const 8 local.get $1 + i32.const 8 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=52 - local.get $1 + local.get $0 i32.const 100 i32.store - local.get $1 + local.get $0 i32.const 135 i32.store offset=4 - local.get $0 - i32.const 9 local.get $1 + i32.const 9 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=56 - local.get $1 + local.get $0 i32.const 75 i32.store - local.get $1 + local.get $0 i32.const 140 i32.store offset=4 - local.get $0 - i32.const 10 local.get $1 + i32.const 10 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=60 - local.get $1 + local.get $0 i32.const 70 i32.store - local.get $1 + local.get $0 i32.const 140 i32.store offset=4 - local.get $0 - i32.const 11 local.get $1 - call $~lib/array/Array#__uset + i32.const 11 local.get $0 + call $~lib/array/Array#__uset + local.get $1 global.set $std/array/inputStabArr global.get $~lib/memory/__stack_pointer i32.const 12 @@ -23232,182 +24357,182 @@ i32.const 19 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.tee $0 + local.get $1 i32.load offset=4 i32.store offset=20 - local.get $1 + local.get $0 call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=64 - local.get $1 + local.get $0 i32.const 70 i32.store - local.get $1 + local.get $0 i32.const 95 i32.store offset=4 - local.get $0 - i32.const 0 local.get $1 + i32.const 0 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=68 - local.get $1 + local.get $0 i32.const 70 i32.store - local.get $1 + local.get $0 i32.const 125 i32.store offset=4 - local.get $0 - i32.const 1 local.get $1 + i32.const 1 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=72 - local.get $1 + local.get $0 i32.const 70 i32.store - local.get $1 + local.get $0 i32.const 130 i32.store offset=4 - local.get $0 - i32.const 2 local.get $1 + i32.const 2 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=76 - local.get $1 + local.get $0 i32.const 70 i32.store - local.get $1 + local.get $0 i32.const 140 i32.store offset=4 - local.get $0 - i32.const 3 local.get $1 + i32.const 3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=80 - local.get $1 + local.get $0 i32.const 75 i32.store - local.get $1 + local.get $0 i32.const 140 i32.store offset=4 - local.get $0 - i32.const 4 local.get $1 + i32.const 4 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=84 - local.get $1 + local.get $0 i32.const 80 i32.store - local.get $1 + local.get $0 i32.const 110 i32.store offset=4 - local.get $0 - i32.const 5 local.get $1 + i32.const 5 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=88 - local.get $1 + local.get $0 i32.const 90 i32.store - local.get $1 + local.get $0 i32.const 90 i32.store offset=4 - local.get $0 - i32.const 6 local.get $1 + i32.const 6 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=92 - local.get $1 + local.get $0 i32.const 100 i32.store - local.get $1 + local.get $0 i32.const 80 i32.store offset=4 - local.get $0 - i32.const 7 local.get $1 + i32.const 7 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=96 - local.get $1 + local.get $0 i32.const 100 i32.store - local.get $1 + local.get $0 i32.const 100 i32.store offset=4 - local.get $0 - i32.const 8 local.get $1 + i32.const 8 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=100 - local.get $1 + local.get $0 i32.const 100 i32.store - local.get $1 + local.get $0 i32.const 120 i32.store offset=4 - local.get $0 - i32.const 9 local.get $1 + i32.const 9 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=104 - local.get $1 + local.get $0 i32.const 100 i32.store - local.get $1 + local.get $0 i32.const 135 i32.store offset=4 - local.get $0 - i32.const 10 local.get $1 + i32.const 10 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=108 - local.get $1 + local.get $0 i32.const 110 i32.store - local.get $1 + local.get $0 i32.const 115 i32.store offset=4 - local.get $0 - i32.const 11 local.get $1 - call $~lib/array/Array#__uset + i32.const 11 local.get $0 + call $~lib/array/Array#__uset + local.get $1 global.set $std/array/outputStabArr global.get $~lib/memory/__stack_pointer i32.const 3 @@ -23415,23 +24540,23 @@ i32.const 9 i32.const 7680 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=24 i32.const 0 global.set $~argumentsLength - local.get $0 + local.get $1 call $~lib/array/Array#sort@varargs i32.const 3 i32.const 2 i32.const 9 i32.const 7744 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -23448,23 +24573,23 @@ i32.const 9 i32.const 7776 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=20 i32.const 0 global.set $~argumentsLength - local.get $0 + local.get $1 call $~lib/array/Array#sort@varargs i32.const 8 i32.const 2 i32.const 9 i32.const 7840 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -23481,12 +24606,12 @@ i32.const 10 i32.const 7904 call $~lib/rt/__newArray - local.tee $5 + local.tee $4 i32.store offset=112 i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23494,29 +24619,29 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of148 - block $0of149 - block $outOfRange50 + block $1of144 + block $0of145 + block $outOfRange46 global.get $~argumentsLength - br_table $0of149 $1of148 $outOfRange50 + br_table $0of145 $1of144 $outOfRange46 end unreachable end i32.const 8000 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8000 i32.store end - local.get $5 + local.get $4 i32.load offset=4 - local.get $5 + local.get $4 i32.load offset=12 - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23527,45 +24652,45 @@ i32.const 10 i32.const 8032 call $~lib/rt/__newArray - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=8 block $__inlined_func$std/array/isArraysEqual (result i32) i32.const 0 - local.set $1 + local.set $7 i32.const 0 - local.get $5 + local.get $4 i32.load offset=12 local.tee $0 - local.get $4 + local.get $2 i32.load offset=12 i32.ne br_if $__inlined_func$std/array/isArraysEqual drop i32.const 1 + local.get $2 local.get $4 - local.get $5 i32.eq br_if $__inlined_func$std/array/isArraysEqual drop loop $for-loop|026 local.get $0 - local.get $1 + local.get $7 i32.gt_s if - local.get $5 - local.get $1 + local.get $4 + local.get $7 call $~lib/array/Array#__get - local.tee $11 - local.get $11 + local.tee $9 + local.get $9 f64.ne if (result i32) - local.get $4 - local.get $1 + local.get $2 + local.get $7 call $~lib/array/Array#__get - local.tee $11 - local.get $11 + local.tee $9 + local.get $9 f64.ne else i32.const 0 @@ -23573,20 +24698,20 @@ i32.eqz if i32.const 0 - local.get $5 - local.get $1 - call $~lib/array/Array#__get local.get $4 - local.get $1 + local.get $7 + call $~lib/array/Array#__get + local.get $2 + local.get $7 call $~lib/array/Array#__get f64.ne br_if $__inlined_func$std/array/isArraysEqual drop end - local.get $1 + local.get $7 i32.const 1 i32.add - local.set $1 + local.set $7 br $for-loop|026 end end @@ -23607,12 +24732,12 @@ i32.const 3 i32.const 8128 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=116 i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23620,7 +24745,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -23633,16 +24758,16 @@ unreachable end i32.const 8176 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8176 i32.store end - local.get $0 + local.get $1 i32.load offset=4 - local.get $0 - i32.load offset=12 local.get $1 + i32.load offset=12 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23653,12 +24778,12 @@ i32.const 3 i32.const 8208 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23676,11 +24801,11 @@ i32.const 7 i32.const 8256 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=120 i32.const 0 global.set $~argumentsLength - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#sort@varargs drop @@ -23689,12 +24814,12 @@ i32.const 7 i32.const 8336 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -23711,7 +24836,7 @@ i32.const 3 i32.const 8384 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=124 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -23719,7 +24844,7 @@ i32.const 3 i32.const 8416 call $~lib/rt/__newArray - local.tee $6 + local.tee $7 i32.store offset=128 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -23727,7 +24852,7 @@ i32.const 3 i32.const 8448 call $~lib/rt/__newArray - local.tee $2 + local.tee $8 i32.store offset=132 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23735,7 +24860,7 @@ i32.const 3 i32.const 8480 call $~lib/rt/__newArray - local.tee $8 + local.tee $6 i32.store offset=136 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23748,7 +24873,7 @@ global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $7 + local.tee $3 i32.store offset=144 global.get $~lib/memory/__stack_pointer i32.const 128 @@ -23763,28 +24888,28 @@ global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $3 + local.tee $2 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $1 + local.tee $0 i32.store offset=160 - local.get $0 + local.get $1 call $std/array/assertSortedDefault - local.get $6 + local.get $7 call $std/array/assertSortedDefault i32.const 1 i32.const 2 i32.const 3 i32.const 8608 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 $6 - local.get $0 + local.get $7 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23796,19 +24921,19 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $8 call $std/array/assertSortedDefault i32.const 2 i32.const 2 i32.const 3 i32.const 8640 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $2 - local.get $0 + local.get $8 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23820,9 +24945,9 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $6 call $std/array/assertSortedDefault - local.get $8 + local.get $6 local.get $10 i32.const 0 call $std/array/isArraysEqual @@ -23835,9 +24960,9 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $3 call $std/array/assertSortedDefault - local.get $7 + local.get $3 local.get $10 i32.const 4 call $std/array/isArraysEqual @@ -23880,9 +25005,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 call $std/array/assertSortedDefault - local.get $3 + local.get $2 local.get $10 i32.const 4 call $std/array/isArraysEqual @@ -23895,275 +25020,80 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 call $std/array/assertSortedDefault + call $std/array/assertStableSortedForComplexObjects + global.get $~lib/memory/__stack_pointer + i32.const 64 + call $std/array/createRandomOrderedArray + local.tee $1 + i32.store offset=160 + global.get $~lib/memory/__stack_pointer + i32.const 257 + call $std/array/createRandomOrderedArray + local.tee $0 + i32.store offset=156 + global.get $~lib/memory/__stack_pointer + i32.const 8704 + i32.store offset=8 + local.get $1 + i32.const 8704 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer + i32.const 8736 + i32.store offset=8 + local.get $1 + i32.const 8736 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer + i32.const 8768 + i32.store offset=8 + local.get $0 + i32.const 8768 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer + i32.const 8800 + i32.store offset=8 + local.get $0 + i32.const 8800 + call $std/array/assertSorted i32.const 0 - local.set $6 - i32.const 0 - local.set $8 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 24 + local.tee $2 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $4 i64.const 0 i64.store - local.get $7 - i64.const 0 - i64.store offset=8 - local.get $7 - i64.const 0 - i64.store offset=16 - local.get $7 - global.get $std/array/inputStabArr - local.tee $5 - i32.store offset=8 - local.get $7 - i32.const 4 + local.get $4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 16 + i32.const 25 + call $~lib/rt/itcms/__new + local.tee $5 i32.store - i32.const 0 local.get $5 - i32.load offset=12 - local.tee $3 - local.get $3 i32.const 0 - i32.gt_s - select - local.set $0 - local.get $1 - local.get $3 - local.get $0 - i32.sub - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $1 - i32.const 2 - i32.const 19 - i32.const 0 - call $~lib/rt/__newArray - local.tee $2 - i32.store - local.get $2 - i32.load offset=4 - local.set $4 - local.get $5 - i32.load offset=4 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.shl - local.set $0 - loop $while-continue|00 - local.get $0 - local.get $6 - i32.gt_u - if - local.get $4 - local.get $6 - i32.add - local.get $3 - local.get $6 - i32.add - i32.load - local.tee $1 - i32.store - local.get $2 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $6 - i32.const 4 - i32.add - local.set $6 - 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.tee $1 - local.get $2 - i32.store - local.get $1 - i32.const 8672 - i32.store offset=4 - local.get $2 - i32.load offset=4 - local.get $2 - i32.load offset=12 - i32.const 8672 - call $~lib/util/sort/SORT - local.get $7 - local.get $2 - i32.store offset=12 - i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $std/array/inputStabArr - local.tee $1 - i32.store - local.get $1 - i32.load offset=12 - local.set $3 - loop $for-loop|01 - local.get $3 - local.get $8 - i32.gt_s - if - block $for-break0 - global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $8 - call $~lib/array/Array#__get - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/outputStabArr - local.tee $1 - i32.store - local.get $0 - local.get $1 - local.get $8 - call $~lib/array/Array#__get - local.tee $1 - i32.store offset=20 - local.get $4 - i32.load - local.get $1 - i32.load - i32.ne - if (result i32) - i32.const 1 - else - local.get $4 - i32.load offset=4 - local.get $1 - i32.load offset=4 - i32.ne - end - if - i32.const 0 - local.set $6 - br $for-break0 - end - local.get $8 - i32.const 1 - i32.add - local.set $8 - br $for-loop|01 - end - end - end - local.get $6 - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1012 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 64 - call $std/array/createRandomOrderedArray - local.tee $0 - i32.store offset=160 - global.get $~lib/memory/__stack_pointer - i32.const 257 - call $std/array/createRandomOrderedArray - local.tee $1 - i32.store offset=156 - global.get $~lib/memory/__stack_pointer - i32.const 8704 - i32.store offset=8 - local.get $0 - i32.const 8704 - call $std/array/assertSorted - global.get $~lib/memory/__stack_pointer - i32.const 8736 - i32.store offset=8 - local.get $0 - i32.const 8736 - call $std/array/assertSorted - global.get $~lib/memory/__stack_pointer - i32.const 8768 - i32.store offset=8 - local.get $1 - i32.const 8768 - call $std/array/assertSorted - global.get $~lib/memory/__stack_pointer - i32.const 8800 - i32.store offset=8 - local.get $1 - i32.const 8800 - call $std/array/assertSorted - i32.const 0 - local.set $0 - 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 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 16 - i32.const 25 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - local.get $5 - i32.const 0 - i32.store - local.get $5 + i32.store + local.get $5 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link @@ -24180,21 +25110,21 @@ i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 32 call $~lib/memory/memory.fill local.get $5 - local.get $1 + local.get $0 i32.store local.get $5 - local.get $1 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link local.get $5 - local.get $1 + local.get $0 i32.store offset=4 local.get $5 i32.const 32 @@ -24210,29 +25140,29 @@ local.get $5 i32.store loop $for-loop|0105 - local.get $0 + local.get $1 i32.const 2 i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/array/Array#constructor - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 - local.get $0 + local.get $1 i32.sub call $~lib/array/Array#__set local.get $5 - local.get $0 local.get $1 - call $~lib/array/Array<~lib/array/Array>#__set local.get $0 + call $~lib/array/Array<~lib/array/Array>#__set + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0105 end end @@ -24240,7 +25170,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $5 i32.store offset=156 global.get $~lib/memory/__stack_pointer @@ -24250,89 +25180,89 @@ i32.const 8832 call $std/array/assertSorted<~lib/array/Array> i32.const 0 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 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 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 16 i32.const 28 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $0 i32.store - local.get $5 + local.get $0 i32.const 0 i32.store - local.get $5 + local.get $0 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link - local.get $5 + local.get $0 i32.const 0 i32.store offset=4 - local.get $5 + local.get $0 i32.const 0 i32.store offset=8 - local.get $5 + local.get $0 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 $1 + local.tee $4 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.const 2048 call $~lib/memory/memory.fill - local.get $5 - local.get $1 + local.get $0 + local.get $4 i32.store - local.get $5 - local.get $1 + local.get $0 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link - local.get $5 - local.get $1 + local.get $0 + local.get $4 i32.store offset=4 - local.get $5 + local.get $0 i32.const 2048 i32.store offset=8 - local.get $5 + local.get $0 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 $3 - local.get $5 + local.get $1 + local.get $0 i32.store - loop $for-loop|056 - local.get $4 + loop $for-loop|047 + local.get $5 i32.const 512 i32.lt_s if @@ -24343,7 +25273,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -24356,7 +25286,7 @@ i32.store local.get $1 i32.const 511 - local.get $4 + local.get $5 i32.sub i32.store global.get $~lib/memory/__stack_pointer @@ -24366,28 +25296,28 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $0 local.get $5 - local.get $4 local.get $1 call $~lib/array/Array<~lib/array/Array>#__set - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 - br $for-loop|056 + local.set $5 + br $for-loop|047 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 local.get $0 - local.get $5 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 8864 i32.store offset=8 - local.get $5 + local.get $0 i32.const 8864 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -24396,7 +25326,7 @@ i32.const 30 i32.const 9056 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 7 @@ -24404,12 +25334,12 @@ i32.const 30 i32.const 9104 call $~lib/rt/__newArray - local.tee $5 + local.tee $3 i32.store offset=152 i32.const 1 global.set $~argumentsLength i32.const 0 - local.set $10 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24417,22 +25347,22 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of158 - block $0of159 - block $outOfRange60 + block $1of149 + block $0of150 + block $outOfRange51 global.get $~argumentsLength i32.const 1 i32.sub - br_table $0of159 $1of158 $outOfRange60 + br_table $0of150 $1of149 $outOfRange51 end unreachable end i32.const 9152 - local.set $10 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 9152 i32.store @@ -24444,43 +25374,43 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 + local.get $0 i32.load offset=12 - local.get $10 + local.get $5 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.tee $1 + local.get $0 i32.store block $__inlined_func$std/array/isSorted<~lib/string/String|null> (result i32) - local.get $0 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store i32.const 1 local.set $6 - local.get $1 + local.get $0 i32.load offset=12 - local.set $0 - loop $for-loop|062 - local.get $0 + local.set $1 + loop $for-loop|052 + local.get $1 local.get $6 i32.gt_s if - local.get $1 + local.get $0 local.get $6 i32.const 1 i32.sub @@ -24489,18 +25419,18 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - local.get $1 + local.get $0 local.get $6 call $~lib/array/Array#__get - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 i32.const 2 global.set $~argumentsLength local.get $4 - local.get $3 - local.get $10 + local.get $2 + local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 @@ -24517,7 +25447,7 @@ i32.const 1 i32.add local.set $6 - br $for-loop|062 + br $for-loop|052 end end global.get $~lib/memory/__stack_pointer @@ -24545,7 +25475,7 @@ global.set $~lib/memory/__stack_pointer block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> (result i32) i32.const 0 - local.set $2 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -24553,68 +25483,74 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $folding-inner163 - block $folding-inner064 - local.get $1 - i32.load offset=12 - local.tee $0 - local.get $5 - i32.load offset=12 - i32.ne - br_if $folding-inner064 + local.get $0 + i32.load offset=12 + local.tee $2 + local.set $1 + block $folding-inner053 + local.get $2 + local.get $3 + i32.load offset=12 + i32.ne + br_if $folding-inner053 + local.get $0 + local.get $3 + 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|04754 local.get $1 - local.get $5 - i32.eq - br_if $folding-inner163 - loop $for-loop|065 + local.get $7 + i32.gt_s + if local.get $0 + local.get $7 + call $~lib/array/Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $3 + local.get $7 + call $~lib/array/Array#__get + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $2 - i32.gt_s - if - local.get $1 - local.get $2 - call $~lib/array/Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $5 - local.get $2 - call $~lib/array/Array#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $4 - local.get $3 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner064 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|065 - end + i32.store offset=4 + local.get $4 + local.get $2 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner053 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|04754 end - br $folding-inner163 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 + i32.const 1 br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1 + i32.const 0 end i32.eqz if @@ -24628,14 +25564,14 @@ i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -24646,7 +25582,7 @@ call $~lib/array/Array<~lib/string/String>#constructor local.tee $2 i32.store - loop $for-loop|0106115 + loop $for-loop|0106121 local.get $0 i32.const 400 i32.lt_s @@ -24655,9 +25591,9 @@ f64.const 32 f64.mul i32.trunc_f64_s - local.set $7 + local.set $3 i32.const 0 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -24665,23 +25601,23 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 + local.get $4 i32.const 0 i32.store offset=8 i32.const 9024 local.set $1 - local.get $3 + local.get $4 i32.const 9024 i32.store - loop $for-loop|067 - local.get $6 + loop $for-loop|056 + local.get $3 local.get $7 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.tee $5 @@ -24689,7 +25625,7 @@ i32.store offset=4 call $~lib/math/NativeMath.random global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 7488 i32.store offset=8 i32.const 7484 @@ -24700,20 +25636,20 @@ f64.mul f64.floor i32.trunc_f64_s - local.set $4 - local.get $3 + local.set $8 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store block $__inlined_func$~lib/string/String#charAt - local.get $4 + local.get $8 i32.const 7484 i32.load i32.const 1 @@ -24725,17 +25661,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9024 - local.set $3 + local.set $4 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 $3 + local.tee $4 i32.store - local.get $3 local.get $4 + local.get $8 i32.const 1 i32.shl i32.const 7488 @@ -24748,19 +25684,19 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 local.get $5 local.get $1 - local.get $3 + local.get $4 call $~lib/string/String.__concat local.tee $1 i32.store - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 - br $for-loop|067 + local.set $7 + br $for-loop|056 end end global.get $~lib/memory/__stack_pointer @@ -24778,20 +25714,21 @@ i32.const 1 i32.add local.set $0 - br $for-loop|0106115 + br $for-loop|0106121 end end 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 $2 + local.tee $0 i32.store offset=156 i32.const 1 global.set $~argumentsLength i32.const 0 - local.set $6 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24799,7 +25736,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -24814,13 +25751,13 @@ unreachable end i32.const 9184 - local.set $6 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 9184 i32.store end - local.get $2 - local.get $6 + local.get $0 + local.get $1 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24831,40 +25768,40 @@ i32.const 34 i32.const 9216 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $1 + local.tee $2 + local.get $0 i32.store offset=164 - local.get $3 + local.get $2 i32.const 9312 i32.store offset=168 - local.get $1 + i32.const 0 + local.set $7 + local.get $0 i32.load offset=4 - local.set $8 - local.get $1 + local.set $6 + local.get $0 i32.load offset=12 - local.set $1 - i32.const 0 local.set $0 i32.const 0 - local.set $6 - local.get $3 + 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 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinBooleanArray - local.get $1 + local.get $0 i32.const 1 i32.sub - local.tee $2 + local.tee $8 i32.const 0 i32.lt_s if @@ -24876,25 +25813,25 @@ local.set $1 br $__inlined_func$~lib/util/string/joinBooleanArray end - block $folding-inner069 - local.get $2 + block $folding-inner057 + local.get $8 i32.eqz if i32.const 9248 i32.const 9280 - local.get $8 + local.get $6 i32.load8_u select local.set $1 - br $folding-inner069 + br $folding-inner057 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $8 i32.const 9308 i32.load i32.const 1 i32.shr_u - local.tee $7 + local.tee $3 i32.const 5 i32.add i32.mul @@ -24905,102 +25842,104 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store loop $for-loop|1 - local.get $2 - local.get $6 - i32.gt_s + local.get $7 + local.get $8 + i32.lt_s if local.get $6 - local.get $8 + local.get $7 i32.add i32.load8_u - local.tee $3 + local.tee $2 i32.eqz i32.const 4 i32.add local.set $5 - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.const 9248 i32.const 9280 - local.get $3 + local.get $2 select local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 + local.get $1 local.get $5 i32.add - local.set $0 - local.get $7 + local.set $1 + local.get $3 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.const 9312 - local.get $7 + local.get $3 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 - local.get $7 + local.get $1 + local.get $3 i32.add - local.set $0 + local.set $1 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|1 end end - local.get $2 + local.get $6 local.get $8 i32.add i32.load8_u - local.tee $3 + local.tee $2 i32.eqz i32.const 4 i32.add local.set $5 - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.const 9248 i32.const 9280 - local.get $3 + local.get $2 select local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $4 - local.get $0 + local.get $1 local.get $5 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $1 - br $folding-inner069 + br $folding-inner057 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 + local.set $1 br $__inlined_func$~lib/util/string/joinBooleanArray end global.get $~lib/memory/__stack_pointer @@ -25032,26 +25971,26 @@ i32.const 3 i32.const 9392 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 9024 i32.store offset=168 - local.get $0 + local.get $1 i32.const 9024 call $~lib/array/Array#join - local.set $0 + local.set $1 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 11200 i32.store offset=8 - local.get $0 + local.get $1 i32.const 11200 call $~lib/string/String.__eq i32.eqz @@ -25068,26 +26007,26 @@ i32.const 7 i32.const 11232 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 11264 i32.store offset=168 - local.get $0 + local.get $1 i32.const 11264 call $~lib/array/Array#join - local.set $0 + local.set $1 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 11200 i32.store offset=8 - local.get $0 + local.get $1 i32.const 11200 call $~lib/string/String.__eq i32.eqz @@ -25104,26 +26043,26 @@ i32.const 3 i32.const 11296 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 11328 i32.store offset=168 - local.get $0 + local.get $1 i32.const 11328 call $~lib/array/Array#join - local.set $0 + local.set $1 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 11360 i32.store offset=8 - local.get $0 + local.get $1 i32.const 11360 call $~lib/string/String.__eq i32.eqz @@ -25140,28 +26079,25 @@ i32.const 10 i32.const 11440 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 11520 i32.store offset=168 - local.get $0 - i32.load offset=4 - local.get $0 - i32.load offset=12 - call $~lib/util/string/joinFloatArray - local.set $0 + local.get $1 + call $~lib/array/Array#join + local.set $1 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 12688 i32.store offset=8 - local.get $0 + local.get $1 i32.const 12688 call $~lib/string/String.__eq i32.eqz @@ -25178,26 +26114,26 @@ i32.const 30 i32.const 12832 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 9024 i32.store offset=168 - local.get $0 + local.get $1 i32.const 9024 call $~lib/array/Array<~lib/string/String|null>#join - local.set $0 + local.set $1 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 12800 i32.store offset=8 - local.get $0 + local.get $1 i32.const 12800 call $~lib/string/String.__eq i32.eqz @@ -25210,49 +26146,49 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 3 i32.const 2 i32.const 11 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=152 - local.get $0 + local.get $1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 0 call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 2 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 local.get $0 + local.get $1 i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 9312 i32.store offset=168 - local.get $0 + local.get $1 call $~lib/array/Array#join - local.set $0 + local.set $1 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 12928 i32.store offset=8 - local.get $0 + local.get $1 i32.const 12928 call $~lib/string/String.__eq i32.eqz @@ -25265,45 +26201,45 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 2 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=160 - local.get $0 + local.get $1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 local.get $0 + local.get $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 9312 i32.store offset=168 - local.get $0 + local.get $1 call $~lib/array/Array#join - local.set $0 + local.set $1 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 13024 i32.store offset=8 - local.get $0 + local.get $1 i32.const 13024 call $~lib/string/String.__eq i32.eqz @@ -25321,7 +26257,7 @@ i32.const 3 i32.const 13120 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -25337,7 +26273,7 @@ i32.const 3 i32.const 13184 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=148 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25345,16 +26281,16 @@ i32.const 3 i32.const 13216 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=144 - local.get $1 + local.get $0 call $~lib/array/Array#toString local.set $5 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 local.get $5 i32.store - local.get $1 + local.get $0 i32.const 9024 i32.store offset=8 local.get $5 @@ -25373,851 +26309,119 @@ call $~lib/array/Array#toString local.set $4 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $4 - i32.store - local.get $1 - i32.const 12800 - i32.store offset=8 + local.tee $0 local.get $4 - i32.const 12800 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1150 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - call $~lib/array/Array#toString - local.set $3 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $3 - i32.store - local.get $1 - i32.const 13264 - i32.store offset=8 - local.get $3 - i32.const 13264 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1151 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/array/Array#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 13296 - i32.store offset=8 - local.get $0 - i32.const 13296 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1152 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 0 - i32.const 35 - i32.const 13344 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=164 - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - i32.const 9312 - i32.store - local.get $0 - i32.load offset=4 - local.set $5 - local.get $0 - i32.load offset=12 - local.set $1 - i32.const 0 - local.set $0 - i32.const 0 - local.set $6 - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 - 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 9024 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - block $folding-inner0118 - local.get $7 - i32.eqz - if - local.get $5 - i32.load8_s - call $~lib/util/number/itoa32 - local.set $1 - br $folding-inner0118 - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 9308 - 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 $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|0119 - local.get $6 - local.get $7 - i32.lt_s - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $6 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $4 - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.const 9312 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $4 - i32.add - local.set $0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0119 - end - end - local.get $3 - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $5 - 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-inner0118 - 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.const 13376 - i32.store offset=8 - local.get $1 - i32.const 13376 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1154 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 1 - i32.const 36 - i32.const 13408 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=164 - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - i32.const 9312 - i32.store - local.get $0 - i32.load offset=4 - local.set $5 - local.get $0 - i32.load offset=12 - local.set $1 - i32.const 0 - local.set $0 - i32.const 0 - local.set $6 - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 - 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 9024 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - block $folding-inner0121 - local.get $7 - i32.eqz - if - local.get $5 - i32.load16_u - call $~lib/util/number/utoa32 - local.set $1 - br $folding-inner0121 - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 9308 - 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 $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|0122 - local.get $6 - local.get $7 - i32.lt_s - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $4 - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.const 9312 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $4 - i32.add - local.set $0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0122 - end - end - local.get $3 - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $7 - i32.const 1 - i32.shl - 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-inner0121 - 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.const 13440 - i32.store offset=8 - local.get $1 - i32.const 13440 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1155 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 3 - i32.const 37 - i32.const 13488 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=164 - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - i32.const 9312 - i32.store - local.get $0 - i32.load offset=4 - local.set $5 - local.get $0 - i32.load offset=12 - local.set $1 - i32.const 0 - local.set $0 - i32.const 0 - local.set $6 - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 - 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 9024 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - block $folding-inner0124 - local.get $7 - i32.eqz - if - block $__inlined_func$~lib/util/number/utoa64 (result i32) - local.get $5 - i64.load - local.set $9 - 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 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $9 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9616 - br $__inlined_func$~lib/util/number/utoa64 - end - local.get $9 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.wrap_i64 - local.tee $3 - 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.tee $1 - 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 $1 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $9 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $9 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $9 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $9 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $9 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $9 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $9 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $9 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $9 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $9 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $9 - local.get $1 - call $~lib/util/number/utoa64_dec_lut - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - end - local.set $1 - br $folding-inner0124 - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 9308 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 20 - i32.add - i32.mul - i32.const 20 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|0125 - local.get $6 - local.get $7 - i32.lt_s - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $4 - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.const 9312 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $4 - i32.add - local.set $0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0125 - end - end - local.get $3 - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $7 - i32.const 3 - i32.shl - 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-inner0124 - 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 + i32.store + local.get $0 + i32.const 12800 + i32.store offset=8 + local.get $4 + i32.const 12800 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1150 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + call $~lib/array/Array#toString + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.tee $0 + local.get $2 + i32.store + local.get $0 + i32.const 13264 + i32.store offset=8 + local.get $2 + i32.const 13264 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1151 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/array/Array#toString + local.set $1 global.get $~lib/memory/__stack_pointer local.tee $0 local.get $1 i32.store local.get $0 - i32.const 13536 + i32.const 13296 i32.store offset=8 local.get $1 - i32.const 13536 + i32.const 13296 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1156 + i32.const 1152 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4 i32.const 3 - i32.const 38 - i32.const 13616 + i32.const 0 + i32.const 35 + i32.const 13344 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 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 9312 i32.store - local.get $0 + local.get $1 i32.load offset=4 local.set $5 - local.get $0 + local.get $1 i32.load offset=12 local.set $1 i32.const 0 local.set $0 i32.const 0 local.set $6 - 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 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray + block $__inlined_func$~lib/util/string/joinIntegerArray local.get $1 i32.const 1 i32.sub - local.tee $7 + local.tee $3 i32.const 0 i32.lt_s if @@ -26227,218 +26431,230 @@ global.set $~lib/memory/__stack_pointer i32.const 9024 local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray + br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0127 - local.get $7 + block $folding-inner00 + local.get $3 i32.eqz if local.get $5 - i64.load - i64.extend32_s - local.set $9 - 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 15340 - 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 $9 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9616 - local.set $1 - br $__inlined_func$~lib/util/number/itoa64 - end - i64.const 0 - local.get $9 - i64.sub - local.get $9 - local.get $9 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.tee $4 - select - local.tee $9 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.wrap_i64 - local.tee $3 - 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 $4 - i32.add - 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 $3 - local.get $0 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $9 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $9 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $9 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $9 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $9 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $9 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $9 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $9 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $9 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $9 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.get $4 - i32.add - local.tee $0 + i32.load8_s + call $~lib/util/number/itoa32 + local.set $1 + br $folding-inner00 + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 9308 + 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 $1 + i32.store + loop $for-loop|01 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $4 + if + local.get $1 + local.get $0 i32.const 1 i32.shl + i32.add + i32.const 9312 + local.get $4 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $9 + i32.shl + call $~lib/memory/memory.copy local.get $0 - call $~lib/util/number/utoa64_dec_lut - end - local.get $4 - if - local.get $1 - i32.const 45 - i32.store16 + local.get $4 + i32.add + local.set $0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $6 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $6 + br $for-loop|01 end - br $folding-inner0127 + end + local.get $2 + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $5 + 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-inner00 end global.get $~lib/memory/__stack_pointer - local.get $7 + 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.const 13376 + i32.store offset=8 + local.get $1 + i32.const 13376 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1154 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 1 + i32.const 36 + i32.const 13408 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + 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 15340 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + i32.const 9312 + i32.store + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=12 + local.set $1 + i32.const 0 + local.set $0 + i32.const 0 + local.set $6 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 + i32.const 1 + i32.sub + local.tee $3 + 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 9024 + local.set $1 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + block $folding-inner02 + local.get $3 + i32.eqz + if + local.get $5 + i32.load16_u + call $~lib/util/number/utoa32 + local.set $1 + br $folding-inner02 + end + global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 9308 i32.load i32.const 1 i32.shr_u local.tee $4 - i32.const 21 + i32.const 10 i32.add i32.mul - i32.const 21 + 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 $1 i32.store - loop $for-loop|0128 + loop $for-loop|04127 + local.get $3 local.get $6 - local.get $7 - i32.lt_s + i32.gt_s if local.get $1 local.get $0 @@ -26447,11 +26663,11 @@ i32.add local.get $5 local.get $6 - i32.const 3 + i32.const 1 i32.shl i32.add - i64.load - call $~lib/util/number/itoa_buffered + i32.load16_u + call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 @@ -26476,22 +26692,22 @@ i32.const 1 i32.add local.set $6 - br $for-loop|0128 + br $for-loop|04127 end end - local.get $3 + local.get $2 local.get $1 local.get $0 i32.const 1 i32.shl i32.add local.get $5 - local.get $7 - i32.const 3 + local.get $3 + i32.const 1 i32.shl i32.add - i64.load - call $~lib/util/number/itoa_buffered + i32.load16_u + call $~lib/util/number/itoa_buffered local.get $0 i32.add local.tee $0 @@ -26501,13 +26717,13 @@ local.get $0 call $~lib/string/String#substring local.set $1 - br $folding-inner0127 + br $folding-inner02 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 + br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26523,6 +26739,108 @@ local.get $1 i32.store local.get $0 + i32.const 13440 + i32.store offset=8 + local.get $1 + i32.const 13440 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1155 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 3 + i32.const 37 + i32.const 13488 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + 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 15340 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9312 + i32.store + local.get $1 + call $~lib/array/Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $1 + i32.store + local.get $0 + i32.const 13536 + i32.store offset=8 + local.get $1 + i32.const 13536 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1156 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 3 + i32.const 38 + i32.const 13616 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + 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 15340 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9312 + i32.store + local.get $1 + call $~lib/array/Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $1 + i32.store + local.get $0 i32.const 13680 i32.store offset=8 local.get $1 @@ -26543,19 +26861,19 @@ i32.const 30 i32.const 13792 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=140 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/string/String|null>#toString - local.set $0 + local.set $1 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 13840 i32.store offset=8 - local.get $0 + local.get $1 i32.const 13840 call $~lib/string/String.__eq i32.eqz @@ -26572,21 +26890,21 @@ i32.const 30 i32.const 13952 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=164 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/string/String|null>#toString - local.set $0 + local.set $1 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 14000 i32.store offset=8 - local.get $0 + local.get $1 i32.const 14000 call $~lib/string/String.__eq i32.eqz @@ -26599,19 +26917,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 2 i32.const 2 i32.const 25 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=136 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=160 - local.get $0 + local.get $1 i32.const 0 i32.const 2 i32.const 2 @@ -26619,7 +26937,7 @@ i32.const 14032 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 2 i32.const 2 @@ -26627,8 +26945,8 @@ i32.const 14064 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 local.get $0 + local.get $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26637,39 +26955,39 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 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 9312 i32.store - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $0 + local.set $3 + local.get $1 i32.load offset=12 - local.set $0 + local.set $1 i32.const 0 - local.set $10 - local.get $1 + local.set $6 + local.get $0 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $5 @@ -26681,25 +26999,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9024 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end local.get $5 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if (result i32) - local.get $1 + local.get $0 call $~lib/array/Array#toString else i32.const 9024 end - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -26707,7 +27025,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end i32.const 9024 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9024 i32.store offset=4 @@ -26715,15 +27033,15 @@ i32.load i32.const 1 i32.shr_u - local.set $3 - loop $for-loop|074 + local.set $2 + loop $for-loop|06132 local.get $5 - local.get $10 + local.get $6 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $10 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -26739,50 +27057,50 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $1 + local.get $0 local.get $4 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end - local.get $3 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 9312 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end - local.get $10 + local.get $6 i32.const 1 i32.add - local.set $10 - br $for-loop|074 + local.set $6 + br $for-loop|06132 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 local.get $5 i32.const 2 i32.shl i32.add i32.load - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 call $~lib/array/Array#toString - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=8 - local.get $1 - local.get $3 + local.get $0 + local.get $2 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -26795,13 +27113,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 14096 i32.store offset=8 - local.get $1 + local.get $0 i32.const 14096 call $~lib/string/String.__eq i32.eqz @@ -26814,19 +27132,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 2 i32.const 2 i32.const 39 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=136 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=132 - local.get $0 + local.get $1 i32.const 0 i32.const 2 i32.const 0 @@ -26834,7 +27152,7 @@ i32.const 14144 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 2 i32.const 0 @@ -26842,8 +27160,8 @@ i32.const 14176 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 local.get $0 + local.get $1 i32.store offset=132 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26852,39 +27170,39 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 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 9312 i32.store - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $0 + local.set $3 + local.get $1 i32.load offset=12 - local.set $0 + local.set $1 i32.const 0 - local.set $10 - local.get $1 + local.set $6 + local.get $0 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $5 @@ -26896,25 +27214,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9024 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end local.get $5 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if (result i32) - local.get $1 + local.get $0 call $~lib/array/Array#toString else i32.const 9024 end - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -26922,7 +27240,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end i32.const 9024 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9024 i32.store offset=4 @@ -26930,15 +27248,15 @@ i32.load i32.const 1 i32.shr_u - local.set $3 - loop $for-loop|076 + local.set $2 + loop $for-loop|08135 local.get $5 - local.get $10 + local.get $6 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $10 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -26954,50 +27272,50 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $1 + local.get $0 local.get $4 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end - local.get $3 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 9312 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end - local.get $10 + local.get $6 i32.const 1 i32.add - local.set $10 - br $for-loop|076 + local.set $6 + br $for-loop|08135 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 local.get $5 i32.const 2 i32.shl i32.add i32.load - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 call $~lib/array/Array#toString - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=8 - local.get $1 - local.get $3 + local.get $0 + local.get $2 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -27010,13 +27328,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 14096 i32.store offset=8 - local.get $1 + local.get $0 i32.const 14096 call $~lib/string/String.__eq i32.eqz @@ -27029,32 +27347,32 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 1 i32.const 2 i32.const 41 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=136 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $3 + local.tee $0 + local.get $2 i32.load offset=4 i32.store offset=128 - local.get $1 + local.get $0 i32.const 1 i32.const 2 i32.const 40 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=124 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=120 - local.get $1 + local.get $0 i32.const 0 i32.const 1 i32.const 2 @@ -27062,12 +27380,12 @@ i32.const 14208 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $3 + local.get $2 i32.const 0 - local.get $1 - call $~lib/array/Array#__uset local.get $0 - local.get $3 + call $~lib/array/Array#__uset + local.get $1 + local.get $2 i32.store offset=128 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27076,39 +27394,39 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 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 9312 i32.store - local.get $3 + local.get $2 i32.load offset=4 - local.set $7 - local.get $3 + local.set $3 + local.get $2 i32.load offset=12 - local.set $0 + local.set $1 i32.const 0 - local.set $10 - local.get $1 + local.set $6 + local.get $0 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $5 @@ -27120,25 +27438,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9024 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end local.get $5 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if (result i32) - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#toString else i32.const 9024 end - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -27146,7 +27464,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end i32.const 9024 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9024 i32.store offset=4 @@ -27154,15 +27472,15 @@ i32.load i32.const 1 i32.shr_u - local.set $3 - loop $for-loop|078 + local.set $2 + loop $for-loop|010138 local.get $5 - local.get $10 + local.get $6 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $10 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -27178,50 +27496,50 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $1 + local.get $0 local.get $4 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end - local.get $3 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 9312 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end - local.get $10 + local.get $6 i32.const 1 i32.add - local.set $10 - br $for-loop|078 + local.set $6 + br $for-loop|010138 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 local.get $5 i32.const 2 i32.shl i32.add i32.load - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 call $~lib/array/Array<~lib/array/Array>#toString - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=8 - local.get $1 - local.get $3 + local.get $0 + local.get $2 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -27234,13 +27552,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 12800 i32.store offset=8 - local.get $1 + local.get $0 i32.const 12800 call $~lib/string/String.__eq i32.eqz @@ -27253,19 +27571,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.const 2 i32.const 25 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=128 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=132 - local.get $0 + local.get $1 i32.const 0 i32.const 1 i32.const 2 @@ -27273,7 +27591,7 @@ i32.const 14240 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 3 i32.const 2 @@ -27281,7 +27599,7 @@ i32.const 14272 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 2 i32.const 3 i32.const 2 @@ -27289,7 +27607,7 @@ i32.const 14304 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 3 i32.const 3 i32.const 2 @@ -27297,11 +27615,11 @@ i32.const 14336 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 local.get $0 + local.get $1 i32.store offset=132 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 call $~lib/array/Array<~lib/array/Array>#flat local.tee $1 i32.store offset=128 @@ -27319,7 +27637,7 @@ end i32.const 0 local.set $0 - loop $for-loop|1132 + loop $for-loop|158 local.get $0 i32.const 10 i32.lt_s @@ -27341,23 +27659,23 @@ i32.const 1 i32.add local.set $0 - br $for-loop|1132 + br $for-loop|158 end end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.const 2 i32.const 42 i32.const 0 call $~lib/rt/__newArray - local.tee $4 + local.tee $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.load offset=4 i32.store offset=140 - local.get $4 + local.get $1 i32.const 0 i32.const 1 i32.const 2 @@ -27365,7 +27683,7 @@ i32.const 14400 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $4 + local.get $1 i32.const 1 i32.const 3 i32.const 2 @@ -27373,7 +27691,7 @@ i32.const 14496 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $4 + local.get $1 i32.const 2 i32.const 3 i32.const 2 @@ -27381,7 +27699,7 @@ i32.const 14624 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $4 + local.get $1 i32.const 3 i32.const 1 i32.const 2 @@ -27389,34 +27707,34 @@ i32.const 14688 call $~lib/rt/__newArray call $~lib/array/Array#__uset + local.get $0 local.get $1 - local.get $4 i32.store offset=140 i32.const 0 local.set $0 i32.const 0 - local.set $10 + local.set $7 i32.const 0 - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $4 + local.get $1 i32.load offset=4 local.set $5 - local.get $4 + local.get $1 i32.load offset=12 local.set $4 - loop $for-loop|0133 + loop $for-loop|0139 local.get $0 local.get $4 i32.lt_s @@ -27434,24 +27752,24 @@ else i32.const 0 end - local.get $10 + local.get $7 i32.add - local.set $10 + local.set $7 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0133 + br $for-loop|0139 end end global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.const 2 i32.shl - local.tee $1 + local.tee $0 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer i32.const 16 @@ -27460,24 +27778,24 @@ local.tee $8 i32.store offset=4 local.get $8 - local.get $10 + local.get $7 i32.store offset=12 local.get $8 - local.get $1 + local.get $0 i32.store offset=8 local.get $8 - local.get $7 + local.get $6 i32.store offset=4 local.get $8 - local.get $7 + local.get $6 i32.store local.get $8 - local.get $7 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link i32.const 0 local.set $0 - loop $for-loop|1134 + loop $for-loop|1140 local.get $0 local.get $4 i32.lt_s @@ -27490,8 +27808,8 @@ i32.load local.tee $1 if - local.get $2 - local.get $7 + local.get $3 + local.get $6 i32.add local.get $1 i32.load offset=4 @@ -27500,26 +27818,26 @@ local.tee $1 call $~lib/memory/memory.copy local.get $1 - local.get $2 + local.get $3 i32.add - local.set $2 + local.set $3 end local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|1134 + br $for-loop|1140 end end i32.const 0 local.set $0 loop $for-loop|2 local.get $0 - local.get $10 + local.get $7 i32.lt_s if - local.get $7 - local.get $7 + local.get $6 + local.get $6 local.get $0 i32.const 2 i32.shl @@ -27538,7 +27856,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $8 i32.store offset=160 global.get $~lib/memory/__stack_pointer @@ -27563,7 +27881,7 @@ end i32.const 0 local.set $0 - loop $for-loop|2135 + loop $for-loop|2141 local.get $0 local.get $4 i32.load offset=12 @@ -27572,9 +27890,9 @@ local.get $8 local.get $0 call $~lib/array/Array#__get - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store local.get $4 local.get $0 @@ -27583,7 +27901,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $3 + local.get $2 local.get $1 call $~lib/string/String.__eq i32.eqz @@ -27599,23 +27917,23 @@ i32.const 1 i32.add local.set $0 - br $for-loop|2135 + br $for-loop|2141 end end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 2 i32.const 2 i32.const 25 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=144 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=156 - local.get $0 + local.get $1 i32.const 0 i32.const 0 i32.const 2 @@ -27623,7 +27941,7 @@ i32.const 14784 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 0 i32.const 2 @@ -27631,16 +27949,16 @@ i32.const 14816 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 local.get $0 + local.get $1 i32.store offset=156 - local.get $0 + local.get $1 call $~lib/array/Array<~lib/array/Array>#flat - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -28347,56 +28665,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 - i32.const 2 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $4 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $4 i32.add local.tee $1 i32.const 0 + i32.gt_s + local.set $2 local.get $1 i32.const 0 - i32.gt_s + local.get $2 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 $1 i32.sub - local.tee $2 - local.get $2 + local.tee $3 i32.const 2 i32.gt_s - select - local.tee $2 - i32.const 0 + local.set $2 + i32.const 2 + local.get $3 local.get $2 + select + local.tee $3 i32.const 0 i32.gt_s + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 0 + local.get $2 select - local.tee $2 + local.tee $3 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $4 + local.tee $2 i32.store - local.get $4 + local.get $2 i32.load offset=4 local.get $0 i32.load offset=4 @@ -28406,13 +28729,13 @@ i32.shl i32.add local.tee $6 - local.get $2 + local.get $3 i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $3 + local.get $4 local.get $1 - local.get $2 + local.get $3 i32.add local.tee $1 i32.ne @@ -28423,7 +28746,7 @@ i32.const 2 i32.shl i32.add - local.get $3 + local.get $4 local.get $1 i32.sub i32.const 2 @@ -28431,15 +28754,15 @@ call $~lib/memory/memory.copy end local.get $0 + local.get $4 local.get $3 - local.get $2 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 $4 + local.get $2 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -29067,18 +29390,12 @@ global.get $~lib/memory/__stack_pointer 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_s - select local.tee $3 local.get $1 i32.const 0 @@ -29086,31 +29403,39 @@ i32.const 0 i32.gt_s select + local.tee $2 + i32.gt_s + local.set $4 + i32.const 0 + local.get $3 + local.get $3 + i32.const 0 + i32.gt_s + select local.tee $1 local.get $2 - local.get $1 - local.get $2 - i32.lt_s + local.get $3 + local.get $4 select - local.tee $1 + local.tee $2 local.get $1 - local.get $3 - i32.lt_s + local.get $2 + i32.gt_s select i32.const 1 i32.shl local.tee $4 - local.get $3 local.get $1 + local.get $2 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select i32.const 1 i32.shl local.tee $1 i32.sub - local.tee $3 + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -29122,7 +29447,7 @@ end i32.const 0 local.get $4 - local.get $2 + local.get $3 i32.const 1 i32.shl i32.eq @@ -29137,22 +29462,22 @@ return end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 local.get $0 local.get $1 i32.add - local.get $3 + 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 $3 ) (func $~lib/util/number/itoa32 (param $0 i32) (result i32) (local $1 i32) @@ -29364,232 +29689,6 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 f64) - (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 - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 1 - i32.sub - local.tee $4 - 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 9024 - return - end - block $folding-inner0 - local.get $4 - i32.eqz - if - local.get $0 - f64.load - local.set $3 - 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 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/dtoa - local.get $3 - 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 11552 - local.set $0 - br $__inlined_func$~lib/util/number/dtoa - end - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.ne - if - local.get $3 - local.get $3 - f64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11584 - local.set $0 - 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 11616 - i32.const 11664 - local.get $3 - f64.const 0 - f64.lt - select - local.set $0 - br $__inlined_func$~lib/util/number/dtoa - end - i32.const 11696 - local.get $3 - 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 11696 - 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 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 11516 - i32.load - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 28 - i32.add - i32.mul - i32.const 28 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|0 - local.get $4 - local.get $6 - i32.gt_s - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - call $~lib/util/number/dtoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $5 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 11520 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $5 - i32.add - local.set $2 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $7 - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - f64.load - call $~lib/util/number/dtoa_buffered - local.get $2 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - 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 31744 - i32.const 31792 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/array/Array<~lib/array/Array>#flat (param $0 i32) (result i32) (local $1 i32) (local $2 i32) diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index 0826be898f..ec243f2c6e 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -2780,23 +2780,24 @@ (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1844 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 memory.size @@ -2831,35 +2832,35 @@ i32.store i32.const 1456 global.set $~lib/rt/itcms/fromSpace - local.get $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1844 i32.lt_s - br_if $folding-inner1 + 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 8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 8 call $~lib/memory/memory.fill global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -2874,13 +2875,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 0 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -2906,13 +2907,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 1 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -2927,13 +2928,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const -1 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -2948,13 +2949,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 1 i32.const 3 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -2969,13 +2970,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 1 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -2990,13 +2991,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const -3 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -3011,13 +3012,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const -4 i32.const 42 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -3032,7 +3033,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 42 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice @@ -3061,36 +3062,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1844 i32.lt_s - br_if $folding-inner1 + 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 $2 + 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 - local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3099,37 +3100,37 @@ global.get $~lib/memory/__stack_pointer i32.const 1844 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store i32.const 8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $3 i32.const 1632 i32.const 8 call $~lib/memory/memory.copy - local.get $1 local.get $0 + local.get $3 i32.store i32.const 16 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 - local.get $0 + local.tee $2 + local.get $3 i32.store - local.get $1 - local.get $0 + local.get $2 + local.get $3 call $~lib/rt/itcms/__link - local.get $1 - local.get $0 + local.get $2 + local.get $3 i32.store offset=4 - local.get $1 + local.get $2 i32.const 8 i32.store offset=8 - local.get $1 + local.get $2 i32.const 2 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -3138,7 +3139,7 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $1 + local.get $2 i32.store offset=12 local.get $0 i32.const 4 @@ -3147,33 +3148,33 @@ global.get $~lib/memory/__stack_pointer i32.const 1844 i32.lt_s - br_if $folding-inner1 + 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.tee $0 - local.get $1 - i32.store offset=12 + local.tee $3 local.get $0 - local.get $2 + i32.store offset=12 + local.get $3 + local.get $1 i32.load local.tee $1 i32.store offset=16 @@ -3182,14 +3183,14 @@ i32.sub i32.load offset=16 local.set $2 - global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1844 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index cdff3831b2..96c129cb7c 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -2563,11 +2563,11 @@ i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1788 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -2614,7 +2614,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1788 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -2626,14 +2626,14 @@ local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1788 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -2660,16 +2660,16 @@ i32.const 8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 8 call $~lib/memory/memory.fill local.get $1 - local.get $2 + local.get $3 call $~lib/arraybuffer/ArrayBufferView#set:buffer local.get $1 - local.get $2 + local.get $3 i32.store offset=4 local.get $1 i32.const 8 @@ -2678,7 +2678,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $1 i32.store global.get $~lib/memory/__stack_pointer @@ -2721,13 +2721,13 @@ i32.const 95 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 local.get $1 i32.load - local.tee $2 + local.tee $0 i32.store offset=4 - local.get $0 local.get $2 + local.get $0 local.get $1 i32.load offset=4 local.get $1 @@ -4239,24 +4239,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 local.get $1 i32.load - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $2 local.get $0 + local.get $1 i32.const 0 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 call $~lib/dataview/DataView#constructor - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.get $0 + local.get $1 i32.load i32.sub if @@ -4267,7 +4267,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=8 i32.const 8 i32.ne diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index 1dd25fdd11..98752a8fab 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -2506,6 +2506,221 @@ i64.add call $~lib/date/Date#setTime ) + (func $~lib/number/I32#toString (param $0 i32) (result 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 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1872 + local.set $0 + br $__inlined_func$~lib/util/number/itoa32 + end + global.get $~lib/memory/__stack_pointer + 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 + 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 $3 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $while-continue|0 + local.get $1 + i32.const 10000 + 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 $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1884 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1884 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1884 + 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 $0 + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 2 + i32.shl + i32.const 1884 + i32.add + i32.load + i32.store + else + local.get $0 + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 + end + local.get $3 + 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 + end + local.get $0 + ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -3792,16 +4007,14 @@ (local $10 i32) local.get $0 i32.load offset=12 - local.tee $10 + local.tee $7 i32.const 1 i32.add local.tee $8 - local.set $4 - local.get $8 + local.tee $4 local.get $0 - local.tee $2 i32.load offset=8 - local.tee $7 + local.tee $5 i32.const 2 i32.shr_u i32.gt_u @@ -3817,40 +4030,43 @@ call $~lib/builtins/abort unreachable end + local.get $5 + i32.const 1 + i32.shl + local.tee $2 + i32.const 1073741820 + i32.lt_u + local.set $3 + local.get $4 + i32.const 8 + local.get $4 + i32.const 8 + i32.gt_u + select + i32.const 2 + i32.shl + local.tee $4 local.get $2 - i32.load - local.tee $9 + i32.const 1073741820 + local.get $3 + select + local.tee $2 + i32.lt_u local.set $3 - block $__inlined_func$~lib/rt/itcms/__renew - local.get $7 - i32.const 1 - i32.shl - local.tee $0 - i32.const 1073741820 - local.get $0 - i32.const 1073741820 - i32.lt_u - select - local.tee $5 - local.get $4 - i32.const 8 + block $__inlined_func$~lib/rt/itcms/__renew (result i32) + local.get $2 local.get $4 - i32.const 8 - i32.gt_u + local.get $3 select - i32.const 2 - i32.shl - local.tee $0 + local.tee $4 + local.tee $2 local.get $0 - local.get $5 - i32.lt_u - select - local.tee $5 + i32.load + local.tee $9 local.tee $6 - local.get $9 i32.const 20 i32.sub - local.tee $4 + local.tee $3 i32.load i32.const -4 i32.and @@ -3858,68 +4074,68 @@ i32.sub i32.le_u if - local.get $4 - local.get $6 - i32.store offset=16 local.get $3 - local.set $0 + local.get $2 + i32.store offset=16 + local.get $6 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $6 - local.get $4 + local.get $2 + local.get $3 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $0 - local.get $3 + local.tee $10 local.get $6 - local.get $4 + local.get $2 + local.get $3 i32.load offset=16 local.tee $3 + local.get $2 local.get $3 - local.get $6 - i32.gt_u + i32.lt_u select call $~lib/memory/memory.copy + local.get $10 end - local.get $0 - local.get $7 + local.tee $2 + local.get $5 i32.add + local.get $4 local.get $5 - local.get $7 i32.sub call $~lib/memory/memory.fill - local.get $0 + local.get $2 local.get $9 i32.ne if - local.get $2 local.get $0 - i32.store local.get $2 + i32.store local.get $0 - i32.store offset=4 local.get $2 + i32.store offset=4 local.get $0 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link end - local.get $2 - local.get $5 + local.get $0 + local.get $4 i32.store offset=8 end - local.get $2 + local.get $0 i32.load offset=4 - local.get $10 + local.get $7 i32.const 2 i32.shl i32.add local.get $1 i32.store - local.get $2 + local.get $0 local.get $1 i32.const 1 call $~lib/rt/itcms/__link - local.get $2 + local.get $0 local.get $8 i32.store offset=12 ) @@ -3942,29 +4158,28 @@ return end local.get $0 - local.tee $1 i32.load16_u - local.set $0 + local.set $1 loop $while-continue|0 block $__inlined_func$~lib/util/string/isSpace (result i32) - local.get $0 + local.get $1 i32.const 128 i32.or i32.const 160 i32.eq - local.get $0 + local.get $1 i32.const 9 i32.sub i32.const 4 i32.le_u i32.or - local.get $0 + local.get $1 i32.const 5760 i32.lt_u br_if $__inlined_func$~lib/util/string/isSpace drop i32.const 1 - local.get $0 + local.get $1 i32.const -8192 i32.add i32.const 10 @@ -3973,31 +4188,31 @@ drop block $break|0 block $case6|0 - local.get $0 + local.get $1 i32.const 5760 i32.eq br_if $case6|0 - local.get $0 + local.get $1 i32.const 8232 i32.eq br_if $case6|0 - local.get $0 + local.get $1 i32.const 8233 i32.eq br_if $case6|0 - local.get $0 + local.get $1 i32.const 8239 i32.eq br_if $case6|0 - local.get $0 + local.get $1 i32.const 8287 i32.eq br_if $case6|0 - local.get $0 + local.get $1 i32.const 12288 i32.eq br_if $case6|0 - local.get $0 + local.get $1 i32.const 65279 i32.eq br_if $case6|0 @@ -4009,12 +4224,12 @@ i32.const 0 end if - local.get $1 + local.get $0 i32.const 2 i32.add - local.tee $1 + local.tee $0 i32.load16_u - local.set $0 + local.set $1 local.get $2 i32.const 1 i32.sub @@ -4023,12 +4238,12 @@ end end i32.const 1 - local.set $5 + local.set $3 i32.const 1 - local.get $0 + local.get $1 i32.const 43 i32.eq - local.get $0 + local.get $1 i32.const 45 i32.eq select @@ -4044,23 +4259,23 @@ end i32.const -1 i32.const 1 - local.get $0 + local.get $1 i32.const 45 i32.eq select - local.set $5 - local.get $1 + local.set $3 + local.get $0 i32.const 2 i32.add - local.tee $1 + local.tee $0 i32.load16_u - local.set $0 + local.set $1 end local.get $2 i32.const 2 i32.gt_s i32.const 0 - local.get $0 + local.get $1 i32.const 48 i32.eq select @@ -4068,102 +4283,101 @@ block $break|1 block $case2|1 block $case1|1 - local.get $1 + local.get $0 i32.load16_u offset=2 i32.const 32 i32.or - local.tee $0 + local.tee $1 i32.const 98 i32.ne if - local.get $0 + local.get $1 i32.const 111 i32.eq br_if $case1|1 - local.get $0 + local.get $1 i32.const 120 i32.eq br_if $case2|1 br $break|1 end - local.get $1 + local.get $0 i32.const 4 i32.add - local.set $1 + local.set $0 local.get $2 i32.const 2 i32.sub local.set $2 i32.const 2 - local.set $3 + local.set $4 br $break|1 end - local.get $1 + local.get $0 i32.const 4 i32.add - local.set $1 + local.set $0 local.get $2 i32.const 2 i32.sub local.set $2 i32.const 8 - local.set $3 + local.set $4 br $break|1 end - local.get $1 + local.get $0 i32.const 4 i32.add - local.set $1 + local.set $0 local.get $2 i32.const 2 i32.sub local.set $2 i32.const 16 - local.set $3 + local.set $4 end end - local.get $3 + local.get $4 i32.const 10 - local.get $3 + local.get $4 select - local.set $3 + local.set $4 loop $while-continue|2 block $while-break|2 local.get $2 - local.tee $0 + local.tee $1 i32.const 1 i32.sub local.set $2 - local.get $0 + local.get $1 if - local.get $3 - local.get $1 + local.get $0 i32.load16_u - local.tee $0 + local.tee $1 i32.const 48 i32.sub i32.const 10 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 48 i32.sub else - local.get $0 + local.get $1 i32.const 65 i32.sub i32.const 25 i32.le_u if (result i32) - local.get $0 + local.get $1 i32.const 55 i32.sub else - local.get $0 + local.get $1 i32.const 87 i32.sub - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 97 i32.sub i32.const 25 @@ -4171,10 +4385,11 @@ select end end - local.tee $0 - i32.le_u + local.tee $1 + local.get $4 + i32.ge_u if - local.get $4 + local.get $5 i32.eqz if i32.const 0 @@ -4182,21 +4397,21 @@ end br $while-break|2 end - local.get $0 - local.get $3 + local.get $1 local.get $4 + local.get $5 i32.mul i32.add - local.set $4 - local.get $1 + local.set $5 + local.get $0 i32.const 2 i32.add - local.set $1 + local.set $0 br $while-continue|2 end end end - local.get $4 + local.get $3 local.get $5 i32.mul ) @@ -4234,62 +4449,64 @@ return end local.get $0 + local.tee $1 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.add - local.set $1 + local.set $2 loop $while-continue|0 - local.get $0 local.get $1 + local.get $2 i32.lt_u if - local.get $0 + local.get $1 i32.load - local.tee $2 + local.tee $0 if - local.get $2 + local.get $0 call $~lib/rt/itcms/__visit end - local.get $0 + local.get $1 i32.const 4 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end return end local.get $0 - i32.load offset=4 local.tee $1 + i32.load offset=4 + local.tee $2 local.get $0 i32.load offset=12 i32.const 2 i32.shl i32.add - local.set $2 + local.set $3 loop $while-continue|00 - local.get $1 local.get $2 + local.get $3 i32.lt_u if - local.get $1 + local.get $2 i32.load - local.tee $3 + local.tee $0 if - local.get $3 + local.get $0 call $~lib/rt/itcms/__visit end - local.get $1 + local.get $2 i32.const 4 i32.add - local.set $1 + local.set $2 br $while-continue|00 end end - local.get $0 + local.get $1 i32.load call $~lib/rt/itcms/__visit return @@ -4403,7 +4620,7 @@ local.get $5 i32.add i32.xor - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $1 global.get $~lib/memory/__stack_pointer local.tee $5 @@ -4428,7 +4645,7 @@ else global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $1 global.get $~lib/memory/__stack_pointer local.tee $3 @@ -4455,7 +4672,7 @@ i32.store offset=92 local.get $0 i32.load offset=4 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer local.tee $3 @@ -4491,7 +4708,7 @@ i32.store offset=76 local.get $0 i32.load offset=8 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer local.tee $3 @@ -4540,7 +4757,7 @@ i32.wrap_i64 i32.const 3600000 i32.div_s - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer local.tee $3 @@ -4589,7 +4806,7 @@ i32.wrap_i64 i32.const 60000 i32.div_s - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer local.tee $3 @@ -4638,7 +4855,7 @@ i32.wrap_i64 i32.const 1000 i32.div_s - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer local.tee $3 @@ -4685,7 +4902,7 @@ select i64.add i32.wrap_i64 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $2 @@ -4854,7 +5071,7 @@ local.get $4 i32.add i32.xor - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $8 @@ -4912,7 +5129,7 @@ local.get $1 i32.store offset=24 local.get $7 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer local.tee $3 @@ -5005,7 +5222,7 @@ i32.wrap_i64 i32.const 3600000 i32.div_s - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $1 global.get $~lib/memory/__stack_pointer local.tee $2 @@ -5047,7 +5264,7 @@ i32.wrap_i64 i32.const 60000 i32.div_s - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer local.tee $4 @@ -5096,7 +5313,7 @@ i32.wrap_i64 i32.const 1000 i32.div_s - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $2 @@ -5273,7 +5490,7 @@ local.get $7 i32.add i32.xor - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $5 global.get $~lib/memory/__stack_pointer local.tee $3 @@ -5312,7 +5529,7 @@ local.tee $3 i32.store offset=80 local.get $9 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $4 global.get $~lib/memory/__stack_pointer local.tee $2 @@ -5387,7 +5604,7 @@ i32.wrap_i64 i32.const 3600000 i32.div_s - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -5436,7 +5653,7 @@ i32.wrap_i64 i32.const 60000 i32.div_s - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -5485,7 +5702,7 @@ i32.wrap_i64 i32.const 1000 i32.div_s - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $1 global.get $~lib/memory/__stack_pointer local.tee $0 @@ -5621,9 +5838,13 @@ i32.const 2147483647 i32.ne select - local.tee $2 + local.tee $1 + local.set $2 + local.get $1 call $~lib/rt/__newArray local.tee $1 + local.set $4 + local.get $1 i32.store local.get $1 i32.load offset=4 @@ -5637,9 +5858,9 @@ i32.const 2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store offset=8 - local.get $4 + local.get $1 local.get $0 local.get $3 i32.const 1 @@ -5652,10 +5873,10 @@ i32.const 2 i32.shl i32.add - local.get $4 - i32.store local.get $1 + i32.store local.get $4 + local.get $1 i32.const 1 call $~lib/rt/itcms/__link local.get $3 @@ -5669,7 +5890,7 @@ i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $4 return end global.get $~lib/memory/__stack_pointer @@ -9373,221 +9594,6 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/util/number/itoa32 (param $0 i32) (result 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 - 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 - 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 1872 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - local.tee $4 - select - 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 $4 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $1 - local.set $0 - local.get $2 - local.set $1 - loop $while-continue|0 - local.get $0 - i32.const 10000 - i32.ge_u - if - local.get $0 - i32.const 10000 - i32.rem_u - local.set $2 - local.get $0 - i32.const 10000 - i32.div_u - local.set $0 - local.get $3 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1884 - i32.add - i64.load32_u - local.get $2 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1884 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $0 - i32.const 100 - i32.ge_u - if - local.get $3 - local.get $1 - i32.const 2 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1884 - i32.add - i32.load - i32.store - local.get $0 - i32.const 100 - i32.div_u - local.set $0 - end - local.get $0 - i32.const 10 - i32.ge_u - if - local.get $3 - local.get $1 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 2 - i32.shl - i32.const 1884 - i32.add - i32.load - i32.store - else - local.get $3 - local.get $1 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 48 - i32.add - i32.store16 - end - local.get $4 - if - local.get $3 - 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 $3 - ) (func $~lib/string/String#padStart (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -9629,7 +9635,7 @@ i32.shr_u i32.const 1 i32.shl - local.tee $5 + local.tee $6 local.get $1 i32.const 1 i32.shl @@ -9653,7 +9659,7 @@ i32.store local.get $3 local.get $2 - local.get $5 + local.get $6 i32.sub local.tee $2 i32.lt_u @@ -9664,33 +9670,37 @@ i32.sub local.get $3 i32.div_u + local.tee $4 i32.mul - local.tee $6 local.set $7 + local.get $3 + local.get $4 + i32.mul + local.set $4 loop $while-continue|0 local.get $4 - local.get $7 - i32.lt_u + local.get $5 + i32.gt_u if local.get $1 - local.get $4 + local.get $5 i32.add i32.const 1872 local.get $3 call $~lib/memory/memory.copy local.get $3 - local.get $4 + local.get $5 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end local.get $1 - local.get $6 + local.get $7 i32.add i32.const 1872 local.get $2 - local.get $6 + local.get $7 i32.sub call $~lib/memory/memory.copy else @@ -9703,7 +9713,7 @@ local.get $2 i32.add local.get $0 - local.get $5 + local.get $6 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 5cb0d5e8fc..02d9d106f6 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -3548,16 +3548,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $0 i64.const 0 i64.store - local.get $16 + local.get $0 i64.const 0 i64.store offset=8 - local.get $16 + local.get $0 i32.const 0 i32.store offset=16 - local.get $16 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3573,54 +3573,54 @@ i32.const 24 i32.const 3 call $~lib/rt/itcms/__new - local.tee $15 + local.tee $8 i32.store - local.get $15 + local.get $8 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $4 i32.store - local.get $15 + local.get $8 local.get $4 call $~lib/rt/itcms/__link - local.get $15 + local.get $8 i32.const 3 i32.store offset=4 - local.get $15 + local.get $8 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $4 i32.store offset=8 - local.get $15 + local.get $8 local.get $4 call $~lib/rt/itcms/__link - local.get $15 + local.get $8 i32.const 4 i32.store offset=12 - local.get $15 + local.get $8 i32.const 0 i32.store offset=16 - local.get $15 + local.get $8 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 $16 - local.get $15 + local.get $0 + local.get $8 i32.store loop $for-loop|1 - local.get $1 + local.get $2 i32.extend8_s i32.const 100 i32.lt_s if - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $1 + local.get $2 i32.extend8_s i32.const -1028477379 i32.mul @@ -3630,22 +3630,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -3654,38 +3654,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u - local.get $1 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|0 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 @@ -3694,19 +3694,19 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 - local.get $1 + local.get $8 + local.get $2 + local.get $2 i32.extend8_s - local.tee $4 + local.tee $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $4 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761394 @@ -3715,22 +3715,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -3739,38 +3739,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u - local.get $1 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $4 + local.get $5 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 @@ -3780,10 +3780,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 + local.get $8 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.extend8_s i32.const 10 i32.add @@ -3796,14 +3796,14 @@ 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|1 end end - local.get $15 + local.get $8 i32.load offset=20 i32.const 100 i32.ne @@ -3816,18 +3816,18 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i32.extend8_s i32.const 100 i32.lt_s if - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $1 + local.get $2 i32.extend8_s i32.const -1028477379 i32.mul @@ -3837,22 +3837,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -3861,38 +3861,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u - local.get $1 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $4 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|05 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -3902,10 +3902,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 + local.get $8 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.extend8_s i32.const 10 i32.add @@ -3918,19 +3918,19 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 - local.get $1 + local.get $8 + local.get $2 + local.get $2 i32.extend8_s - local.tee $4 + local.tee $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $4 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761394 @@ -3939,22 +3939,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -3963,38 +3963,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u - local.get $1 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $4 + local.get $5 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 @@ -4004,10 +4004,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 + local.get $8 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.extend8_s i32.const 20 i32.add @@ -4020,14 +4020,14 @@ 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|3 end end - local.get $15 + local.get $8 i32.load offset=20 i32.const 100 i32.ne @@ -4039,10 +4039,8 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $10 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4051,16 +4049,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i32.const 0 i32.store - local.get $15 + local.get $8 i32.load offset=8 - local.set $3 - local.get $15 + local.set $11 + local.get $8 i32.load offset=16 - local.set $12 - local.get $4 + local.set $4 + local.get $2 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -4069,31 +4068,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $2 i64.const 0 i64.store - local.get $16 + local.get $2 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $14 + local.tee $2 i32.store - local.get $14 + local.get $2 i32.const 0 i32.store - local.get $14 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $14 + local.get $2 i32.const 0 i32.store offset=4 - local.get $14 + local.get $2 i32.const 0 i32.store offset=8 - local.get $14 + local.get $2 i32.const 0 i32.store offset=12 - local.get $12 + local.get $4 i32.const 1073741820 i32.gt_u if @@ -4105,61 +4104,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $4 i32.const 8 - local.get $12 + local.get $4 i32.const 8 i32.gt_u select - local.tee $16 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $13 + local.tee $5 i32.store offset=4 - local.get $13 - local.get $16 + local.get $5 + local.get $7 call $~lib/memory/memory.fill - local.get $14 - local.get $13 + local.get $2 + local.get $5 i32.store - local.get $14 - local.get $13 + local.get $2 + local.get $5 call $~lib/rt/itcms/__link - local.get $14 - local.get $13 + local.get $2 + local.get $5 i32.store offset=4 - local.get $14 - local.get $16 + local.get $2 + local.get $7 i32.store offset=8 - local.get $14 - local.get $12 + local.get $2 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $14 + local.get $0 + local.get $2 i32.store loop $for-loop|0 - local.get $5 - local.get $12 - i32.lt_s + local.get $4 + local.get $6 + i32.gt_s if - local.get $3 - local.get $5 + local.get $11 + local.get $6 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $0 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $14 + local.get $2 local.get $1 - local.get $4 + local.get $0 i32.load8_s call $~lib/array/Array#__set local.get $1 @@ -4167,35 +4166,36 @@ i32.add local.set $1 end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end - local.get $14 + local.get $2 local.get $1 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $14 + 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 $0 - local.get $14 + local.get $10 + local.get $2 + local.tee $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $15 + local.get $8 call $~lib/map/Map#values - local.tee $7 + local.tee $14 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4204,63 +4204,63 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 24 i32.const 6 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $2 i32.store - local.get $5 + local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $5 i32.store + local.get $2 local.get $5 - local.get $1 call $~lib/rt/itcms/__link - local.get $5 + local.get $2 i32.const 3 i32.store offset=4 - local.get $5 + local.get $2 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $5 i32.store offset=8 + local.get $2 local.get $5 - local.get $1 call $~lib/rt/itcms/__link - local.get $5 + local.get $2 i32.const 4 i32.store offset=12 - local.get $5 + local.get $2 i32.const 0 i32.store offset=16 - local.get $5 + 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 $4 - local.get $5 + local.get $0 + local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $9 + local.tee $12 i32.store offset=16 loop $for-loop|4 - local.get $2 - local.get $14 + local.get $3 + local.get $4 i32.load offset=12 i32.lt_s if - local.get $2 - local.tee $3 - local.get $14 + local.get $3 + local.tee $5 + local.get $4 i32.load offset=12 i32.ge_u if @@ -4271,21 +4271,21 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $14 + local.get $5 + local.get $4 i32.load offset=4 i32.add i32.load8_s - local.set $2 - local.get $7 - local.get $3 + local.set $3 + local.get $14 + local.get $5 call $~lib/array/Array#__get - local.set $8 - local.get $15 + local.set $13 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -4295,22 +4295,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -4319,38 +4319,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find11 - loop $while-continue|012 - local.get $16 + local.set $0 + block $__inlined_func$~lib/map/Map#find10 + loop $while-continue|011 + local.get $0 if - local.get $16 + local.get $0 i32.load offset=8 - local.tee $1 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 + local.get $0 i32.load8_u - local.get $2 + local.get $3 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find11 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find10 + local.get $6 i32.const -2 i32.and - local.set $16 - br $while-continue|012 + local.set $0 + br $while-continue|011 end end i32.const 0 - local.set $16 + local.set $0 end - local.get $16 + local.get $0 i32.eqz if i32.const 0 @@ -4360,14 +4360,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $8 i32.load - local.get $15 - i32.load offset=4 local.get $8 + i32.load offset=4 + local.get $13 i32.const 20 i32.sub - local.tee $4 + local.tee $6 i32.extend8_s i32.const -1028477379 i32.mul @@ -4377,22 +4377,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -4402,13 +4402,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/map/Map#find14 - loop $while-continue|015 + block $__inlined_func$~lib/map/Map#find13 + loop $while-continue|014 local.get $0 if local.get $0 i32.load offset=8 - local.tee $1 + local.tee $7 i32.const 1 i32.and if (result i32) @@ -4416,17 +4416,17 @@ else local.get $0 i32.load8_u - local.get $4 + local.get $6 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find14 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find13 + local.get $7 i32.const -2 i32.and local.set $0 - br $while-continue|015 + br $while-continue|014 end end i32.const 0 @@ -4453,8 +4453,8 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 - local.tee $4 + local.get $3 + local.tee $7 i32.extend8_s i32.const -1028477379 i32.mul @@ -4464,83 +4464,83 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u i32.xor - local.tee $1 - local.set $6 - local.get $5 + local.tee $0 + local.set $15 + local.get $2 i32.load - local.get $1 - local.get $5 + local.get $0 + local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find - loop $while-continue|017 - local.get $0 + loop $while-continue|015 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 - local.tee $1 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $1 i32.load8_u - local.get $4 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $1 + local.get $6 i32.const -2 i32.and - local.set $0 - br $while-continue|017 + local.set $1 + br $while-continue|015 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if - local.get $0 - local.get $4 + local.get $1 + local.get $7 i32.store8 offset=1 else - local.get $5 + local.get $2 i32.load offset=16 - local.get $5 + local.get $2 i32.load offset=12 i32.eq if - local.get $5 + local.get $2 i32.load offset=20 - local.get $5 + local.get $2 i32.load offset=12 i32.const 3 i32.mul @@ -4548,17 +4548,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $5 + local.get $2 i32.load offset=4 else - local.get $5 + local.get $2 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $16 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4568,66 +4568,66 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store + local.get $0 local.get $1 - local.get $16 i32.const 1 i32.add - local.tee $1 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $11 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $2 + local.tee $16 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $2 i32.load offset=8 - local.tee $11 - local.get $5 + local.tee $10 + local.get $2 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $12 - local.get $1 + local.set $3 + local.get $6 local.set $0 - loop $while-continue|018 - local.get $11 - local.get $12 + loop $while-continue|016 + local.get $3 + local.get $10 i32.ne if - local.get $11 + local.get $10 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $11 + local.get $10 i32.load8_s - local.tee $13 + local.tee $9 i32.store8 local.get $0 - local.get $11 + local.get $10 i32.load8_s offset=1 i32.store8 offset=1 local.get $0 - local.get $10 - local.get $16 - local.get $13 + local.get $11 + local.get $1 + local.get $9 i32.extend8_s i32.const -1028477379 i32.mul @@ -4637,22 +4637,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $13 - local.get $13 + local.tee $9 + local.get $9 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $13 - local.get $13 + local.tee $9 + local.get $9 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $13 - local.get $13 + local.tee $9 + local.get $9 i32.const 16 i32.shr_u i32.xor @@ -4660,10 +4660,10 @@ i32.const 2 i32.shl i32.add - local.tee $13 + local.tee $9 i32.load i32.store offset=4 - local.get $13 + local.get $9 local.get $0 i32.store local.get $0 @@ -4671,33 +4671,33 @@ i32.add local.set $0 end - local.get $11 + local.get $10 i32.const 8 i32.add - local.set $11 - br $while-continue|018 + local.set $10 + br $while-continue|016 end end - local.get $5 - local.get $10 + local.get $2 + local.get $11 i32.store - local.get $5 - local.get $10 + local.get $2 + local.get $11 call $~lib/rt/itcms/__link - local.get $5 - local.get $16 - i32.store offset=4 - local.get $5 + local.get $2 local.get $1 + i32.store offset=4 + local.get $2 + local.get $6 i32.store offset=8 - local.get $5 - local.get $1 + local.get $2 + local.get $6 call $~lib/rt/itcms/__link - local.get $5 local.get $2 + local.get $16 i32.store offset=12 - local.get $5 - local.get $5 + local.get $2 + local.get $2 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -4706,70 +4706,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.load offset=8 - local.tee $16 + local.tee $0 i32.store - local.get $5 - local.get $5 + local.get $2 + local.get $2 i32.load offset=16 local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $16 + local.get $0 local.get $1 i32.const 3 i32.shl i32.add - local.tee $1 - local.get $4 + local.tee $0 + local.get $7 i32.store8 - local.get $1 - local.get $4 + local.get $0 + local.get $7 i32.store8 offset=1 - local.get $5 - local.get $5 + local.get $2 + local.get $2 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $1 - local.get $5 + local.get $0 + local.get $2 i32.load - local.get $6 - local.get $5 + local.get $15 + local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $3 i32.load i32.store offset=4 - local.get $2 - local.get $1 + local.get $3 + 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 $9 - local.get $8 + local.get $12 + local.get $13 i32.const 20 i32.sub - local.tee $2 - local.get $2 - call $~lib/map/Map#set + local.tee $3 local.get $3 + call $~lib/map/Map#set + local.get $5 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|4 end end - local.get $5 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -4781,7 +4781,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $12 i32.load offset=20 i32.const 100 i32.ne @@ -4794,18 +4794,18 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|6 - local.get $2 + local.get $3 i32.extend8_s i32.const 50 i32.lt_s if - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -4815,22 +4815,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -4839,38 +4839,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find20 - loop $while-continue|021 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find18 + loop $while-continue|019 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load8_u local.get $2 + i32.load8_u + local.get $3 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find20 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find18 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|021 + local.set $2 + br $while-continue|019 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 i32.eqz if i32.const 0 @@ -4880,10 +4880,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $8 + local.get $3 call $~lib/map/Map#get - local.get $2 + local.get $3 i32.extend8_s i32.const 20 i32.add @@ -4896,14 +4896,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $8 + local.get $3 call $~lib/map/Map#delete - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -4913,22 +4913,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -4937,38 +4937,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find23 - loop $while-continue|024 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find21 + loop $while-continue|022 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load8_u local.get $2 + i32.load8_u + local.get $3 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find23 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find21 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|024 + local.set $2 + br $while-continue|022 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 if i32.const 0 i32.const 1568 @@ -4977,14 +4977,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|6 end end - local.get $15 + local.get $8 i32.load offset=20 i32.const 50 i32.ne @@ -4997,18 +4997,18 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|8 - local.get $2 + local.get $3 i32.extend8_s i32.const 50 i32.lt_s if - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -5018,22 +5018,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -5042,38 +5042,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find26 - loop $while-continue|027 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find24 + loop $while-continue|025 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load8_u local.get $2 + i32.load8_u + local.get $3 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find26 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find24 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|027 - end + local.set $2 + br $while-continue|025 + end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 if i32.const 0 i32.const 1568 @@ -5082,19 +5082,19 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 - local.get $2 + local.get $8 + local.get $3 + local.get $3 i32.extend8_s - local.tee $1 + local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $1 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761394 @@ -5103,22 +5103,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -5127,38 +5127,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find29 - loop $while-continue|030 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find27 + loop $while-continue|028 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load8_u local.get $2 + i32.load8_u + local.get $3 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find29 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find27 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|030 + local.set $2 + br $while-continue|028 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 i32.eqz if i32.const 0 @@ -5168,14 +5168,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $8 + local.get $3 call $~lib/map/Map#delete - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -5185,22 +5185,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -5209,38 +5209,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find32 - loop $while-continue|033 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find30 + loop $while-continue|031 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load8_u local.get $2 + i32.load8_u + local.get $3 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find32 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find30 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|033 + local.set $2 + br $while-continue|031 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 if i32.const 0 i32.const 1568 @@ -5249,14 +5249,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|8 end end - local.get $15 + local.get $8 i32.load offset=20 i32.const 50 i32.ne @@ -5268,9 +5268,9 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $8 call $~lib/map/Map#clear - local.get $15 + local.get $8 i32.load offset=20 if i32.const 0 @@ -5694,16 +5694,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $0 i64.const 0 i64.store - local.get $16 + local.get $0 i64.const 0 i64.store offset=8 - local.get $16 + local.get $0 i32.const 0 i32.store offset=16 - local.get $16 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5719,55 +5719,55 @@ i32.const 24 i32.const 8 call $~lib/rt/itcms/__new - local.tee $15 + local.tee $8 i32.store - local.get $15 + local.get $8 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $4 i32.store - local.get $15 + local.get $8 local.get $4 call $~lib/rt/itcms/__link - local.get $15 + local.get $8 i32.const 3 i32.store offset=4 - local.get $15 + local.get $8 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $4 i32.store offset=8 - local.get $15 + local.get $8 local.get $4 call $~lib/rt/itcms/__link - local.get $15 + local.get $8 i32.const 4 i32.store offset=12 - local.get $15 + local.get $8 i32.const 0 i32.store offset=16 - local.get $15 + local.get $8 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 $16 - local.get $15 + local.get $0 + local.get $8 i32.store loop $for-loop|1 - local.get $1 + local.get $2 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $1 + local.get $2 i32.const 255 i32.and i32.const -1028477379 @@ -5778,22 +5778,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -5802,38 +5802,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u - local.get $1 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|0 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 @@ -5842,20 +5842,20 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 - local.get $1 + local.get $8 + local.get $2 + local.get $2 i32.const 255 i32.and - local.tee $4 + local.tee $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $4 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761394 @@ -5864,22 +5864,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -5888,38 +5888,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u - local.get $1 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $4 + local.get $5 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 @@ -5929,10 +5929,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 + local.get $8 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 255 i32.and i32.const 10 @@ -5946,14 +5946,14 @@ 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|1 end end - local.get $15 + local.get $8 i32.load offset=20 i32.const 100 i32.ne @@ -5966,19 +5966,19 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $1 + local.get $2 i32.const 255 i32.and i32.const -1028477379 @@ -5989,22 +5989,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -6013,38 +6013,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u - local.get $1 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $4 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|05 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -6054,10 +6054,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 + local.get $8 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 255 i32.and i32.const 10 @@ -6071,20 +6071,20 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 - local.get $1 + local.get $8 + local.get $2 + local.get $2 i32.const 255 i32.and - local.tee $4 + local.tee $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $4 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761394 @@ -6093,22 +6093,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -6117,38 +6117,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u - local.get $1 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $4 + local.get $5 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 @@ -6158,10 +6158,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 + local.get $8 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 255 i32.and i32.const 20 @@ -6175,14 +6175,14 @@ 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|3 end end - local.get $15 + local.get $8 i32.load offset=20 i32.const 100 i32.ne @@ -6194,10 +6194,8 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $10 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6206,16 +6204,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i32.const 0 i32.store - local.get $15 + local.get $8 i32.load offset=8 - local.set $3 - local.get $15 + local.set $11 + local.get $8 i32.load offset=16 - local.set $12 - local.get $4 + local.set $4 + local.get $2 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -6224,31 +6223,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $2 i64.const 0 i64.store - local.get $16 + local.get $2 i32.const 16 i32.const 9 call $~lib/rt/itcms/__new - local.tee $14 + local.tee $2 i32.store - local.get $14 + local.get $2 i32.const 0 i32.store - local.get $14 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $14 + local.get $2 i32.const 0 i32.store offset=4 - local.get $14 + local.get $2 i32.const 0 i32.store offset=8 - local.get $14 + local.get $2 i32.const 0 i32.store offset=12 - local.get $12 + local.get $4 i32.const 1073741820 i32.gt_u if @@ -6260,61 +6259,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $4 i32.const 8 - local.get $12 + local.get $4 i32.const 8 i32.gt_u select - local.tee $16 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $13 + local.tee $5 i32.store offset=4 - local.get $13 - local.get $16 + local.get $5 + local.get $7 call $~lib/memory/memory.fill - local.get $14 - local.get $13 + local.get $2 + local.get $5 i32.store - local.get $14 - local.get $13 + local.get $2 + local.get $5 call $~lib/rt/itcms/__link - local.get $14 - local.get $13 + local.get $2 + local.get $5 i32.store offset=4 - local.get $14 - local.get $16 + local.get $2 + local.get $7 i32.store offset=8 - local.get $14 - local.get $12 + local.get $2 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $14 + local.get $0 + local.get $2 i32.store loop $for-loop|0 - local.get $5 - local.get $12 - i32.lt_s + local.get $4 + local.get $6 + i32.gt_s if - local.get $3 - local.get $5 + local.get $11 + local.get $6 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $0 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $14 + local.get $2 local.get $1 - local.get $4 + local.get $0 i32.load8_u call $~lib/array/Array#__set local.get $1 @@ -6322,35 +6321,36 @@ i32.add local.set $1 end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end - local.get $14 + local.get $2 local.get $1 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $14 + 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 $0 - local.get $14 + local.get $10 + local.get $2 + local.tee $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $15 + local.get $8 call $~lib/map/Map#values - local.tee $7 + local.tee $14 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6359,63 +6359,63 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 24 i32.const 10 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $2 i32.store - local.get $5 + local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $5 i32.store + local.get $2 local.get $5 - local.get $1 call $~lib/rt/itcms/__link - local.get $5 + local.get $2 i32.const 3 i32.store offset=4 - local.get $5 + local.get $2 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $5 i32.store offset=8 + local.get $2 local.get $5 - local.get $1 call $~lib/rt/itcms/__link - local.get $5 + local.get $2 i32.const 4 i32.store offset=12 - local.get $5 + local.get $2 i32.const 0 i32.store offset=16 - local.get $5 + 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 $4 - local.get $5 + local.get $0 + local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $9 + local.tee $12 i32.store offset=16 loop $for-loop|4 - local.get $2 - local.get $14 + local.get $3 + local.get $4 i32.load offset=12 i32.lt_s if - local.get $2 - local.tee $3 - local.get $14 + local.get $3 + local.tee $5 + local.get $4 i32.load offset=12 i32.ge_u if @@ -6426,21 +6426,21 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $14 + local.get $5 + local.get $4 i32.load offset=4 i32.add i32.load8_u - local.set $2 - local.get $7 - local.get $3 + local.set $3 + local.get $14 + local.get $5 call $~lib/array/Array#__get - local.set $8 - local.get $15 + local.set $13 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.const 255 i32.and i32.const -1028477379 @@ -6451,22 +6451,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -6475,38 +6475,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find11 - loop $while-continue|012 - local.get $16 - if - local.get $16 + local.set $0 + block $__inlined_func$~lib/map/Map#find10 + loop $while-continue|011 + local.get $0 + if + local.get $0 i32.load offset=8 - local.tee $1 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 + local.get $0 i32.load8_u - local.get $2 + local.get $3 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find11 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find10 + local.get $6 i32.const -2 i32.and - local.set $16 - br $while-continue|012 + local.set $0 + br $while-continue|011 end end i32.const 0 - local.set $16 + local.set $0 end - local.get $16 + local.get $0 i32.eqz if i32.const 0 @@ -6516,14 +6516,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $8 i32.load - local.get $15 - i32.load offset=4 local.get $8 + i32.load offset=4 + local.get $13 i32.const 20 i32.sub - local.tee $4 + local.tee $6 i32.const 255 i32.and i32.const -1028477379 @@ -6534,22 +6534,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -6559,13 +6559,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/map/Map#find14 - loop $while-continue|015 + block $__inlined_func$~lib/map/Map#find13 + loop $while-continue|014 local.get $0 if local.get $0 i32.load offset=8 - local.tee $1 + local.tee $7 i32.const 1 i32.and if (result i32) @@ -6573,17 +6573,17 @@ else local.get $0 i32.load8_u - local.get $4 + local.get $6 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find14 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find13 + local.get $7 i32.const -2 i32.and local.set $0 - br $while-continue|015 + br $while-continue|014 end end i32.const 0 @@ -6610,8 +6610,8 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 - local.tee $4 + local.get $3 + local.tee $7 i32.const 255 i32.and i32.const -1028477379 @@ -6622,83 +6622,83 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u i32.xor - local.tee $1 - local.set $6 - local.get $5 + local.tee $0 + local.set $15 + local.get $2 i32.load - local.get $1 - local.get $5 + local.get $0 + local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find - loop $while-continue|017 - local.get $0 + loop $while-continue|015 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 - local.tee $1 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $1 i32.load8_u - local.get $4 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $1 + local.get $6 i32.const -2 i32.and - local.set $0 - br $while-continue|017 + local.set $1 + br $while-continue|015 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if - local.get $0 - local.get $4 + local.get $1 + local.get $7 i32.store8 offset=1 else - local.get $5 + local.get $2 i32.load offset=16 - local.get $5 + local.get $2 i32.load offset=12 i32.eq if - local.get $5 + local.get $2 i32.load offset=20 - local.get $5 + local.get $2 i32.load offset=12 i32.const 3 i32.mul @@ -6706,17 +6706,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $5 + local.get $2 i32.load offset=4 else - local.get $5 + local.get $2 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $16 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -6726,66 +6726,66 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store + local.get $0 local.get $1 - local.get $16 i32.const 1 i32.add - local.tee $1 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $11 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $2 + local.tee $16 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $2 i32.load offset=8 - local.tee $11 - local.get $5 + local.tee $10 + local.get $2 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $12 - local.get $1 + local.set $3 + local.get $6 local.set $0 - loop $while-continue|018 - local.get $11 - local.get $12 + loop $while-continue|016 + local.get $3 + local.get $10 i32.ne if - local.get $11 + local.get $10 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $11 + local.get $10 i32.load8_u - local.tee $13 + local.tee $9 i32.store8 local.get $0 - local.get $11 + local.get $10 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $10 - local.get $16 - local.get $13 + local.get $11 + local.get $1 + local.get $9 i32.const 255 i32.and i32.const -1028477379 @@ -6796,22 +6796,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $13 - local.get $13 + local.tee $9 + local.get $9 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $13 - local.get $13 + local.tee $9 + local.get $9 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $13 - local.get $13 + local.tee $9 + local.get $9 i32.const 16 i32.shr_u i32.xor @@ -6819,10 +6819,10 @@ i32.const 2 i32.shl i32.add - local.tee $13 + local.tee $9 i32.load i32.store offset=4 - local.get $13 + local.get $9 local.get $0 i32.store local.get $0 @@ -6830,33 +6830,33 @@ i32.add local.set $0 end - local.get $11 + local.get $10 i32.const 8 i32.add - local.set $11 - br $while-continue|018 + local.set $10 + br $while-continue|016 end end - local.get $5 - local.get $10 + local.get $2 + local.get $11 i32.store - local.get $5 - local.get $10 + local.get $2 + local.get $11 call $~lib/rt/itcms/__link - local.get $5 - local.get $16 - i32.store offset=4 - local.get $5 + local.get $2 local.get $1 + i32.store offset=4 + local.get $2 + local.get $6 i32.store offset=8 - local.get $5 - local.get $1 + local.get $2 + local.get $6 call $~lib/rt/itcms/__link - local.get $5 local.get $2 + local.get $16 i32.store offset=12 - local.get $5 - local.get $5 + local.get $2 + local.get $2 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -6865,70 +6865,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.load offset=8 - local.tee $16 + local.tee $0 i32.store - local.get $5 - local.get $5 + local.get $2 + local.get $2 i32.load offset=16 local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $16 + local.get $0 local.get $1 i32.const 3 i32.shl i32.add - local.tee $1 - local.get $4 + local.tee $0 + local.get $7 i32.store8 - local.get $1 - local.get $4 + local.get $0 + local.get $7 i32.store8 offset=1 - local.get $5 - local.get $5 + local.get $2 + local.get $2 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $1 - local.get $5 + local.get $0 + local.get $2 i32.load - local.get $6 - local.get $5 + local.get $15 + local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $3 i32.load i32.store offset=4 - local.get $2 - local.get $1 + local.get $3 + 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 $9 - local.get $8 + local.get $12 + local.get $13 i32.const 20 i32.sub - local.tee $2 - local.get $2 - call $~lib/map/Map#set + local.tee $3 local.get $3 + call $~lib/map/Map#set + local.get $5 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|4 end end - local.get $5 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -6940,7 +6940,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $12 i32.load offset=20 i32.const 100 i32.ne @@ -6953,19 +6953,19 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|6 - local.get $2 + local.get $3 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.const 255 i32.and i32.const -1028477379 @@ -6976,22 +6976,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -7000,38 +7000,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find20 - loop $while-continue|021 - local.get $16 - if - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find18 + loop $while-continue|019 + local.get $2 + if + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load8_u local.get $2 + i32.load8_u + local.get $3 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find20 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find18 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|021 + local.set $2 + br $while-continue|019 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 i32.eqz if i32.const 0 @@ -7041,10 +7041,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $8 + local.get $3 call $~lib/map/Map#get - local.get $2 + local.get $3 i32.const 255 i32.and i32.const 20 @@ -7058,14 +7058,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $8 + local.get $3 call $~lib/map/Map#delete - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.const 255 i32.and i32.const -1028477379 @@ -7076,22 +7076,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -7100,38 +7100,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find23 - loop $while-continue|024 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find21 + loop $while-continue|022 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load8_u local.get $2 + i32.load8_u + local.get $3 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find23 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find21 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|024 + local.set $2 + br $while-continue|022 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 if i32.const 0 i32.const 1568 @@ -7140,14 +7140,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|6 end end - local.get $15 + local.get $8 i32.load offset=20 i32.const 50 i32.ne @@ -7160,19 +7160,19 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|8 - local.get $2 + local.get $3 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.const 255 i32.and i32.const -1028477379 @@ -7183,22 +7183,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -7207,38 +7207,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find26 - loop $while-continue|027 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find24 + loop $while-continue|025 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load8_u local.get $2 + i32.load8_u + local.get $3 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find26 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find24 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|027 + local.set $2 + br $while-continue|025 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 if i32.const 0 i32.const 1568 @@ -7247,20 +7247,20 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 - local.get $2 + local.get $8 + local.get $3 + local.get $3 i32.const 255 i32.and - local.tee $1 + local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $1 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761394 @@ -7269,22 +7269,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -7293,38 +7293,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find29 - loop $while-continue|030 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find27 + loop $while-continue|028 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load8_u local.get $2 + i32.load8_u + local.get $3 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find29 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find27 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|030 + local.set $2 + br $while-continue|028 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 i32.eqz if i32.const 0 @@ -7334,14 +7334,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $8 + local.get $3 call $~lib/map/Map#delete - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.const 255 i32.and i32.const -1028477379 @@ -7352,22 +7352,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -7376,38 +7376,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find32 - loop $while-continue|033 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find30 + loop $while-continue|031 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load8_u local.get $2 + i32.load8_u + local.get $3 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find32 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find30 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|033 + local.set $2 + br $while-continue|031 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 if i32.const 0 i32.const 1568 @@ -7416,14 +7416,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|8 end end - local.get $15 + local.get $8 i32.load offset=20 i32.const 50 i32.ne @@ -7435,9 +7435,9 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $8 call $~lib/map/Map#clear - local.get $15 + local.get $8 i32.load offset=20 if i32.const 0 @@ -7897,16 +7897,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $0 i64.const 0 i64.store - local.get $16 + local.get $0 i64.const 0 i64.store offset=8 - local.get $16 + local.get $0 i32.const 0 i32.store offset=16 - local.get $16 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7922,54 +7922,54 @@ i32.const 24 i32.const 11 call $~lib/rt/itcms/__new - local.tee $15 + local.tee $8 i32.store - local.get $15 + local.get $8 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $4 i32.store - local.get $15 + local.get $8 local.get $4 call $~lib/rt/itcms/__link - local.get $15 + local.get $8 i32.const 3 i32.store offset=4 - local.get $15 + local.get $8 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $4 i32.store offset=8 - local.get $15 + local.get $8 local.get $4 call $~lib/rt/itcms/__link - local.get $15 + local.get $8 i32.const 4 i32.store offset=12 - local.get $15 + local.get $8 i32.const 0 i32.store offset=16 - local.get $15 + local.get $8 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 $16 - local.get $15 + local.get $0 + local.get $8 i32.store loop $for-loop|1 - local.get $1 + local.get $2 i32.extend16_s i32.const 100 i32.lt_s if - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $1 + local.get $2 i32.extend16_s i32.const -1028477379 i32.mul @@ -7979,22 +7979,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -8003,38 +8003,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u - local.get $1 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|0 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 @@ -8043,19 +8043,19 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 - local.get $1 + local.get $8 + local.get $2 + local.get $2 i32.extend16_s - local.tee $4 + local.tee $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $4 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761395 @@ -8064,22 +8064,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -8088,38 +8088,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u - local.get $1 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $4 + local.get $5 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 @@ -8129,10 +8129,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 + local.get $8 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.extend16_s i32.const 10 i32.add @@ -8145,14 +8145,14 @@ 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|1 end end - local.get $15 + local.get $8 i32.load offset=20 i32.const 100 i32.ne @@ -8165,18 +8165,18 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i32.extend16_s i32.const 100 i32.lt_s if - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $1 + local.get $2 i32.extend16_s i32.const -1028477379 i32.mul @@ -8186,22 +8186,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -8210,38 +8210,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u - local.get $1 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $4 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|05 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -8251,10 +8251,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 + local.get $8 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.extend16_s i32.const 10 i32.add @@ -8267,19 +8267,19 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 - local.get $1 + local.get $8 + local.get $2 + local.get $2 i32.extend16_s - local.tee $4 + local.tee $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $4 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761395 @@ -8288,22 +8288,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -8312,38 +8312,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u - local.get $1 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $4 + local.get $5 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 @@ -8353,10 +8353,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 + local.get $8 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.extend16_s i32.const 20 i32.add @@ -8369,14 +8369,14 @@ 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|3 end end - local.get $15 + local.get $8 i32.load offset=20 i32.const 100 i32.ne @@ -8388,10 +8388,8 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $10 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -8400,16 +8398,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i32.const 0 i32.store - local.get $15 + local.get $8 i32.load offset=8 - local.set $3 - local.get $15 + local.set $11 + local.get $8 i32.load offset=16 - local.set $12 - local.get $4 + local.set $4 + local.get $2 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -8418,31 +8417,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $2 i64.const 0 i64.store - local.get $16 + local.get $2 i32.const 16 i32.const 12 call $~lib/rt/itcms/__new - local.tee $14 + local.tee $2 i32.store - local.get $14 + local.get $2 i32.const 0 i32.store - local.get $14 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $14 + local.get $2 i32.const 0 i32.store offset=4 - local.get $14 + local.get $2 i32.const 0 i32.store offset=8 - local.get $14 + local.get $2 i32.const 0 i32.store offset=12 - local.get $12 + local.get $4 i32.const 536870910 i32.gt_u if @@ -8454,63 +8453,63 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $4 i32.const 8 - local.get $12 + local.get $4 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $16 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $13 + local.tee $5 i32.store offset=4 - local.get $13 - local.get $16 + local.get $5 + local.get $7 call $~lib/memory/memory.fill - local.get $14 - local.get $13 + local.get $2 + local.get $5 i32.store - local.get $14 - local.get $13 + local.get $2 + local.get $5 call $~lib/rt/itcms/__link - local.get $14 - local.get $13 + local.get $2 + local.get $5 i32.store offset=4 - local.get $14 - local.get $16 + local.get $2 + local.get $7 i32.store offset=8 - local.get $14 - local.get $12 + local.get $2 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $14 + local.get $0 + local.get $2 i32.store loop $for-loop|0 - local.get $5 - local.get $12 - i32.lt_s + local.get $4 + local.get $6 + i32.gt_s if - local.get $3 - local.get $5 + local.get $11 + local.get $6 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $0 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $14 + local.get $2 local.get $1 - local.get $4 + local.get $0 i32.load16_s call $~lib/array/Array#__set local.get $1 @@ -8518,35 +8517,36 @@ i32.add local.set $1 end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end - local.get $14 + local.get $2 local.get $1 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $14 + 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 $0 - local.get $14 + local.get $10 + local.get $2 + local.tee $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $15 + local.get $8 call $~lib/map/Map#values - local.tee $7 + local.tee $14 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -8555,63 +8555,63 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 24 i32.const 13 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $2 i32.store - local.get $5 + local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $5 i32.store + local.get $2 local.get $5 - local.get $1 call $~lib/rt/itcms/__link - local.get $5 + local.get $2 i32.const 3 i32.store offset=4 - local.get $5 + local.get $2 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $5 i32.store offset=8 + local.get $2 local.get $5 - local.get $1 call $~lib/rt/itcms/__link - local.get $5 + local.get $2 i32.const 4 i32.store offset=12 - local.get $5 + local.get $2 i32.const 0 i32.store offset=16 - local.get $5 + 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 $4 - local.get $5 + local.get $0 + local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $9 + local.tee $12 i32.store offset=16 loop $for-loop|4 - local.get $2 - local.get $14 + local.get $3 + local.get $4 i32.load offset=12 i32.lt_s if - local.get $2 - local.tee $3 - local.get $14 + local.get $3 + local.tee $5 + local.get $4 i32.load offset=12 i32.ge_u if @@ -8622,23 +8622,23 @@ call $~lib/builtins/abort unreachable end - local.get $14 + local.get $4 i32.load offset=4 - local.get $3 + local.get $5 i32.const 1 i32.shl i32.add i32.load16_s - local.set $2 - local.get $7 - local.get $3 + local.set $3 + local.get $14 + local.get $5 call $~lib/array/Array#__get - local.set $8 - local.get $15 + local.set $13 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -8648,22 +8648,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -8672,38 +8672,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find11 - loop $while-continue|012 - local.get $16 + local.set $0 + block $__inlined_func$~lib/map/Map#find10 + loop $while-continue|011 + local.get $0 if - local.get $16 + local.get $0 i32.load offset=8 - local.tee $1 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 + local.get $0 i32.load16_u - local.get $2 + local.get $3 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find11 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find10 + local.get $6 i32.const -2 i32.and - local.set $16 - br $while-continue|012 + local.set $0 + br $while-continue|011 end end i32.const 0 - local.set $16 + local.set $0 end - local.get $16 + local.get $0 i32.eqz if i32.const 0 @@ -8713,14 +8713,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $8 i32.load - local.get $15 - i32.load offset=4 local.get $8 + i32.load offset=4 + local.get $13 i32.const 20 i32.sub - local.tee $4 + local.tee $6 i32.extend16_s i32.const -1028477379 i32.mul @@ -8730,22 +8730,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -8755,13 +8755,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/map/Map#find14 - loop $while-continue|015 + block $__inlined_func$~lib/map/Map#find13 + loop $while-continue|014 local.get $0 if local.get $0 i32.load offset=8 - local.tee $1 + local.tee $7 i32.const 1 i32.and if (result i32) @@ -8769,17 +8769,17 @@ else local.get $0 i32.load16_u - local.get $4 + local.get $6 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find14 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find13 + local.get $7 i32.const -2 i32.and local.set $0 - br $while-continue|015 + br $while-continue|014 end end i32.const 0 @@ -8806,8 +8806,8 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 - local.tee $4 + local.get $3 + local.tee $7 i32.extend16_s i32.const -1028477379 i32.mul @@ -8817,83 +8817,83 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u i32.xor - local.tee $1 - local.set $6 - local.get $5 + local.tee $0 + local.set $15 + local.get $2 i32.load - local.get $1 - local.get $5 + local.get $0 + local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find - loop $while-continue|017 - local.get $0 + loop $while-continue|015 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 - local.tee $1 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $1 i32.load16_u - local.get $4 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $1 + local.get $6 i32.const -2 i32.and - local.set $0 - br $while-continue|017 + local.set $1 + br $while-continue|015 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if - local.get $0 - local.get $4 + local.get $1 + local.get $7 i32.store16 offset=2 else - local.get $5 + local.get $2 i32.load offset=16 - local.get $5 + local.get $2 i32.load offset=12 i32.eq if - local.get $5 + local.get $2 i32.load offset=20 - local.get $5 + local.get $2 i32.load offset=12 i32.const 3 i32.mul @@ -8901,17 +8901,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $5 + local.get $2 i32.load offset=4 else - local.get $5 + local.get $2 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $16 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8921,66 +8921,66 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store + local.get $0 local.get $1 - local.get $16 i32.const 1 i32.add - local.tee $1 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $11 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $2 + local.tee $16 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $2 i32.load offset=8 - local.tee $11 - local.get $5 + local.tee $10 + local.get $2 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $12 - local.get $1 + local.set $3 + local.get $6 local.set $0 - loop $while-continue|018 - local.get $11 - local.get $12 + loop $while-continue|016 + local.get $3 + local.get $10 i32.ne if - local.get $11 + local.get $10 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $11 + local.get $10 i32.load16_s - local.tee $13 + local.tee $9 i32.store16 local.get $0 - local.get $11 + local.get $10 i32.load16_s offset=2 i32.store16 offset=2 local.get $0 - local.get $10 - local.get $16 - local.get $13 + local.get $11 + local.get $1 + local.get $9 i32.extend16_s i32.const -1028477379 i32.mul @@ -8990,22 +8990,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $13 - local.get $13 + local.tee $9 + local.get $9 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $13 - local.get $13 + local.tee $9 + local.get $9 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $13 - local.get $13 + local.tee $9 + local.get $9 i32.const 16 i32.shr_u i32.xor @@ -9013,10 +9013,10 @@ i32.const 2 i32.shl i32.add - local.tee $13 + local.tee $9 i32.load i32.store offset=4 - local.get $13 + local.get $9 local.get $0 i32.store local.get $0 @@ -9024,33 +9024,33 @@ i32.add local.set $0 end - local.get $11 + local.get $10 i32.const 8 i32.add - local.set $11 - br $while-continue|018 + local.set $10 + br $while-continue|016 end end - local.get $5 - local.get $10 + local.get $2 + local.get $11 i32.store - local.get $5 - local.get $10 + local.get $2 + local.get $11 call $~lib/rt/itcms/__link - local.get $5 - local.get $16 - i32.store offset=4 - local.get $5 + local.get $2 local.get $1 + i32.store offset=4 + local.get $2 + local.get $6 i32.store offset=8 - local.get $5 - local.get $1 + local.get $2 + local.get $6 call $~lib/rt/itcms/__link - local.get $5 local.get $2 + local.get $16 i32.store offset=12 - local.get $5 - local.get $5 + local.get $2 + local.get $2 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -9059,70 +9059,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.load offset=8 - local.tee $16 + local.tee $0 i32.store - local.get $5 - local.get $5 + local.get $2 + local.get $2 i32.load offset=16 local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $16 + local.get $0 local.get $1 i32.const 3 i32.shl i32.add - local.tee $1 - local.get $4 + local.tee $0 + local.get $7 i32.store16 - local.get $1 - local.get $4 + local.get $0 + local.get $7 i32.store16 offset=2 - local.get $5 - local.get $5 + local.get $2 + local.get $2 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $1 - local.get $5 + local.get $0 + local.get $2 i32.load - local.get $6 - local.get $5 + local.get $15 + local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $3 i32.load i32.store offset=4 - local.get $2 - local.get $1 + local.get $3 + 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 $9 - local.get $8 + local.get $12 + local.get $13 i32.const 20 i32.sub - local.tee $2 - local.get $2 - call $~lib/map/Map#set + local.tee $3 local.get $3 + call $~lib/map/Map#set + local.get $5 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|4 end end - local.get $5 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -9134,7 +9134,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $12 i32.load offset=20 i32.const 100 i32.ne @@ -9147,18 +9147,18 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|6 - local.get $2 + local.get $3 i32.extend16_s i32.const 50 i32.lt_s if - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -9168,22 +9168,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -9192,38 +9192,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find20 - loop $while-continue|021 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find18 + loop $while-continue|019 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load16_u local.get $2 + i32.load16_u + local.get $3 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find20 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find18 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|021 + local.set $2 + br $while-continue|019 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 i32.eqz if i32.const 0 @@ -9233,10 +9233,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $8 + local.get $3 call $~lib/map/Map#get - local.get $2 + local.get $3 i32.extend16_s i32.const 20 i32.add @@ -9249,14 +9249,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $8 + local.get $3 call $~lib/map/Map#delete - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -9266,22 +9266,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -9290,38 +9290,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find23 - loop $while-continue|024 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find21 + loop $while-continue|022 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load16_u local.get $2 + i32.load16_u + local.get $3 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find23 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find21 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|024 + local.set $2 + br $while-continue|022 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 if i32.const 0 i32.const 1568 @@ -9330,14 +9330,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|6 end end - local.get $15 + local.get $8 i32.load offset=20 i32.const 50 i32.ne @@ -9350,18 +9350,18 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|8 - local.get $2 + local.get $3 i32.extend16_s i32.const 50 i32.lt_s if - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -9371,22 +9371,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -9395,38 +9395,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find26 - loop $while-continue|027 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find24 + loop $while-continue|025 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load16_u local.get $2 + i32.load16_u + local.get $3 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find26 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find24 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|027 + local.set $2 + br $while-continue|025 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 if i32.const 0 i32.const 1568 @@ -9435,19 +9435,19 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 - local.get $2 + local.get $8 + local.get $3 + local.get $3 i32.extend16_s - local.tee $1 + local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $1 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761395 @@ -9456,22 +9456,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -9480,38 +9480,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find29 - loop $while-continue|030 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find27 + loop $while-continue|028 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load16_u local.get $2 + i32.load16_u + local.get $3 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find29 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find27 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|030 + local.set $2 + br $while-continue|028 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 i32.eqz if i32.const 0 @@ -9521,14 +9521,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $8 + local.get $3 call $~lib/map/Map#delete - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -9538,22 +9538,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -9562,38 +9562,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find32 - loop $while-continue|033 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find30 + loop $while-continue|031 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load16_u local.get $2 + i32.load16_u + local.get $3 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find32 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find30 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|033 + local.set $2 + br $while-continue|031 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 if i32.const 0 i32.const 1568 @@ -9602,14 +9602,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|8 end end - local.get $15 + local.get $8 i32.load offset=20 i32.const 50 i32.ne @@ -9621,9 +9621,9 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $8 call $~lib/map/Map#clear - local.get $15 + local.get $8 i32.load offset=20 if i32.const 0 @@ -10047,16 +10047,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $0 i64.const 0 i64.store - local.get $16 + local.get $0 i64.const 0 i64.store offset=8 - local.get $16 + local.get $0 i32.const 0 i32.store offset=16 - local.get $16 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10072,55 +10072,55 @@ i32.const 24 i32.const 14 call $~lib/rt/itcms/__new - local.tee $15 + local.tee $8 i32.store - local.get $15 + local.get $8 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $4 i32.store - local.get $15 + local.get $8 local.get $4 call $~lib/rt/itcms/__link - local.get $15 + local.get $8 i32.const 3 i32.store offset=4 - local.get $15 + local.get $8 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $4 i32.store offset=8 - local.get $15 + local.get $8 local.get $4 call $~lib/rt/itcms/__link - local.get $15 + local.get $8 i32.const 4 i32.store offset=12 - local.get $15 + local.get $8 i32.const 0 i32.store offset=16 - local.get $15 + local.get $8 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 $16 - local.get $15 + local.get $0 + local.get $8 i32.store loop $for-loop|1 - local.get $1 + local.get $2 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $1 + local.get $2 i32.const 65535 i32.and i32.const -1028477379 @@ -10131,22 +10131,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -10155,38 +10155,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u - local.get $1 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|0 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 @@ -10195,20 +10195,20 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 - local.get $1 + local.get $8 + local.get $2 + local.get $2 i32.const 65535 i32.and - local.tee $4 + local.tee $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $4 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761395 @@ -10217,22 +10217,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -10241,38 +10241,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u - local.get $1 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $4 + local.get $5 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 @@ -10282,10 +10282,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 + local.get $8 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 65535 i32.and i32.const 10 @@ -10299,14 +10299,14 @@ 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|1 end end - local.get $15 + local.get $8 i32.load offset=20 i32.const 100 i32.ne @@ -10319,19 +10319,19 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $1 + local.get $2 i32.const 65535 i32.and i32.const -1028477379 @@ -10342,22 +10342,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -10366,38 +10366,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u - local.get $1 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $4 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|05 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -10407,10 +10407,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 + local.get $8 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 65535 i32.and i32.const 10 @@ -10424,20 +10424,20 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 - local.get $1 + local.get $8 + local.get $2 + local.get $2 i32.const 65535 i32.and - local.tee $4 + local.tee $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $4 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761395 @@ -10446,22 +10446,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -10470,38 +10470,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u - local.get $1 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $4 + local.get $5 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 @@ -10511,10 +10511,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $1 + local.get $8 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 65535 i32.and i32.const 20 @@ -10528,14 +10528,14 @@ 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|3 end end - local.get $15 + local.get $8 i32.load offset=20 i32.const 100 i32.ne @@ -10547,10 +10547,8 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $10 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10559,16 +10557,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i32.const 0 i32.store - local.get $15 + local.get $8 i32.load offset=8 - local.set $3 - local.get $15 + local.set $11 + local.get $8 i32.load offset=16 - local.set $12 - local.get $4 + local.set $4 + local.get $2 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -10577,31 +10576,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $2 i64.const 0 i64.store - local.get $16 + local.get $2 i32.const 16 i32.const 15 call $~lib/rt/itcms/__new - local.tee $14 + local.tee $2 i32.store - local.get $14 + local.get $2 i32.const 0 i32.store - local.get $14 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $14 + local.get $2 i32.const 0 i32.store offset=4 - local.get $14 + local.get $2 i32.const 0 i32.store offset=8 - local.get $14 + local.get $2 i32.const 0 i32.store offset=12 - local.get $12 + local.get $4 i32.const 536870910 i32.gt_u if @@ -10613,63 +10612,63 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $4 i32.const 8 - local.get $12 + local.get $4 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $16 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $13 + local.tee $5 i32.store offset=4 - local.get $13 - local.get $16 + local.get $5 + local.get $7 call $~lib/memory/memory.fill - local.get $14 - local.get $13 + local.get $2 + local.get $5 i32.store - local.get $14 - local.get $13 + local.get $2 + local.get $5 call $~lib/rt/itcms/__link - local.get $14 - local.get $13 + local.get $2 + local.get $5 i32.store offset=4 - local.get $14 - local.get $16 + local.get $2 + local.get $7 i32.store offset=8 - local.get $14 - local.get $12 + local.get $2 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $14 + local.get $0 + local.get $2 i32.store loop $for-loop|0 - local.get $5 - local.get $12 - i32.lt_s + local.get $4 + local.get $6 + i32.gt_s if - local.get $3 - local.get $5 + local.get $11 + local.get $6 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $0 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $14 + local.get $2 local.get $1 - local.get $4 + local.get $0 i32.load16_u call $~lib/array/Array#__set local.get $1 @@ -10677,35 +10676,36 @@ i32.add local.set $1 end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end - local.get $14 + local.get $2 local.get $1 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $14 + 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 $0 - local.get $14 + local.get $10 + local.get $2 + local.tee $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $15 + local.get $8 call $~lib/map/Map#values - local.tee $7 + local.tee $14 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10714,63 +10714,63 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 24 i32.const 16 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $2 i32.store - local.get $5 + local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $5 i32.store + local.get $2 local.get $5 - local.get $1 call $~lib/rt/itcms/__link - local.get $5 + local.get $2 i32.const 3 i32.store offset=4 - local.get $5 + local.get $2 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $5 i32.store offset=8 + local.get $2 local.get $5 - local.get $1 call $~lib/rt/itcms/__link - local.get $5 + local.get $2 i32.const 4 i32.store offset=12 - local.get $5 + local.get $2 i32.const 0 i32.store offset=16 - local.get $5 + 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 $4 - local.get $5 + local.get $0 + local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $9 + local.tee $12 i32.store offset=16 loop $for-loop|4 - local.get $2 - local.get $14 + local.get $3 + local.get $4 i32.load offset=12 i32.lt_s if - local.get $2 - local.tee $3 - local.get $14 + local.get $3 + local.tee $5 + local.get $4 i32.load offset=12 i32.ge_u if @@ -10781,23 +10781,23 @@ call $~lib/builtins/abort unreachable end - local.get $14 + local.get $4 i32.load offset=4 - local.get $3 + local.get $5 i32.const 1 i32.shl i32.add i32.load16_u - local.set $2 - local.get $7 - local.get $3 + local.set $3 + local.get $14 + local.get $5 call $~lib/array/Array#__get - local.set $8 - local.get $15 + local.set $13 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.const 65535 i32.and i32.const -1028477379 @@ -10808,22 +10808,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -10832,38 +10832,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find11 - loop $while-continue|012 - local.get $16 + local.set $0 + block $__inlined_func$~lib/map/Map#find10 + loop $while-continue|011 + local.get $0 if - local.get $16 + local.get $0 i32.load offset=8 - local.tee $1 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 + local.get $0 i32.load16_u - local.get $2 + local.get $3 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find11 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find10 + local.get $6 i32.const -2 i32.and - local.set $16 - br $while-continue|012 + local.set $0 + br $while-continue|011 end end i32.const 0 - local.set $16 + local.set $0 end - local.get $16 + local.get $0 i32.eqz if i32.const 0 @@ -10873,14 +10873,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $8 i32.load - local.get $15 - i32.load offset=4 local.get $8 + i32.load offset=4 + local.get $13 i32.const 20 i32.sub - local.tee $4 + local.tee $6 i32.const 65535 i32.and i32.const -1028477379 @@ -10891,22 +10891,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -10916,13 +10916,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/map/Map#find14 - loop $while-continue|015 + block $__inlined_func$~lib/map/Map#find13 + loop $while-continue|014 local.get $0 if local.get $0 i32.load offset=8 - local.tee $1 + local.tee $7 i32.const 1 i32.and if (result i32) @@ -10930,17 +10930,17 @@ else local.get $0 i32.load16_u - local.get $4 + local.get $6 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find14 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find13 + local.get $7 i32.const -2 i32.and local.set $0 - br $while-continue|015 + br $while-continue|014 end end i32.const 0 @@ -10967,8 +10967,8 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 - local.tee $4 + local.get $3 + local.tee $7 i32.const 65535 i32.and i32.const -1028477379 @@ -10979,83 +10979,83 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u i32.xor - local.tee $1 - local.set $6 - local.get $5 + local.tee $0 + local.set $15 + local.get $2 i32.load - local.get $1 - local.get $5 + local.get $0 + local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find - loop $while-continue|017 - local.get $0 + loop $while-continue|015 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 - local.tee $1 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $1 i32.load16_u - local.get $4 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $1 + local.get $6 i32.const -2 i32.and - local.set $0 - br $while-continue|017 + local.set $1 + br $while-continue|015 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if - local.get $0 - local.get $4 + local.get $1 + local.get $7 i32.store16 offset=2 else - local.get $5 + local.get $2 i32.load offset=16 - local.get $5 + local.get $2 i32.load offset=12 i32.eq if - local.get $5 + local.get $2 i32.load offset=20 - local.get $5 + local.get $2 i32.load offset=12 i32.const 3 i32.mul @@ -11063,17 +11063,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $5 + local.get $2 i32.load offset=4 else - local.get $5 + local.get $2 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $16 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -11083,66 +11083,66 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store + local.get $0 local.get $1 - local.get $16 i32.const 1 i32.add - local.tee $1 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $11 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $2 + local.tee $16 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $2 i32.load offset=8 - local.tee $11 - local.get $5 + local.tee $10 + local.get $2 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $12 - local.get $1 + local.set $3 + local.get $6 local.set $0 - loop $while-continue|018 - local.get $11 - local.get $12 + loop $while-continue|016 + local.get $3 + local.get $10 i32.ne if - local.get $11 + local.get $10 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $11 + local.get $10 i32.load16_u - local.tee $13 + local.tee $9 i32.store16 local.get $0 - local.get $11 + local.get $10 i32.load16_u offset=2 i32.store16 offset=2 local.get $0 - local.get $10 - local.get $16 - local.get $13 + local.get $11 + local.get $1 + local.get $9 i32.const 65535 i32.and i32.const -1028477379 @@ -11153,22 +11153,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $13 - local.get $13 + local.tee $9 + local.get $9 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $13 - local.get $13 + local.tee $9 + local.get $9 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $13 - local.get $13 + local.tee $9 + local.get $9 i32.const 16 i32.shr_u i32.xor @@ -11176,10 +11176,10 @@ i32.const 2 i32.shl i32.add - local.tee $13 + local.tee $9 i32.load i32.store offset=4 - local.get $13 + local.get $9 local.get $0 i32.store local.get $0 @@ -11187,33 +11187,33 @@ i32.add local.set $0 end - local.get $11 + local.get $10 i32.const 8 i32.add - local.set $11 - br $while-continue|018 + local.set $10 + br $while-continue|016 end end - local.get $5 - local.get $10 + local.get $2 + local.get $11 i32.store - local.get $5 - local.get $10 + local.get $2 + local.get $11 call $~lib/rt/itcms/__link - local.get $5 - local.get $16 - i32.store offset=4 - local.get $5 + local.get $2 local.get $1 + i32.store offset=4 + local.get $2 + local.get $6 i32.store offset=8 - local.get $5 - local.get $1 + local.get $2 + local.get $6 call $~lib/rt/itcms/__link - local.get $5 local.get $2 + local.get $16 i32.store offset=12 - local.get $5 - local.get $5 + local.get $2 + local.get $2 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -11222,70 +11222,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.load offset=8 - local.tee $16 + local.tee $0 i32.store - local.get $5 - local.get $5 + local.get $2 + local.get $2 i32.load offset=16 local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $16 + local.get $0 local.get $1 i32.const 3 i32.shl i32.add - local.tee $1 - local.get $4 + local.tee $0 + local.get $7 i32.store16 - local.get $1 - local.get $4 + local.get $0 + local.get $7 i32.store16 offset=2 - local.get $5 - local.get $5 + local.get $2 + local.get $2 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $1 - local.get $5 + local.get $0 + local.get $2 i32.load - local.get $6 - local.get $5 + local.get $15 + local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $3 i32.load i32.store offset=4 - local.get $2 - local.get $1 + local.get $3 + 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 $9 - local.get $8 + local.get $12 + local.get $13 i32.const 20 i32.sub - local.tee $2 - local.get $2 - call $~lib/map/Map#set + local.tee $3 local.get $3 + call $~lib/map/Map#set + local.get $5 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|4 end end - local.get $5 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -11297,7 +11297,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $12 i32.load offset=20 i32.const 100 i32.ne @@ -11310,19 +11310,19 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|6 - local.get $2 + local.get $3 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.const 65535 i32.and i32.const -1028477379 @@ -11333,22 +11333,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -11357,38 +11357,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find20 - loop $while-continue|021 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find18 + loop $while-continue|019 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load16_u local.get $2 + i32.load16_u + local.get $3 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find20 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find18 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|021 + local.set $2 + br $while-continue|019 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 i32.eqz if i32.const 0 @@ -11398,10 +11398,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $8 + local.get $3 call $~lib/map/Map#get - local.get $2 + local.get $3 i32.const 65535 i32.and i32.const 20 @@ -11415,14 +11415,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $8 + local.get $3 call $~lib/map/Map#delete - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.const 65535 i32.and i32.const -1028477379 @@ -11433,22 +11433,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -11457,38 +11457,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find23 - loop $while-continue|024 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find21 + loop $while-continue|022 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load16_u local.get $2 + i32.load16_u + local.get $3 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find23 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find21 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|024 + local.set $2 + br $while-continue|022 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 if i32.const 0 i32.const 1568 @@ -11497,14 +11497,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|6 end end - local.get $15 + local.get $8 i32.load offset=20 i32.const 50 i32.ne @@ -11517,19 +11517,19 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|8 - local.get $2 + local.get $3 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.const 65535 i32.and i32.const -1028477379 @@ -11540,22 +11540,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -11564,38 +11564,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find26 - loop $while-continue|027 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find24 + loop $while-continue|025 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load16_u local.get $2 + i32.load16_u + local.get $3 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find26 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find24 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|027 + local.set $2 + br $while-continue|025 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 if i32.const 0 i32.const 1568 @@ -11604,20 +11604,20 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 - local.get $2 + local.get $8 + local.get $3 + local.get $3 i32.const 65535 i32.and - local.tee $1 + local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $1 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761395 @@ -11626,22 +11626,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -11650,38 +11650,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find29 - loop $while-continue|030 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find27 + loop $while-continue|028 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load16_u local.get $2 + i32.load16_u + local.get $3 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find29 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find27 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|030 + local.set $2 + br $while-continue|028 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 i32.eqz if i32.const 0 @@ -11691,14 +11691,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $8 + local.get $3 call $~lib/map/Map#delete - local.get $15 + local.get $8 i32.load - local.get $15 + local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.const 65535 i32.and i32.const -1028477379 @@ -11709,22 +11709,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -11733,38 +11733,38 @@ i32.shl i32.add i32.load - local.set $16 - block $__inlined_func$~lib/map/Map#find32 - loop $while-continue|033 - local.get $16 + local.set $2 + block $__inlined_func$~lib/map/Map#find30 + loop $while-continue|031 + local.get $2 if - local.get $16 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - i32.load16_u local.get $2 + i32.load16_u + local.get $3 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find32 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find30 + local.get $4 i32.const -2 i32.and - local.set $16 - br $while-continue|033 + local.set $2 + br $while-continue|031 end end i32.const 0 - local.set $16 + local.set $2 end - local.get $16 + local.get $2 if i32.const 0 i32.const 1568 @@ -11773,14 +11773,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|8 end end - local.get $15 + local.get $8 i32.load offset=20 i32.const 50 i32.ne @@ -11792,9 +11792,9 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $8 call $~lib/map/Map#clear - local.get $15 + local.get $8 i32.load offset=20 if i32.const 0 @@ -13634,16 +13634,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i64.const 0 i64.store - local.get $4 + local.get $3 i64.const 0 i64.store offset=8 - local.get $4 + local.get $3 i32.const 0 i32.store offset=16 - local.get $4 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13652,60 +13652,60 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $5 i32.const 0 i32.store - local.get $16 + local.get $5 i32.const 24 i32.const 17 call $~lib/rt/itcms/__new - local.tee $14 + local.tee $7 i32.store - local.get $14 + local.get $7 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $16 + local.tee $5 i32.store - local.get $14 - local.get $16 + local.get $7 + local.get $5 call $~lib/rt/itcms/__link - local.get $14 + local.get $7 i32.const 3 i32.store offset=4 - local.get $14 + local.get $7 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $16 + local.tee $5 i32.store offset=8 - local.get $14 - local.get $16 + local.get $7 + local.get $5 call $~lib/rt/itcms/__link - local.get $14 + local.get $7 i32.const 4 i32.store offset=12 - local.get $14 + local.get $7 i32.const 0 i32.store offset=16 - local.get $14 + 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 $4 - local.get $14 + local.get $3 + local.get $7 i32.store loop $for-loop|0 - local.get $1 + local.get $2 i32.const 100 i32.lt_u if - local.get $14 + local.get $7 i32.load - local.get $14 + local.get $7 i32.load offset=4 - local.get $1 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13714,22 +13714,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $5 + local.get $5 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $5 + local.get $5 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $5 + local.get $5 i32.const 16 i32.shr_u i32.xor @@ -13738,36 +13738,36 @@ i32.shl i32.add i32.load - local.set $13 + local.set $8 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $13 + local.get $8 if - local.get $13 + local.get $8 i32.load offset=8 - local.tee $16 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $13 + local.get $2 + local.get $8 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $16 + local.get $5 i32.const -2 i32.and - local.set $13 + local.set $8 br $while-continue|0 end end i32.const 0 - local.set $13 + local.set $8 end - local.get $13 + local.get $8 if i32.const 0 i32.const 1568 @@ -13776,17 +13776,17 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.get $1 - local.get $1 + local.get $7 + local.get $2 + local.get $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $14 + local.get $7 i32.load - local.get $14 + local.get $7 i32.load offset=4 - local.get $1 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13795,22 +13795,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $5 + local.get $5 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $5 + local.get $5 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $5 + local.get $5 i32.const 16 i32.shr_u i32.xor @@ -13819,36 +13819,36 @@ i32.shl i32.add i32.load - local.set $13 + local.set $8 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $13 + local.get $8 if - local.get $13 + local.get $8 i32.load offset=8 - local.tee $16 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $13 + local.get $2 + local.get $8 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $16 + local.get $5 i32.const -2 i32.and - local.set $13 + local.set $8 br $while-continue|02 end end i32.const 0 - local.set $13 + local.set $8 end - local.get $13 + local.get $8 i32.eqz if i32.const 0 @@ -13858,10 +13858,10 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.get $1 + local.get $7 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 10 i32.add i32.ne @@ -13873,14 +13873,14 @@ 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 - local.get $14 + local.get $7 i32.load offset=20 i32.const 100 i32.ne @@ -13893,17 +13893,17 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|1 - local.get $1 + local.get $2 i32.const 100 i32.lt_u if - local.get $14 + local.get $7 i32.load - local.get $14 + local.get $7 i32.load offset=4 - local.get $1 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13912,22 +13912,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $5 + local.get $5 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $5 + local.get $5 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $5 + local.get $5 i32.const 16 i32.shr_u i32.xor @@ -13936,36 +13936,36 @@ i32.shl i32.add i32.load - local.set $13 + local.set $8 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $13 + local.get $8 if - local.get $13 + local.get $8 i32.load offset=8 - local.tee $16 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $13 + local.get $2 + local.get $8 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $16 + local.get $5 i32.const -2 i32.and - local.set $13 + local.set $8 br $while-continue|05 end end i32.const 0 - local.set $13 + local.set $8 end - local.get $13 + local.get $8 i32.eqz if i32.const 0 @@ -13975,10 +13975,10 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.get $1 + local.get $7 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 10 i32.add i32.ne @@ -13990,17 +13990,17 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.get $1 - local.get $1 + local.get $7 + local.get $2 + local.get $2 i32.const 20 i32.add call $~lib/map/Map#set - local.get $14 + local.get $7 i32.load - local.get $14 + local.get $7 i32.load offset=4 - local.get $1 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14009,22 +14009,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $5 + local.get $5 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $5 + local.get $5 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $5 + local.get $5 i32.const 16 i32.shr_u i32.xor @@ -14033,36 +14033,36 @@ i32.shl i32.add i32.load - local.set $13 + local.set $8 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $13 + local.get $8 if - local.get $13 + local.get $8 i32.load offset=8 - local.tee $16 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $13 + local.get $2 + local.get $8 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $16 + local.get $5 i32.const -2 i32.and - local.set $13 + local.set $8 br $while-continue|08 end end i32.const 0 - local.set $13 + local.set $8 end - local.get $13 + local.get $8 i32.eqz if i32.const 0 @@ -14072,10 +14072,10 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.get $1 + local.get $7 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 20 i32.add i32.ne @@ -14087,14 +14087,14 @@ 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|1 end end - local.get $14 + local.get $7 i32.load offset=20 i32.const 100 i32.ne @@ -14106,10 +14106,8 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $8 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14118,16 +14116,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $2 i32.const 0 i32.store - local.get $14 + local.get $7 i32.load offset=8 - local.set $13 - local.get $14 + local.set $3 + local.get $7 i32.load offset=16 - local.set $11 - local.get $16 + local.set $10 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14136,31 +14134,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i64.const 0 i64.store - local.get $4 + local.get $5 i32.const 16 i32.const 18 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $9 i32.store - local.get $12 + local.get $9 i32.const 0 i32.store - local.get $12 + local.get $9 i32.const 0 call $~lib/rt/itcms/__link - local.get $12 + local.get $9 i32.const 0 i32.store offset=4 - local.get $12 + local.get $9 i32.const 0 i32.store offset=8 - local.get $12 + local.get $9 i32.const 0 i32.store offset=12 - local.get $11 + local.get $10 i32.const 268435455 i32.gt_u if @@ -14172,99 +14170,99 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.const 8 - local.get $11 + local.get $10 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $4 + local.tee $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $15 + local.tee $6 i32.store offset=4 - local.get $15 - local.get $4 + local.get $6 + local.get $5 call $~lib/memory/memory.fill - local.get $12 - local.get $15 + local.get $9 + local.get $6 i32.store - local.get $12 - local.get $15 + local.get $9 + local.get $6 call $~lib/rt/itcms/__link - local.get $12 - local.get $15 + local.get $9 + local.get $6 i32.store offset=4 - local.get $12 - local.get $4 + local.get $9 + local.get $5 i32.store offset=8 - local.get $12 - local.get $11 + local.get $9 + local.get $10 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 - local.get $12 + local.get $2 + local.get $9 i32.store loop $for-loop|01 - local.get $0 - local.get $11 + local.get $4 + local.get $10 i32.lt_s if - local.get $13 - local.get $0 + local.get $3 + local.get $4 i32.const 12 i32.mul i32.add - local.tee $16 + local.tee $2 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $12 - local.get $1 - local.get $16 + local.get $9 + local.get $0 + local.get $2 i32.load call $~lib/array/Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 end - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|01 end end - local.get $12 - local.get $1 + local.get $9 + local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $12 - local.get $1 + local.get $9 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $12 + local.get $8 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $7 call $~lib/map/Map#values - local.tee $8 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $5 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14273,63 +14271,63 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 24 i32.const 19 call $~lib/rt/itcms/__new - local.tee $15 + local.tee $6 i32.store - local.get $15 + local.get $6 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store - local.get $15 - local.get $1 + local.get $6 + local.get $2 call $~lib/rt/itcms/__link - local.get $15 + local.get $6 i32.const 3 i32.store offset=4 - local.get $15 + local.get $6 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store offset=8 - local.get $15 - local.get $1 + local.get $6 + local.get $2 call $~lib/rt/itcms/__link - local.get $15 + local.get $6 i32.const 4 i32.store offset=12 - local.get $15 + local.get $6 i32.const 0 i32.store offset=16 - local.get $15 + local.get $6 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 - local.get $15 + local.get $5 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $10 + local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $2 - local.get $12 + local.get $1 + local.get $9 i32.load offset=12 i32.lt_s if - local.get $2 - local.tee $3 - local.get $12 + local.get $1 + local.tee $4 + local.get $9 i32.load offset=12 i32.ge_u if @@ -14340,23 +14338,23 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $9 i32.load offset=4 - local.get $3 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.set $2 - local.get $8 - local.get $3 + local.set $1 + local.get $13 + local.get $4 call $~lib/array/Array#__get - local.set $9 - local.get $14 + local.set $12 + local.get $7 i32.load - local.get $14 + local.get $7 i32.load offset=4 - local.get $2 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14365,22 +14363,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -14389,36 +14387,36 @@ i32.shl i32.add i32.load - local.set $4 - block $__inlined_func$~lib/map/Map#find11 - loop $while-continue|012 - local.get $4 + local.set $3 + block $__inlined_func$~lib/map/Map#find10 + loop $while-continue|011 + local.get $3 if - local.get $4 + local.get $3 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.load i32.eq end - br_if $__inlined_func$~lib/map/Map#find11 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find10 + local.get $2 i32.const -2 i32.and - local.set $4 - br $while-continue|012 + local.set $3 + br $while-continue|011 end end i32.const 0 - local.set $4 + local.set $3 end - local.get $4 + local.get $3 i32.eqz if i32.const 0 @@ -14428,14 +14426,14 @@ call $~lib/builtins/abort unreachable end - local.get $14 + local.get $7 i32.load - local.get $14 + local.get $7 i32.load offset=4 - local.get $9 + local.get $12 i32.const 20 i32.sub - local.tee $16 + local.tee $5 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14444,22 +14442,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -14468,36 +14466,36 @@ i32.shl i32.add i32.load - local.set $13 - block $__inlined_func$~lib/map/Map#find14 - loop $while-continue|015 - local.get $13 + local.set $8 + block $__inlined_func$~lib/map/Map#find13 + loop $while-continue|014 + local.get $8 if - local.get $13 + local.get $8 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 - local.get $13 + local.get $5 + local.get $8 i32.load i32.eq end - br_if $__inlined_func$~lib/map/Map#find14 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find13 + local.get $2 i32.const -2 i32.and - local.set $13 - br $while-continue|015 + local.set $8 + br $while-continue|014 end end i32.const 0 - local.set $13 + local.set $8 end - local.get $13 + local.get $8 i32.eqz if i32.const 0 @@ -14518,10 +14516,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $15 + local.get $6 i32.load - local.get $2 - local.tee $4 + local.get $1 + local.tee $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14530,77 +14528,77 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor - local.tee $7 - local.get $15 + local.tee $14 + local.get $6 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find17 - loop $while-continue|018 - local.get $1 + local.set $2 + block $__inlined_func$~lib/map/Map#find15 + loop $while-continue|016 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $13 + local.tee $8 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $1 + local.get $3 + local.get $2 i32.load i32.eq end - br_if $__inlined_func$~lib/map/Map#find17 - local.get $13 + br_if $__inlined_func$~lib/map/Map#find15 + local.get $8 i32.const -2 i32.and - local.set $1 - br $while-continue|018 + local.set $2 + br $while-continue|016 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=4 else - local.get $15 + local.get $6 i32.load offset=16 - local.get $15 + local.get $6 i32.load offset=12 i32.eq if - local.get $15 + local.get $6 i32.load offset=20 - local.get $15 + local.get $6 i32.load offset=12 i32.const 3 i32.mul @@ -14608,17 +14606,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $15 + local.get $6 i32.load offset=4 else - local.get $15 + local.get $6 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -14628,66 +14626,66 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 - local.get $13 + local.get $2 + local.get $8 i32.const 1 i32.add - local.tee $1 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $16 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $6 + local.tee $15 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $15 + local.get $6 i32.load offset=8 - local.tee $2 - local.get $15 + local.tee $1 + local.get $6 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $5 - local.get $1 + local.set $16 + local.get $2 local.set $0 - loop $while-continue|019 - local.get $2 - local.get $5 + loop $while-continue|017 + local.get $1 + local.get $16 i32.ne if - local.get $2 + local.get $1 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $2 + local.get $1 i32.load - local.tee $11 + local.tee $10 i32.store local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.store offset=4 local.get $0 - local.get $16 - local.get $13 - local.get $11 + local.get $5 + local.get $8 + local.get $10 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14696,22 +14694,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $11 - local.get $11 + local.tee $10 + local.get $10 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $11 - local.get $11 + local.tee $10 + local.get $10 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $11 - local.get $11 + local.tee $10 + local.get $10 i32.const 16 i32.shr_u i32.xor @@ -14719,10 +14717,10 @@ i32.const 2 i32.shl i32.add - local.tee $11 + local.tee $10 i32.load i32.store offset=8 - local.get $11 + local.get $10 local.get $0 i32.store local.get $0 @@ -14730,33 +14728,33 @@ i32.add local.set $0 end - local.get $2 + local.get $1 i32.const 12 i32.add - local.set $2 - br $while-continue|019 + local.set $1 + br $while-continue|017 end end - local.get $15 - local.get $16 + local.get $6 + local.get $5 i32.store - local.get $15 - local.get $16 + local.get $6 + local.get $5 call $~lib/rt/itcms/__link - local.get $15 - local.get $13 + local.get $6 + local.get $8 i32.store offset=4 - local.get $15 - local.get $1 + local.get $6 + local.get $2 i32.store offset=8 - local.get $15 - local.get $1 + local.get $6 + local.get $2 call $~lib/rt/itcms/__link - local.get $15 local.get $6 - i32.store offset=12 - local.get $15 local.get $15 + i32.store offset=12 + local.get $6 + local.get $6 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -14765,70 +14763,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $15 + local.get $6 i32.load offset=8 - local.tee $13 + local.tee $8 i32.store - local.get $15 - local.get $15 + local.get $6 + local.get $6 i32.load offset=16 - local.tee $1 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $13 - local.get $1 + local.get $8 + local.get $2 i32.const 12 i32.mul i32.add - local.tee $1 - local.get $4 + local.tee $2 + local.get $3 i32.store - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=4 - local.get $15 - local.get $15 + local.get $6 + local.get $6 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $1 - local.get $15 + local.get $2 + local.get $6 i32.load - local.get $7 - local.get $15 + local.get $14 + local.get $6 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $1 i32.load i32.store offset=8 - local.get $2 local.get $1 + local.get $2 i32.store end 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 $11 + local.get $12 i32.const 20 i32.sub - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 call $~lib/map/Map#set - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|2 end end - local.get $15 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -14840,7 +14838,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -14853,17 +14851,17 @@ unreachable end i32.const 0 - local.set $2 + local.set $1 loop $for-loop|3 - local.get $2 + local.get $1 i32.const 50 i32.lt_u if - local.get $14 + local.get $7 i32.load - local.get $14 + local.get $7 i32.load offset=4 - local.get $2 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14872,22 +14870,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -14896,36 +14894,36 @@ i32.shl i32.add i32.load - local.set $4 - block $__inlined_func$~lib/map/Map#find21 - loop $while-continue|022 - local.get $4 + local.set $3 + block $__inlined_func$~lib/map/Map#find19 + loop $while-continue|020 + local.get $3 if - local.get $4 + local.get $3 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.load i32.eq end - br_if $__inlined_func$~lib/map/Map#find21 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find19 + local.get $2 i32.const -2 i32.and - local.set $4 - br $while-continue|022 + local.set $3 + br $while-continue|020 end end i32.const 0 - local.set $4 + local.set $3 end - local.get $4 + local.get $3 i32.eqz if i32.const 0 @@ -14935,10 +14933,10 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.get $2 + local.get $7 + local.get $1 call $~lib/map/Map#get - local.get $2 + local.get $1 i32.const 20 i32.add i32.ne @@ -14950,14 +14948,14 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.get $2 + local.get $7 + local.get $1 call $~lib/map/Map#delete - local.get $14 + local.get $7 i32.load - local.get $14 + local.get $7 i32.load offset=4 - local.get $2 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14966,22 +14964,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -14990,36 +14988,36 @@ i32.shl i32.add i32.load - local.set $4 - block $__inlined_func$~lib/map/Map#find24 - loop $while-continue|025 - local.get $4 + local.set $3 + block $__inlined_func$~lib/map/Map#find22 + loop $while-continue|023 + local.get $3 if - local.get $4 + local.get $3 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.load i32.eq end - br_if $__inlined_func$~lib/map/Map#find24 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find22 + local.get $2 i32.const -2 i32.and - local.set $4 - br $while-continue|025 + local.set $3 + br $while-continue|023 end end i32.const 0 - local.set $4 + local.set $3 end - local.get $4 + local.get $3 if i32.const 0 i32.const 1568 @@ -15028,14 +15026,14 @@ 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 - local.get $14 + local.get $7 i32.load offset=20 i32.const 50 i32.ne @@ -15048,17 +15046,17 @@ unreachable end i32.const 0 - local.set $2 + local.set $1 loop $for-loop|4 - local.get $2 + local.get $1 i32.const 50 i32.lt_u if - local.get $14 + local.get $7 i32.load - local.get $14 + local.get $7 i32.load offset=4 - local.get $2 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15067,22 +15065,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -15091,36 +15089,36 @@ i32.shl i32.add i32.load - local.set $4 - block $__inlined_func$~lib/map/Map#find27 - loop $while-continue|028 - local.get $4 + local.set $3 + block $__inlined_func$~lib/map/Map#find25 + loop $while-continue|026 + local.get $3 if - local.get $4 + local.get $3 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.load i32.eq end - br_if $__inlined_func$~lib/map/Map#find27 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find25 + local.get $2 i32.const -2 i32.and - local.set $4 - br $while-continue|028 + local.set $3 + br $while-continue|026 end end i32.const 0 - local.set $4 + local.set $3 end - local.get $4 + local.get $3 if i32.const 0 i32.const 1568 @@ -15129,17 +15127,17 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.get $2 - local.get $2 + local.get $7 + local.get $1 + local.get $1 i32.const 10 i32.add call $~lib/map/Map#set - local.get $14 + local.get $7 i32.load - local.get $14 + local.get $7 i32.load offset=4 - local.get $2 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15148,22 +15146,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -15172,36 +15170,36 @@ i32.shl i32.add i32.load - local.set $4 - block $__inlined_func$~lib/map/Map#find30 - loop $while-continue|031 - local.get $4 + local.set $3 + block $__inlined_func$~lib/map/Map#find28 + loop $while-continue|029 + local.get $3 if - local.get $4 + local.get $3 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.load i32.eq end - br_if $__inlined_func$~lib/map/Map#find30 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find28 + local.get $2 i32.const -2 i32.and - local.set $4 - br $while-continue|031 + local.set $3 + br $while-continue|029 end end i32.const 0 - local.set $4 + local.set $3 end - local.get $4 + local.get $3 i32.eqz if i32.const 0 @@ -15211,14 +15209,14 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.get $2 + local.get $7 + local.get $1 call $~lib/map/Map#delete - local.get $14 + local.get $7 i32.load - local.get $14 + local.get $7 i32.load offset=4 - local.get $2 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15227,22 +15225,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -15251,36 +15249,36 @@ i32.shl i32.add i32.load - local.set $4 - block $__inlined_func$~lib/map/Map#find33 - loop $while-continue|034 - local.get $4 + local.set $3 + block $__inlined_func$~lib/map/Map#find31 + loop $while-continue|032 + local.get $3 if - local.get $4 + local.get $3 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.load i32.eq end - br_if $__inlined_func$~lib/map/Map#find33 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find31 + local.get $2 i32.const -2 i32.and - local.set $4 - br $while-continue|034 + local.set $3 + br $while-continue|032 end end i32.const 0 - local.set $4 + local.set $3 end - local.get $4 + local.get $3 if i32.const 0 i32.const 1568 @@ -15289,14 +15287,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|4 end end - local.get $14 + local.get $7 i32.load offset=20 i32.const 50 i32.ne @@ -15308,9 +15306,9 @@ call $~lib/builtins/abort unreachable end - local.get $14 + local.get $7 call $~lib/map/Map#clear - local.get $14 + local.get $7 i32.load offset=20 if i32.const 0 @@ -15891,8 +15889,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i64) + (local $4 i64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) @@ -15900,9 +15898,9 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) + (local $13 i64) (local $14 i32) - (local $15 i64) + (local $15 i32) (local $16 i32) (local $17 i32) global.get $~lib/memory/__stack_pointer @@ -15933,41 +15931,41 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 0 i32.store - local.get $3 + local.get $5 i32.const 24 i32.const 20 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store - local.get $6 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 i32.store - local.get $6 + local.get $5 local.get $3 call $~lib/rt/itcms/__link - local.get $6 + local.get $5 i32.const 3 i32.store offset=4 - local.get $6 + local.get $5 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 i32.store offset=8 - local.get $6 + local.get $5 local.get $3 call $~lib/rt/itcms/__link - local.get $6 + local.get $5 i32.const 4 i32.store offset=12 - local.get $6 + local.get $5 i32.const 0 i32.store offset=16 - local.get $6 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -15975,15 +15973,15 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - local.get $6 + local.get $5 i32.store loop $for-loop|0 - local.get $5 + local.get $4 i64.const 100 i64.lt_s if - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -15993,15 +15991,15 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $5 local.get $5 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16012,10 +16010,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $5 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -16028,14 +16026,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i64.const 1 i64.add - local.set $5 + local.set $4 br $for-loop|0 end end - local.get $6 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -16048,14 +16046,14 @@ unreachable end i64.const 0 - local.set $5 + local.set $4 loop $for-loop|1 - local.get $5 + local.get $4 i64.const 100 i64.lt_s if - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16066,10 +16064,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $5 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -16082,15 +16080,15 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $5 local.get $5 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 20 i32.add call $~lib/map/Map#set - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16101,10 +16099,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $5 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -16117,14 +16115,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i64.const 1 i64.add - local.set $5 + local.set $4 br $for-loop|1 end end - local.get $6 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -16137,7 +16135,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $9 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -16146,16 +16144,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i32.const 0 i32.store - local.get $6 + local.get $5 i32.load offset=8 - local.set $9 - local.get $6 + local.set $11 + local.get $5 i32.load offset=16 - local.set $10 - local.get $3 + local.set $2 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -16164,31 +16162,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $3 i32.const 16 i32.const 21 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store - local.get $7 + local.get $6 i32.const 0 i32.store - local.get $7 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link - local.get $7 + local.get $6 i32.const 0 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store offset=8 - local.get $7 + local.get $6 i32.const 0 i32.store offset=12 - local.get $10 + local.get $2 i32.const 134217727 i32.gt_u if @@ -16200,51 +16198,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $2 i32.const 8 - local.get $10 + local.get $2 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $2 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $3 i32.store offset=4 - local.get $8 - local.get $2 - call $~lib/memory/memory.fill + local.get $3 local.get $7 - local.get $8 + call $~lib/memory/memory.fill + local.get $6 + local.get $3 i32.store - local.get $7 - local.get $8 + local.get $6 + local.get $3 call $~lib/rt/itcms/__link - local.get $7 - local.get $8 + local.get $6 + local.get $3 i32.store offset=4 + local.get $6 local.get $7 - local.get $2 i32.store offset=8 - local.get $7 - local.get $10 + local.get $6 + 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 $3 - local.get $7 + local.get $1 + local.get $6 i32.store loop $for-loop|01 - local.get $4 - local.get $10 - i32.lt_s + local.get $2 + local.get $8 + i32.gt_s if - local.get $9 - local.get $4 + local.get $11 + local.get $8 i32.const 4 i32.shl i32.add @@ -16254,42 +16252,42 @@ i32.and i32.eqz if - local.get $7 - local.get $1 + local.get $6 + local.get $0 local.get $3 i64.load call $~lib/array/Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 end - local.get $4 + local.get $8 i32.const 1 i32.add - local.set $4 + local.set $8 br $for-loop|01 end end - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $7 + local.get $9 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 call $~lib/map/Map#values - local.tee $16 + local.tee $14 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.tee $2 @@ -16308,34 +16306,34 @@ i32.const 24 i32.const 22 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $0 i32.store - local.get $4 local.get $3 + local.get $0 call $~lib/rt/itcms/__link - local.get $4 + local.get $3 i32.const 3 i32.store offset=4 - local.get $4 + local.get $3 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $0 i32.store offset=8 - local.get $4 local.get $3 + local.get $0 call $~lib/rt/itcms/__link - local.get $4 + local.get $3 i32.const 4 i32.store offset=12 - local.get $4 + local.get $3 i32.const 0 i32.store offset=16 - local.get $4 + local.get $3 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -16343,20 +16341,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - local.get $4 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $13 + local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $11 - local.get $7 + local.get $10 + local.get $6 i32.load offset=12 i32.lt_s if - local.get $11 - local.get $7 + local.get $10 + local.get $6 i32.load offset=12 i32.ge_u if @@ -16367,20 +16365,20 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 i32.load offset=4 - local.get $11 + local.get $10 i32.const 3 i32.shl i32.add i64.load - local.set $5 - local.get $16 - local.get $11 + local.set $4 + local.get $14 + local.get $10 call $~lib/array/Array#__get - local.set $14 - local.get $6 + local.set $12 local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16391,8 +16389,8 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $14 + local.get $5 + local.get $12 i32.const 20 i32.sub i64.extend_i32_s @@ -16417,7 +16415,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $5 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16427,7 +16425,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $5 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16438,81 +16436,81 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor - local.tee $2 - local.set $17 - local.get $4 + local.tee $0 + local.set $15 + local.get $3 i32.load - local.get $2 - local.get $4 + local.get $0 + local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=16 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 - local.get $1 + 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 $1 + local.set $0 br $while-continue|0 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if - local.get $1 - local.get $5 + local.get $0 + local.get $4 i64.store offset=8 else - local.get $4 + local.get $3 i32.load offset=16 - local.get $4 + local.get $3 i32.load offset=12 i32.eq if - local.get $4 + local.get $3 i32.load offset=20 - local.get $4 + local.get $3 i32.load offset=12 i32.const 3 i32.mul @@ -16520,17 +16518,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $4 + local.get $3 i32.load offset=4 else - local.get $4 + local.get $3 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -16540,66 +16538,66 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 - local.get $9 + local.get $0 + local.get $8 i32.const 1 i32.add - local.tee $2 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $12 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $1 + local.tee $16 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 - local.get $4 + local.tee $7 + local.get $3 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $10 - local.get $2 + local.set $17 + local.get $1 local.set $0 - loop $while-continue|02 - local.get $3 - local.get $10 + loop $while-continue|00 + local.get $7 + local.get $17 i32.ne if - local.get $3 + local.get $7 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $3 + local.get $7 i64.load - local.tee $15 + local.tee $13 i64.store local.get $0 - local.get $3 + local.get $7 i64.load offset=8 i64.store offset=8 local.get $0 - local.get $12 local.get $9 - local.get $15 + local.get $8 + local.get $13 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16609,7 +16607,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $15 + local.get $13 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16620,22 +16618,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -16643,10 +16641,10 @@ i32.const 2 i32.shl i32.add - local.tee $8 + local.tee $2 i32.load i32.store offset=16 - local.get $8 + local.get $2 local.get $0 i32.store local.get $0 @@ -16654,33 +16652,33 @@ i32.add local.set $0 end - local.get $3 + local.get $7 i32.const 24 i32.add - local.set $3 - br $while-continue|02 + local.set $7 + br $while-continue|00 end end - local.get $4 - local.get $12 + local.get $3 + local.get $9 i32.store - local.get $4 - local.get $12 - call $~lib/rt/itcms/__link - local.get $4 + local.get $3 local.get $9 + call $~lib/rt/itcms/__link + local.get $3 + local.get $8 i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $4 - local.get $2 - call $~lib/rt/itcms/__link - local.get $4 + local.get $3 local.get $1 + call $~lib/rt/itcms/__link + local.get $3 + local.get $16 i32.store offset=12 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -16689,70 +16687,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.load offset=8 - local.tee $9 + local.tee $0 i32.store - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.load offset=16 - local.tee $2 + local.tee $8 i32.const 1 i32.add i32.store offset=16 - local.get $9 - local.get $2 + local.get $0 + local.get $8 i32.const 24 i32.mul i32.add - local.tee $2 - local.get $5 - i64.store - local.get $2 - local.get $5 - i64.store offset=8 + local.tee $0 local.get $4 + i64.store + local.get $0 local.get $4 + i64.store offset=8 + local.get $3 + local.get $3 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $2 - local.get $4 + local.get $0 + local.get $3 i32.load - local.get $17 - local.get $4 + local.get $15 + local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $2 i32.load i32.store offset=16 - local.get $3 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 $13 - local.get $14 + local.get $11 + local.get $12 i32.const 20 i32.sub - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 call $~lib/map/Map#set - 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 $4 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -16764,7 +16762,7 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -16777,14 +16775,14 @@ unreachable end i64.const 0 - local.set $5 + local.set $4 loop $for-loop|3 - local.get $5 + local.get $4 i64.const 50 i64.lt_s if - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16795,10 +16793,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $5 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -16811,11 +16809,11 @@ call $~lib/builtins/abort unreachable end - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#delete - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -16825,14 +16823,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i64.const 1 i64.add - local.set $5 + local.set $4 br $for-loop|3 end end - local.get $6 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -16845,14 +16843,14 @@ unreachable end i64.const 0 - local.set $5 + local.set $4 loop $for-loop|4 - local.get $5 + local.get $4 i64.const 50 i64.lt_s if - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -16862,15 +16860,15 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $5 local.get $5 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16881,11 +16879,11 @@ call $~lib/builtins/abort unreachable end - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#delete - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -16895,14 +16893,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i64.const 1 i64.add - local.set $5 + local.set $4 br $for-loop|4 end end - local.get $6 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -16914,9 +16912,9 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $5 call $~lib/map/Map#clear - local.get $6 + local.get $5 i32.load offset=20 if i32.const 0 @@ -17427,8 +17425,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i64) + (local $4 i64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) @@ -17436,9 +17434,9 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) + (local $13 i64) (local $14 i32) - (local $15 i64) + (local $15 i32) (local $16 i32) (local $17 i32) global.get $~lib/memory/__stack_pointer @@ -17469,41 +17467,41 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 0 i32.store - local.get $3 + local.get $5 i32.const 24 i32.const 23 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store - local.get $6 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 i32.store - local.get $6 + local.get $5 local.get $3 call $~lib/rt/itcms/__link - local.get $6 + local.get $5 i32.const 3 i32.store offset=4 - local.get $6 + local.get $5 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 i32.store offset=8 - local.get $6 + local.get $5 local.get $3 call $~lib/rt/itcms/__link - local.get $6 + local.get $5 i32.const 4 i32.store offset=12 - local.get $6 + local.get $5 i32.const 0 i32.store offset=16 - local.get $6 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -17511,15 +17509,15 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - local.get $6 + local.get $5 i32.store loop $for-loop|0 - local.get $5 + local.get $4 i64.const 100 i64.lt_u if - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -17529,15 +17527,15 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $5 local.get $5 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -17548,10 +17546,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $5 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -17564,14 +17562,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i64.const 1 i64.add - local.set $5 + local.set $4 br $for-loop|0 end end - local.get $6 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -17584,14 +17582,14 @@ unreachable end i64.const 0 - local.set $5 + local.set $4 loop $for-loop|1 - local.get $5 + local.get $4 i64.const 100 i64.lt_u if - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -17602,10 +17600,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $5 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -17618,15 +17616,15 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $5 local.get $5 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 20 i32.add call $~lib/map/Map#set - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -17637,10 +17635,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $5 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -17653,14 +17651,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i64.const 1 i64.add - local.set $5 + local.set $4 br $for-loop|1 end end - local.get $6 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -17673,7 +17671,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $9 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17682,16 +17680,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i32.const 0 i32.store - local.get $6 + local.get $5 i32.load offset=8 - local.set $9 - local.get $6 + local.set $11 + local.get $5 i32.load offset=16 - local.set $10 - local.get $3 + local.set $2 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -17700,31 +17698,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $3 i32.const 16 i32.const 24 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store - local.get $7 + local.get $6 i32.const 0 i32.store - local.get $7 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link - local.get $7 + local.get $6 i32.const 0 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store offset=8 - local.get $7 + local.get $6 i32.const 0 i32.store offset=12 - local.get $10 + local.get $2 i32.const 134217727 i32.gt_u if @@ -17736,51 +17734,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $2 i32.const 8 - local.get $10 + local.get $2 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $2 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $3 i32.store offset=4 - local.get $8 - local.get $2 - call $~lib/memory/memory.fill + local.get $3 local.get $7 - local.get $8 + call $~lib/memory/memory.fill + local.get $6 + local.get $3 i32.store - local.get $7 - local.get $8 + local.get $6 + local.get $3 call $~lib/rt/itcms/__link - local.get $7 - local.get $8 + local.get $6 + local.get $3 i32.store offset=4 + local.get $6 local.get $7 - local.get $2 i32.store offset=8 - local.get $7 - local.get $10 + local.get $6 + 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 $3 - local.get $7 + local.get $1 + local.get $6 i32.store loop $for-loop|01 - local.get $4 - local.get $10 - i32.lt_s + local.get $2 + local.get $8 + i32.gt_s if - local.get $9 - local.get $4 + local.get $11 + local.get $8 i32.const 4 i32.shl i32.add @@ -17790,42 +17788,42 @@ i32.and i32.eqz if - local.get $7 - local.get $1 + local.get $6 + local.get $0 local.get $3 i64.load call $~lib/array/Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 end - local.get $4 + local.get $8 i32.const 1 i32.add - local.set $4 + local.set $8 br $for-loop|01 end end - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $7 + local.get $9 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 call $~lib/map/Map#values - local.tee $16 + local.tee $14 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.tee $2 @@ -17844,34 +17842,34 @@ i32.const 24 i32.const 25 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $0 i32.store - local.get $4 local.get $3 + local.get $0 call $~lib/rt/itcms/__link - local.get $4 + local.get $3 i32.const 3 i32.store offset=4 - local.get $4 + local.get $3 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $0 i32.store offset=8 - local.get $4 local.get $3 + local.get $0 call $~lib/rt/itcms/__link - local.get $4 + local.get $3 i32.const 4 i32.store offset=12 - local.get $4 + local.get $3 i32.const 0 i32.store offset=16 - local.get $4 + local.get $3 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -17879,20 +17877,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - local.get $4 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $13 + local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $11 - local.get $7 + local.get $10 + local.get $6 i32.load offset=12 i32.lt_s if - local.get $11 - local.get $7 + local.get $10 + local.get $6 i32.load offset=12 i32.ge_u if @@ -17903,20 +17901,20 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 i32.load offset=4 - local.get $11 + local.get $10 i32.const 3 i32.shl i32.add i64.load - local.set $5 - local.get $16 - local.get $11 + local.set $4 + local.get $14 + local.get $10 call $~lib/array/Array#__get - local.set $14 - local.get $6 + local.set $12 local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -17927,8 +17925,8 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $14 + local.get $5 + local.get $12 i32.const 20 i32.sub i64.extend_i32_s @@ -17953,7 +17951,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $5 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17963,7 +17961,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $5 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -17974,81 +17972,81 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor - local.tee $2 - local.set $17 - local.get $4 + local.tee $0 + local.set $15 + local.get $3 i32.load - local.get $2 - local.get $4 + local.get $0 + local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=16 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 - local.get $1 + 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 $1 + local.set $0 br $while-continue|0 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if - local.get $1 - local.get $5 + local.get $0 + local.get $4 i64.store offset=8 else - local.get $4 + local.get $3 i32.load offset=16 - local.get $4 + local.get $3 i32.load offset=12 i32.eq if - local.get $4 + local.get $3 i32.load offset=20 - local.get $4 + local.get $3 i32.load offset=12 i32.const 3 i32.mul @@ -18056,17 +18054,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $4 + local.get $3 i32.load offset=4 else - local.get $4 + local.get $3 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -18076,66 +18074,66 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 - local.get $9 + local.get $0 + local.get $8 i32.const 1 i32.add - local.tee $2 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $12 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $1 + local.tee $16 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 - local.get $4 + local.tee $7 + local.get $3 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $10 - local.get $2 + local.set $17 + local.get $1 local.set $0 - loop $while-continue|02 - local.get $3 - local.get $10 + loop $while-continue|00 + local.get $7 + local.get $17 i32.ne if - local.get $3 + local.get $7 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $3 + local.get $7 i64.load - local.tee $15 + local.tee $13 i64.store local.get $0 - local.get $3 + local.get $7 i64.load offset=8 i64.store offset=8 local.get $0 - local.get $12 local.get $9 - local.get $15 + local.get $8 + local.get $13 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -18145,7 +18143,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $15 + local.get $13 i64.const 32 i64.shr_u i32.wrap_i64 @@ -18156,22 +18154,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -18179,10 +18177,10 @@ i32.const 2 i32.shl i32.add - local.tee $8 + local.tee $2 i32.load i32.store offset=16 - local.get $8 + local.get $2 local.get $0 i32.store local.get $0 @@ -18190,33 +18188,33 @@ i32.add local.set $0 end - local.get $3 + local.get $7 i32.const 24 i32.add - local.set $3 - br $while-continue|02 + local.set $7 + br $while-continue|00 end end - local.get $4 - local.get $12 + local.get $3 + local.get $9 i32.store - local.get $4 - local.get $12 - call $~lib/rt/itcms/__link - local.get $4 + local.get $3 local.get $9 + call $~lib/rt/itcms/__link + local.get $3 + local.get $8 i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $4 - local.get $2 - call $~lib/rt/itcms/__link - local.get $4 + local.get $3 local.get $1 + call $~lib/rt/itcms/__link + local.get $3 + local.get $16 i32.store offset=12 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -18225,70 +18223,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.load offset=8 - local.tee $9 + local.tee $0 i32.store - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.load offset=16 - local.tee $2 + local.tee $8 i32.const 1 i32.add i32.store offset=16 - local.get $9 - local.get $2 + local.get $0 + local.get $8 i32.const 24 i32.mul i32.add - local.tee $2 - local.get $5 - i64.store - local.get $2 - local.get $5 - i64.store offset=8 + local.tee $0 local.get $4 + i64.store + local.get $0 local.get $4 + i64.store offset=8 + local.get $3 + local.get $3 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $2 - local.get $4 + local.get $0 + local.get $3 i32.load - local.get $17 - local.get $4 + local.get $15 + local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $2 i32.load i32.store offset=16 - local.get $3 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 $13 - local.get $14 + local.get $11 + local.get $12 i32.const 20 i32.sub - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 call $~lib/map/Map#set - 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 $4 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -18300,7 +18298,7 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -18313,14 +18311,14 @@ unreachable end i64.const 0 - local.set $5 + local.set $4 loop $for-loop|3 - local.get $5 + local.get $4 i64.const 50 i64.lt_u if - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -18331,10 +18329,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $5 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -18347,11 +18345,11 @@ call $~lib/builtins/abort unreachable end - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#delete - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -18361,14 +18359,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i64.const 1 i64.add - local.set $5 + local.set $4 br $for-loop|3 end end - local.get $6 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -18381,14 +18379,14 @@ unreachable end i64.const 0 - local.set $5 + local.set $4 loop $for-loop|4 - local.get $5 + local.get $4 i64.const 50 i64.lt_u if - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -18398,15 +18396,15 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $5 local.get $5 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -18417,11 +18415,11 @@ call $~lib/builtins/abort unreachable end - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#delete - local.get $6 local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -18431,14 +18429,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i64.const 1 i64.add - local.set $5 + local.set $4 br $for-loop|4 end end - local.get $6 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -18450,9 +18448,9 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $5 call $~lib/map/Map#clear - local.get $6 + local.get $5 i32.load offset=20 if i32.const 0 @@ -19369,7 +19367,6 @@ local.set $11 local.get $17 i32.load offset=16 - local.tee $10 local.set $5 local.get $1 local.tee $0 @@ -19457,7 +19454,7 @@ i32.store loop $for-loop|01 local.get $4 - local.get $10 + local.get $5 i32.lt_s if local.get $11 @@ -19465,7 +19462,7 @@ i32.const 12 i32.mul i32.add - local.tee $5 + local.tee $16 i32.load offset=8 i32.const 1 i32.and @@ -19476,7 +19473,7 @@ i32.const 1 i32.add local.set $2 - local.get $5 + local.get $16 f32.load local.set $6 local.get $0 @@ -19499,12 +19496,12 @@ local.get $0 i32.const 1 i32.add - local.tee $5 + local.tee $16 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity local.get $1 - local.get $5 + local.get $16 i32.store offset=12 end local.get $1 @@ -19671,8 +19668,8 @@ i32.add i32.load local.set $1 - block $__inlined_func$~lib/map/Map#find11 - loop $while-continue|012 + block $__inlined_func$~lib/map/Map#find10 + loop $while-continue|011 local.get $1 if local.get $1 @@ -19688,12 +19685,12 @@ f32.load f32.eq end - br_if $__inlined_func$~lib/map/Map#find11 + br_if $__inlined_func$~lib/map/Map#find10 local.get $16 i32.const -2 i32.and local.set $1 - br $while-continue|012 + br $while-continue|011 end end i32.const 0 @@ -19752,8 +19749,8 @@ i32.add i32.load local.set $1 - block $__inlined_func$~lib/map/Map#find14 - loop $while-continue|015 + block $__inlined_func$~lib/map/Map#find13 + loop $while-continue|014 local.get $1 if local.get $1 @@ -19769,12 +19766,12 @@ f32.load f32.eq end - br_if $__inlined_func$~lib/map/Map#find14 + br_if $__inlined_func$~lib/map/Map#find13 local.get $16 i32.const -2 i32.and local.set $1 - br $while-continue|015 + br $while-continue|014 end end i32.const 0 @@ -19842,8 +19839,8 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/map/Map#find17 - loop $while-continue|018 + block $__inlined_func$~lib/map/Map#find15 + loop $while-continue|016 local.get $0 if local.get $0 @@ -19859,12 +19856,12 @@ f32.load f32.eq end - br_if $__inlined_func$~lib/map/Map#find17 + br_if $__inlined_func$~lib/map/Map#find15 local.get $4 i32.const -2 i32.and local.set $0 - br $while-continue|018 + br $while-continue|016 end end i32.const 0 @@ -19948,7 +19945,7 @@ local.set $1 local.get $4 local.set $0 - loop $while-continue|019 + loop $while-continue|017 local.get $1 local.get $15 i32.ne @@ -20019,7 +20016,7 @@ i32.const 12 i32.add local.set $15 - br $while-continue|019 + br $while-continue|017 end end local.get $2 @@ -20183,8 +20180,8 @@ i32.add i32.load local.set $1 - block $__inlined_func$~lib/map/Map#find21 - loop $while-continue|022 + block $__inlined_func$~lib/map/Map#find19 + loop $while-continue|020 local.get $1 if local.get $1 @@ -20200,12 +20197,12 @@ f32.load f32.eq end - br_if $__inlined_func$~lib/map/Map#find21 + br_if $__inlined_func$~lib/map/Map#find19 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|022 + br $while-continue|020 end end i32.const 0 @@ -20279,8 +20276,8 @@ i32.add i32.load local.set $1 - block $__inlined_func$~lib/map/Map#find24 - loop $while-continue|025 + block $__inlined_func$~lib/map/Map#find22 + loop $while-continue|023 local.get $1 if local.get $1 @@ -20296,12 +20293,12 @@ f32.load f32.eq end - br_if $__inlined_func$~lib/map/Map#find24 + br_if $__inlined_func$~lib/map/Map#find22 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|025 + br $while-continue|023 end end i32.const 0 @@ -20381,8 +20378,8 @@ i32.add i32.load local.set $1 - block $__inlined_func$~lib/map/Map#find27 - loop $while-continue|028 + block $__inlined_func$~lib/map/Map#find25 + loop $while-continue|026 local.get $1 if local.get $1 @@ -20398,12 +20395,12 @@ f32.load f32.eq end - br_if $__inlined_func$~lib/map/Map#find27 + br_if $__inlined_func$~lib/map/Map#find25 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|028 + br $while-continue|026 end end i32.const 0 @@ -20464,8 +20461,8 @@ i32.add i32.load local.set $1 - block $__inlined_func$~lib/map/Map#find30 - loop $while-continue|031 + block $__inlined_func$~lib/map/Map#find28 + loop $while-continue|029 local.get $1 if local.get $1 @@ -20481,12 +20478,12 @@ f32.load f32.eq end - br_if $__inlined_func$~lib/map/Map#find30 + br_if $__inlined_func$~lib/map/Map#find28 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|031 + br $while-continue|029 end end i32.const 0 @@ -20544,8 +20541,8 @@ i32.add i32.load local.set $1 - block $__inlined_func$~lib/map/Map#find33 - loop $while-continue|034 + block $__inlined_func$~lib/map/Map#find31 + loop $while-continue|032 local.get $1 if local.get $1 @@ -20561,12 +20558,12 @@ f32.load f32.eq end - br_if $__inlined_func$~lib/map/Map#find33 + br_if $__inlined_func$~lib/map/Map#find31 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|034 + br $while-continue|032 end end i32.const 0 @@ -21129,11 +21126,11 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i64) + (local $8 i32) (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i32) + (local $12 i64) (local $13 i32) (local $14 i32) (local $15 i32) @@ -21150,16 +21147,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $15 + local.tee $6 i64.const 0 i64.store - local.get $15 + local.get $6 i64.const 0 i64.store offset=8 - local.get $15 + local.get $6 i32.const 0 i32.store offset=16 - local.get $15 + local.get $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21175,50 +21172,50 @@ i32.const 24 i32.const 29 call $~lib/rt/itcms/__new - local.tee $17 + local.tee $5 i32.store - local.get $17 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $2 i32.store - local.get $17 + local.get $5 local.get $2 call $~lib/rt/itcms/__link - local.get $17 + local.get $5 i32.const 3 i32.store offset=4 - local.get $17 + local.get $5 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $2 i32.store offset=8 - local.get $17 + local.get $5 local.get $2 call $~lib/rt/itcms/__link - local.get $17 + local.get $5 i32.const 4 i32.store offset=12 - local.get $17 + local.get $5 i32.const 0 i32.store offset=16 - local.get $17 + 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 $15 - local.get $17 + local.get $6 + local.get $5 i32.store loop $for-loop|0 - local.get $18 + local.get $4 f64.const 100 f64.lt if - local.get $17 - local.get $18 + local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -21228,15 +21225,15 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 - local.get $18 + 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 $17 - local.get $18 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -21247,10 +21244,10 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 + local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $18 + local.get $4 i32.trunc_f64_s i32.const 10 i32.add @@ -21263,14 +21260,14 @@ call $~lib/builtins/abort unreachable end - local.get $18 + local.get $4 f64.const 1 f64.add - local.set $18 + local.set $4 br $for-loop|0 end end - local.get $17 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -21283,14 +21280,14 @@ unreachable end f64.const 0 - local.set $18 + local.set $4 loop $for-loop|1 - local.get $18 + local.get $4 f64.const 100 f64.lt if - local.get $17 - local.get $18 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -21301,10 +21298,10 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 + local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $18 + local.get $4 i32.trunc_f64_s i32.const 10 i32.add @@ -21317,15 +21314,15 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 - local.get $18 + 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 $17 - local.get $18 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -21336,10 +21333,10 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 + local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $18 + local.get $4 i32.trunc_f64_s i32.const 20 i32.add @@ -21352,14 +21349,14 @@ call $~lib/builtins/abort unreachable end - local.get $18 + local.get $4 f64.const 1 f64.add - local.set $18 + local.set $4 br $for-loop|1 end end - local.get $17 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -21372,7 +21369,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $14 + local.tee $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21384,13 +21381,12 @@ local.tee $2 i32.const 0 i32.store - local.get $17 + local.get $5 i32.load offset=8 - local.set $3 - local.get $17 + local.set $0 + local.get $5 i32.load offset=16 - local.tee $0 - local.set $13 + local.set $9 local.get $2 i32.const 8 i32.sub @@ -21400,31 +21396,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $15 + local.tee $6 i64.const 0 i64.store - local.get $15 + local.get $6 i32.const 16 i32.const 30 call $~lib/rt/itcms/__new - local.tee $16 + local.tee $7 i32.store - local.get $16 + local.get $7 i32.const 0 i32.store - local.get $16 + local.get $7 i32.const 0 call $~lib/rt/itcms/__link - local.get $16 + local.get $7 i32.const 0 i32.store offset=4 - local.get $16 + local.get $7 i32.const 0 i32.store offset=8 - local.get $16 + local.get $7 i32.const 0 i32.store offset=12 - local.get $13 + local.get $9 i32.const 134217727 i32.gt_u if @@ -21436,55 +21432,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $13 + local.get $9 i32.const 8 - local.get $13 + local.get $9 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $15 + local.tee $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $10 i32.store offset=4 - local.get $12 - local.get $15 + local.get $10 + local.get $6 call $~lib/memory/memory.fill - local.get $16 - local.get $12 + local.get $7 + local.get $10 i32.store - local.get $16 - local.get $12 + local.get $7 + local.get $10 call $~lib/rt/itcms/__link - local.get $16 - local.get $12 + local.get $7 + local.get $10 i32.store offset=4 - local.get $16 - local.get $15 + local.get $7 + local.get $6 i32.store offset=8 - local.get $16 - local.get $13 + local.get $7 + 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 $2 - local.get $16 + local.get $7 i32.store loop $for-loop|01 - local.get $0 - local.get $10 - i32.gt_s + local.get $8 + local.get $9 + i32.lt_s if - local.get $3 - local.get $10 + local.get $0 + local.get $8 i32.const 4 i32.shl i32.add - local.tee $15 + local.tee $6 i32.load offset=12 i32.const 1 i32.and @@ -21495,11 +21491,11 @@ i32.const 1 i32.add local.set $1 - local.get $15 + local.get $6 f64.load - local.set $18 + local.set $4 local.get $2 - local.get $16 + local.get $7 i32.load offset=12 i32.ge_u if @@ -21514,53 +21510,53 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $7 local.get $2 i32.const 1 i32.add - local.tee $15 + local.tee $6 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity - local.get $16 - local.get $15 + local.get $7 + local.get $6 i32.store offset=12 end - local.get $16 + local.get $7 i32.load offset=4 local.get $2 i32.const 3 i32.shl i32.add - local.get $18 + local.get $4 f64.store end - local.get $10 + local.get $8 i32.const 1 i32.add - local.set $10 + local.set $8 br $for-loop|01 end end - local.get $16 + local.get $7 local.get $1 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $16 + local.get $7 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 $14 - local.get $16 + local.get $3 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $5 call $~lib/map/Map#values - local.tee $5 + local.tee $16 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -21618,16 +21614,16 @@ i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $7 + local.tee $14 i32.store offset=16 loop $for-loop|2 - local.get $9 - local.get $16 + local.get $11 + local.get $7 i32.load offset=12 i32.lt_s if - local.get $9 - local.get $16 + local.get $11 + local.get $7 i32.load offset=12 i32.ge_u if @@ -21638,20 +21634,20 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $7 i32.load offset=4 - local.get $9 + local.get $11 i32.const 3 i32.shl i32.add f64.load - local.set $18 - local.get $5 - local.get $9 + local.set $4 + local.get $16 + local.get $11 call $~lib/array/Array#__get - local.set $6 - local.get $17 - local.get $18 + local.set $15 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -21662,8 +21658,8 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $6 + local.get $5 + local.get $15 i32.const 20 i32.sub f64.convert_i32_s @@ -21688,9 +21684,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $18 + local.get $4 i64.reinterpret_f64 - local.tee $8 + local.tee $12 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21700,7 +21696,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $8 + local.get $12 i64.const 32 i64.shr_u i32.wrap_i64 @@ -21731,7 +21727,7 @@ i32.shr_u i32.xor local.tee $1 - local.set $13 + local.set $17 local.get $3 i32.load local.get $1 @@ -21742,39 +21738,39 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=16 - local.tee $1 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $18 - local.get $0 + local.get $4 + local.get $1 f64.load f64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $1 + local.get $6 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|0 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if - local.get $0 - local.get $18 + local.get $1 + local.get $4 f64.store offset=8 else local.get $3 @@ -21803,7 +21799,7 @@ i32.const 1 i32.or end - local.set $15 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -21817,14 +21813,14 @@ i64.const 0 i64.store local.get $1 - local.get $15 + local.get $6 i32.const 1 i32.add local.tee $1 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $13 i32.store global.get $~lib/memory/__stack_pointer local.get $1 @@ -21832,7 +21828,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $12 + local.tee $9 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -21840,7 +21836,7 @@ i32.store offset=4 local.get $3 i32.load offset=8 - local.tee $11 + local.tee $2 local.get $3 i32.load offset=16 i32.const 24 @@ -21849,32 +21845,32 @@ local.set $10 local.get $1 local.set $0 - loop $while-continue|02 + loop $while-continue|00 + local.get $2 local.get $10 - local.get $11 i32.ne if - local.get $11 + local.get $2 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $11 + local.get $2 f64.load - local.tee $4 + local.tee $18 f64.store local.get $0 - local.get $11 + local.get $2 f64.load offset=8 f64.store offset=8 local.get $0 - local.get $2 - local.get $15 - local.get $4 + local.get $13 + local.get $6 + local.get $18 i64.reinterpret_f64 - local.tee $8 + local.tee $12 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21884,7 +21880,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $8 + local.get $12 i64.const 32 i64.shr_u i32.wrap_i64 @@ -21895,22 +21891,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $14 - local.get $14 + local.tee $8 + local.get $8 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $14 - local.get $14 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $14 - local.get $14 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u i32.xor @@ -21918,10 +21914,10 @@ i32.const 2 i32.shl i32.add - local.tee $14 + local.tee $8 i32.load i32.store offset=16 - local.get $14 + local.get $8 local.get $0 i32.store local.get $0 @@ -21929,21 +21925,21 @@ i32.add local.set $0 end - local.get $11 + local.get $2 i32.const 24 i32.add - local.set $11 - br $while-continue|02 + local.set $2 + br $while-continue|00 end end local.get $3 - local.get $2 + local.get $13 i32.store local.get $3 - local.get $2 + local.get $13 call $~lib/rt/itcms/__link local.get $3 - local.get $15 + local.get $6 i32.store offset=4 local.get $3 local.get $1 @@ -21952,7 +21948,7 @@ local.get $1 call $~lib/rt/itcms/__link local.get $3 - local.get $12 + local.get $9 i32.store offset=12 local.get $3 local.get $3 @@ -21966,7 +21962,7 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.load offset=8 - local.tee $15 + local.tee $6 i32.store local.get $3 local.get $3 @@ -21975,16 +21971,16 @@ i32.const 1 i32.add i32.store offset=16 - local.get $15 + local.get $6 local.get $1 i32.const 24 i32.mul i32.add local.tee $1 - local.get $18 + local.get $4 f64.store local.get $1 - local.get $18 + local.get $4 f64.store offset=8 local.get $3 local.get $3 @@ -21995,7 +21991,7 @@ local.get $1 local.get $3 i32.load - local.get $13 + local.get $17 local.get $3 i32.load offset=4 i32.and @@ -22013,17 +22009,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $6 + local.get $14 + local.get $15 i32.const 20 i32.sub local.tee $2 local.get $2 call $~lib/map/Map#set - local.get $9 + local.get $11 i32.const 1 i32.add - local.set $9 + local.set $11 br $for-loop|2 end end @@ -22039,7 +22035,7 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $14 i32.load offset=20 i32.const 100 i32.ne @@ -22052,14 +22048,14 @@ unreachable end f64.const 0 - local.set $18 + local.set $4 loop $for-loop|3 - local.get $18 + local.get $4 f64.const 50 f64.lt if - local.get $17 - local.get $18 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -22070,10 +22066,10 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 + local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $18 + local.get $4 i32.trunc_f64_s i32.const 20 i32.add @@ -22086,11 +22082,11 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 + local.get $5 + local.get $4 call $~lib/map/Map#delete - local.get $17 - local.get $18 + local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -22100,14 +22096,14 @@ call $~lib/builtins/abort unreachable end - local.get $18 + local.get $4 f64.const 1 f64.add - local.set $18 + local.set $4 br $for-loop|3 end end - local.get $17 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -22120,14 +22116,14 @@ unreachable end f64.const 0 - local.set $18 + local.set $4 loop $for-loop|4 - local.get $18 + local.get $4 f64.const 50 f64.lt if - local.get $17 - local.get $18 + local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -22137,15 +22133,15 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 - local.get $18 + 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 $17 - local.get $18 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -22156,11 +22152,11 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 + local.get $5 + local.get $4 call $~lib/map/Map#delete - local.get $17 - local.get $18 + local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -22170,14 +22166,14 @@ call $~lib/builtins/abort unreachable end - local.get $18 + local.get $4 f64.const 1 f64.add - local.set $18 + local.set $4 br $for-loop|4 end end - local.get $17 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -22189,9 +22185,9 @@ call $~lib/builtins/abort unreachable end - local.get $17 + local.get $5 call $~lib/map/Map#clear - local.get $17 + local.get $5 i32.load offset=20 if i32.const 0 diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index 646c4aeba9..88f95280d1 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -1,19 +1,18 @@ (module (type $f64_=>_f64 (func (param f64) (result f64))) - (type $f32_f32_f32_=>_i32 (func (param f32 f32 f32) (result i32))) (type $f64_f64_f64_=>_i32 (func (param f64 f64 f64) (result i32))) + (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_f32_=>_i32 (func (param f32 f32 f32 f32) (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 $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))) (type $none_=>_none (func)) (type $f64_i32_=>_f64 (func (param f64 i32) (result f64))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $f32_i32_f32_=>_i32 (func (param f32 i32 f32) (result i32))) (type $i64_=>_i32 (func (param i64) (result i32))) (type $i64_=>_none (func (param i64))) (type $f64_f64_i32_=>_f64 (func (param f64 f64 i32) (result f64))) @@ -571,85 +570,6 @@ end i32.const 1 ) - (func $std/math/test_scalbnf (param $0 f32) (param $1 i32) (param $2 f32) (result i32) - local.get $1 - i32.const 127 - i32.gt_s - if (result f32) - local.get $0 - f32.const 1701411834604692317316873e14 - f32.mul - local.set $0 - local.get $1 - i32.const 127 - i32.sub - local.tee $1 - i32.const 127 - i32.gt_s - if (result f32) - local.get $1 - i32.const 127 - i32.sub - local.tee $1 - i32.const 127 - local.get $1 - i32.const 127 - i32.lt_s - select - local.set $1 - local.get $0 - f32.const 1701411834604692317316873e14 - f32.mul - else - local.get $0 - end - else - local.get $1 - i32.const -126 - i32.lt_s - if (result f32) - local.get $0 - f32.const 1.9721522630525295e-31 - f32.mul - local.set $0 - local.get $1 - i32.const 102 - i32.add - local.tee $1 - i32.const -126 - i32.lt_s - if (result f32) - local.get $1 - i32.const 102 - i32.add - local.tee $1 - i32.const -126 - local.get $1 - i32.const -126 - i32.gt_s - select - local.set $1 - local.get $0 - f32.const 1.9721522630525295e-31 - f32.mul - else - local.get $0 - end - else - local.get $0 - end - end - local.get $1 - i32.const 127 - i32.add - i32.const 23 - i32.shl - f32.reinterpret_i32 - f32.mul - local.get $2 - f32.const 0 - call $std/math/check - ) (func $~lib/math/NativeMath.acos (param $0 f64) (result f64) (local $1 f64) (local $2 i32) @@ -3619,12 +3539,13 @@ (local $4 i64) (local $5 i64) (local $6 i64) - (local $7 i32) + (local $7 i64) (local $8 i64) - (local $9 i64) + (local $9 i32) (local $10 i64) (local $11 i64) - (local $12 f64) + (local $12 i64) + (local $13 f64) local.get $0 i64.const 9223372036854775807 i64.and @@ -3632,7 +3553,11 @@ i64.shr_u i64.const 1045 i64.sub - local.tee $4 + local.tee $2 + i64.const 63 + i64.and + local.set $1 + local.get $2 i64.const 6 i64.shr_s i32.wrap_i64 @@ -3640,209 +3565,208 @@ i32.shl i32.const 5440 i32.add - local.tee $7 + local.tee $9 i64.load - local.set $6 - local.get $7 + local.set $2 + local.get $9 i64.load offset=8 local.set $3 - local.get $7 + local.get $9 i64.load offset=16 - local.set $1 - local.get $4 - i64.const 63 - i64.and - local.tee $4 + local.set $4 + local.get $1 i64.const 0 i64.ne - if - local.get $6 - local.get $4 + if (result i64) + local.get $2 + local.get $1 i64.shl local.get $3 i64.const 64 - local.get $4 + local.get $1 i64.sub - local.tee $2 + local.tee $5 i64.shr_u i64.or - local.set $6 + local.set $2 local.get $3 - local.get $4 - i64.shl local.get $1 - local.get $2 + i64.shl + local.get $4 + local.get $5 i64.shr_u i64.or local.set $3 - local.get $1 local.get $4 + local.get $1 i64.shl - local.get $7 + local.get $9 i64.load offset=24 - local.get $2 + local.get $5 i64.shr_u i64.or - local.set $1 + else + local.get $4 end + i64.const 32 + i64.shr_u local.get $0 i64.const 4503599627370495 i64.and i64.const 4503599627370496 i64.or - local.tee $4 - i64.const 4294967295 - i64.and - local.tee $2 - local.get $3 + local.tee $6 i64.const 32 i64.shr_u - local.tee $8 i64.mul + local.set $7 local.get $3 i64.const 4294967295 i64.and - local.tee $5 - local.get $2 + local.tee $4 + local.get $6 + i64.const 4294967295 + i64.and + local.tee $1 i64.mul - local.tee $9 - i64.const 32 - i64.shr_u - i64.add - local.set $3 - local.get $5 + local.set $8 local.get $4 + local.get $6 i64.const 32 i64.shr_u - local.tee $5 + local.tee $4 i64.mul + local.get $1 local.get $3 + i64.const 32 + i64.shr_u + local.tee $3 + i64.mul + local.get $8 + i64.const 32 + i64.shr_u + i64.add + local.tee $1 i64.const 4294967295 i64.and i64.add - local.set $2 - local.get $5 - local.get $8 - i64.mul + local.set $5 local.get $3 + local.get $4 + i64.mul + local.get $1 i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $5 i64.const 32 i64.shr_u i64.add global.set $~lib/math/res128_hi - local.get $4 - i64.const 32 - i64.shr_s - local.get $1 - i64.const 32 - i64.shr_u - i64.mul - local.tee $3 - local.get $9 + local.get $7 + local.get $8 i64.const 4294967295 i64.and - local.get $2 + local.get $5 i64.const 32 i64.shl i64.add i64.add - local.set $1 - local.get $1 - local.get $3 + local.tee $1 + local.get $7 i64.lt_u i64.extend_i32_u global.get $~lib/math/res128_hi - local.get $4 + local.get $2 local.get $6 i64.mul i64.add i64.add - local.tee $8 + local.tee $4 i64.const 2 i64.shl local.get $1 i64.const 62 i64.shr_u i64.or - local.tee $6 + local.tee $11 i64.const 63 i64.shr_s - local.tee $4 + local.tee $12 + local.get $1 + i64.const 2 + i64.shl + i64.xor + local.set $6 + i64.const 64 + local.get $11 + local.get $12 i64.const 1 i64.shr_s - local.get $6 i64.xor local.tee $2 i64.clz - local.set $3 + local.tee $10 + i64.sub + local.set $1 local.get $2 - local.get $3 + local.get $10 i64.shl - local.get $4 + local.get $6 local.get $1 - i64.const 2 - i64.shl - i64.xor - local.tee $5 - i64.const 64 - local.get $3 - i64.sub i64.shr_u i64.or - local.tee $1 + local.tee $7 i64.const 4294967295 i64.and - local.set $2 - local.get $1 + local.tee $1 + i64.const 560513588 + i64.mul + local.set $8 + local.get $7 i64.const 32 i64.shr_u - local.tee $9 + local.tee $2 i64.const 560513588 i64.mul - local.get $2 + local.get $1 i64.const 3373259426 i64.mul - local.get $2 - i64.const 560513588 - i64.mul - local.tee $10 + local.get $8 i64.const 32 i64.shr_u i64.add - local.tee $11 + local.tee $1 i64.const 4294967295 i64.and i64.add - local.set $2 - local.get $9 + local.set $5 + local.get $2 i64.const 3373259426 i64.mul - local.get $11 + local.get $1 i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $5 i64.const 32 i64.shr_u i64.add global.set $~lib/math/res128_hi - local.get $10 + local.get $8 i64.const 4294967295 i64.and - local.get $2 + local.get $5 i64.const 32 i64.shl i64.add local.tee $2 - local.get $1 + local.get $7 f64.convert_i64_u f64.const 3.753184150245214e-04 f64.mul - local.get $5 - local.get $3 + local.get $6 + local.get $10 i64.shl f64.convert_i64_u f64.const 3.834951969714103e-04 @@ -3853,14 +3777,14 @@ i64.lt_u i64.extend_i32_u global.get $~lib/math/res128_hi - local.tee $5 + local.tee $3 i64.const 11 i64.shr_u i64.add f64.convert_i64_u global.set $~lib/math/rempio2_y0 local.get $1 - local.get $5 + local.get $3 i64.const 53 i64.shl local.get $2 @@ -3874,28 +3798,28 @@ global.set $~lib/math/rempio2_y1 global.get $~lib/math/rempio2_y0 i64.const 4372995238176751616 - local.get $3 + local.get $10 i64.const 52 i64.shl i64.sub local.get $0 - local.get $6 + local.get $11 i64.xor i64.const -9223372036854775808 i64.and i64.or f64.reinterpret_i64 - local.tee $12 + local.tee $13 f64.mul global.set $~lib/math/rempio2_y0 global.get $~lib/math/rempio2_y1 - local.get $12 + local.get $13 f64.mul global.set $~lib/math/rempio2_y1 - local.get $8 + local.get $4 i64.const 62 i64.shr_s - local.get $4 + local.get $12 i64.sub i32.wrap_i64 ) @@ -5948,29 +5872,29 @@ i32.const 0 end ) - (func $std/math/test_exp2f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 f64) - (local $4 i32) - (local $5 i32) - (local $6 f64) - (local $7 i64) + (func $~lib/math/NativeMathf.exp2 (param $0 f32) (result f32) + (local $1 f64) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 i64) block $~lib/util/math/exp2f_lut|inlined.0 (result f32) local.get $0 f64.promote_f32 - local.set $3 + local.set $1 local.get $0 i32.reinterpret_f32 - local.tee $4 + local.tee $2 i32.const 20 i32.shr_u i32.const 2047 i32.and - local.tee $5 + local.tee $3 i32.const 1072 i32.ge_u if f32.const 0 - local.get $4 + local.get $2 i32.const -8388608 i32.eq br_if $~lib/util/math/exp2f_lut|inlined.0 @@ -5978,7 +5902,7 @@ local.get $0 local.get $0 f32.add - local.get $5 + local.get $3 i32.const 2040 i32.ge_u br_if $~lib/util/math/exp2f_lut|inlined.0 @@ -5998,32 +5922,32 @@ br_if $~lib/util/math/exp2f_lut|inlined.0 drop end - local.get $3 - local.get $3 + local.get $1 + local.get $1 f64.const 211106232532992 f64.add - local.tee $6 + local.tee $4 f64.const 211106232532992 f64.sub f64.sub - local.tee $3 + local.tee $1 f64.const 0.6931471806916203 f64.mul f64.const 1 f64.add - local.get $3 + local.get $1 f64.const 0.05550361559341535 f64.mul f64.const 0.2402284522445722 f64.add - local.get $3 - local.get $3 + local.get $1 + local.get $1 f64.mul f64.mul f64.add - local.get $6 + local.get $4 i64.reinterpret_f64 - local.tee $7 + local.tee $5 i32.wrap_i64 i32.const 31 i32.and @@ -6032,7 +5956,7 @@ i32.const 7712 i32.add i64.load - local.get $7 + local.get $5 i64.const 47 i64.shl i64.add @@ -6040,9 +5964,6 @@ f64.mul f32.demote_f64 end - local.get $1 - local.get $2 - call $std/math/check ) (func $std/math/test_hypot (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) (local $4 i64) @@ -7333,210 +7254,206 @@ i32.const 0 end ) - (func $std/math/test_modf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $~lib/math/NativeMathf.mod (param $0 f32) (param $1 f32) (result f32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - block $__inlined_func$~lib/math/NativeMathf.mod (result f32) + local.get $1 + f32.abs + f32.const 1 + f32.eq + if local.get $0 local.get $0 f32.trunc f32.sub local.get $0 f32.copysign + return + end + local.get $1 + i32.reinterpret_f32 + local.tee $3 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $5 + local.get $0 + i32.reinterpret_f32 + local.tee $2 + i32.const -2147483648 + i32.and + local.set $7 + i32.const 1 + local.get $1 + local.get $1 + f32.ne + local.get $2 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.tee $4 + i32.const 255 + i32.eq + i32.const 1 + local.get $3 + i32.const 1 + i32.shl + local.tee $6 + select + select + if + local.get $0 local.get $1 - f32.abs - f32.const 1 - f32.eq - br_if $__inlined_func$~lib/math/NativeMathf.mod - drop - local.get $1 - i32.reinterpret_f32 - local.tee $4 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and - local.set $6 + f32.mul + local.tee $0 local.get $0 - i32.reinterpret_f32 - local.tee $3 - i32.const -2147483648 + f32.div + return + end + local.get $6 + local.get $2 + i32.const 1 + i32.shl + local.tee $8 + i32.ge_u + if + local.get $0 + local.get $6 + local.get $8 + i32.ne + f32.convert_i32_u + f32.mul + return + end + local.get $4 + if (result i32) + local.get $2 + i32.const 8388607 i32.and - local.set $8 + i32.const 8388608 + i32.or + else + local.get $2 i32.const 1 - local.get $1 - local.get $1 - f32.ne + local.get $4 + local.get $2 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.tee $4 + i32.sub + i32.shl + end + local.set $2 + local.get $5 + if (result i32) local.get $3 - i32.const 23 - i32.shr_u - i32.const 255 + i32.const 8388607 i32.and - local.tee $5 - i32.const 255 - i32.eq - i32.const 1 - local.get $4 + i32.const 8388608 + i32.or + else + local.get $3 i32.const 1 + local.get $5 + local.get $3 + i32.const 9 i32.shl - local.tee $7 - select - select - if - local.get $0 - local.get $1 - f32.mul - local.tee $0 - local.get $0 - f32.div - br $__inlined_func$~lib/math/NativeMathf.mod + i32.clz + i32.sub + local.tee $5 + i32.sub + i32.shl + end + local.set $3 + block $folding-inner0 + loop $while-continue|0 + local.get $4 + local.get $5 + i32.gt_s + if + local.get $2 + local.get $3 + i32.ge_u + if (result i32) + local.get $2 + local.get $3 + i32.eq + br_if $folding-inner0 + local.get $2 + local.get $3 + i32.sub + else + local.get $2 + end + i32.const 1 + i32.shl + local.set $2 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $while-continue|0 + end end - local.get $7 + local.get $2 local.get $3 - i32.const 1 - i32.shl - local.tee $9 i32.ge_u if - local.get $0 - local.get $7 - local.get $9 - i32.ne - f32.convert_i32_u - f32.mul - br $__inlined_func$~lib/math/NativeMathf.mod - end - local.get $5 - if (result i32) - local.get $3 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - else + local.get $2 local.get $3 - i32.const 1 - local.get $5 + i32.eq + br_if $folding-inner0 + local.get $2 local.get $3 - i32.const 9 - i32.shl - i32.clz - i32.sub - local.tee $5 i32.sub - i32.shl + local.set $2 end - local.set $3 - local.get $6 + local.get $2 + local.get $2 + i32.const 8 + i32.shl + i32.clz + local.tee $3 + i32.shl + local.set $2 + local.get $4 + local.get $3 + i32.sub + local.tee $4 + i32.const 0 + i32.gt_s if (result i32) - local.get $4 - i32.const 8388607 - i32.and + local.get $2 i32.const 8388608 - i32.or - else - local.get $4 - i32.const 1 - local.get $6 - local.get $4 - i32.const 9 - i32.shl - i32.clz - i32.sub - local.tee $6 i32.sub - i32.shl - end - local.set $4 - block $folding-inner0 - loop $while-continue|0 - local.get $5 - local.get $6 - i32.gt_s - if - local.get $3 - local.get $4 - i32.ge_u - if (result i32) - local.get $3 - local.get $4 - i32.eq - br_if $folding-inner0 - local.get $3 - local.get $4 - i32.sub - else - local.get $3 - end - i32.const 1 - i32.shl - local.set $3 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|0 - end - end - local.get $3 local.get $4 - i32.ge_u - if - local.get $3 - local.get $4 - i32.eq - br_if $folding-inner0 - local.get $3 - local.get $4 - i32.sub - local.set $3 - end - local.get $3 - local.get $3 - i32.const 8 - i32.shl - i32.clz - local.tee $4 + i32.const 23 i32.shl - local.set $3 - local.get $5 + i32.or + else + local.get $2 + i32.const 1 local.get $4 i32.sub - local.tee $4 - i32.const 0 - i32.gt_s - if (result i32) - local.get $3 - i32.const 8388608 - i32.sub - local.get $4 - i32.const 23 - i32.shl - i32.or - else - local.get $3 - i32.const 1 - local.get $4 - i32.sub - i32.shr_u - end - local.get $8 - i32.or - f32.reinterpret_i32 - br $__inlined_func$~lib/math/NativeMathf.mod + i32.shr_u end - local.get $0 - f32.const 0 - f32.mul + local.get $7 + i32.or + f32.reinterpret_i32 + return end - local.get $2 + local.get $0 f32.const 0 - call $std/math/check + f32.mul ) (func $~lib/math/NativeMath.pow (param $0 f64) (param $1 f64) (result f64) (local $2 i64) @@ -8875,16 +8792,19 @@ ) (func $std/math/test_round (param $0 f64) (param $1 f64) (result i32) (local $2 f64) + (local $3 f64) local.get $0 f64.ceil local.tee $2 + f64.const 0.5 + f64.sub + local.set $3 + local.get $2 local.get $2 f64.const 1 f64.sub local.get $0 - local.get $2 - f64.const 0.5 - f64.sub + local.get $3 f64.ge select local.get $1 @@ -8893,16 +8813,19 @@ ) (func $std/math/test_roundf (param $0 f32) (param $1 f32) (result i32) (local $2 f32) + (local $3 f32) local.get $0 f32.ceil local.tee $2 + f32.const 0.5 + f32.sub + local.set $3 + local.get $2 local.get $2 f32.const 1 f32.sub local.get $0 - local.get $2 - f32.const 0.5 - f32.sub + local.get $3 f32.ge select local.get $1 @@ -13083,10 +13006,10 @@ call $~lib/builtins/abort unreachable end - f32.const -8.066848754882812 - i32.const -2 f32.const -2.016712188720703 - call $std/math/test_scalbnf + f32.const -2.016712188720703 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13096,10 +13019,10 @@ call $~lib/builtins/abort unreachable end - f32.const 4.345239639282227 - i32.const -1 f32.const 2.1726198196411133 - call $std/math/test_scalbnf + f32.const 2.1726198196411133 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13110,9 +13033,9 @@ unreachable end f32.const -8.381433486938477 - i32.const 0 f32.const -8.381433486938477 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13122,10 +13045,10 @@ call $~lib/builtins/abort unreachable end - f32.const -6.531673431396484 - i32.const 1 f32.const -13.063346862792969 - call $std/math/test_scalbnf + f32.const -13.063346862792969 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13135,10 +13058,10 @@ call $~lib/builtins/abort unreachable end - f32.const 9.267057418823242 - i32.const 2 f32.const 37.06822967529297 - call $std/math/test_scalbnf + f32.const 37.06822967529297 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13148,10 +13071,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.6619858741760254 - i32.const 3 f32.const 5.295886993408203 - call $std/math/test_scalbnf + f32.const 5.295886993408203 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13161,10 +13084,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.40660393238067627 - i32.const 4 f32.const -6.50566291809082 - call $std/math/test_scalbnf + f32.const -6.50566291809082 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13174,10 +13097,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.5617597699165344 - i32.const 5 f32.const 17.9763126373291 - call $std/math/test_scalbnf + f32.const 17.9763126373291 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13187,10 +13110,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.7741522789001465 - i32.const 6 f32.const 49.545745849609375 - call $std/math/test_scalbnf + f32.const 49.545745849609375 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13200,10 +13123,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.6787636876106262 - i32.const 7 f32.const -86.88175201416016 - call $std/math/test_scalbnf + f32.const -86.88175201416016 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13214,9 +13137,9 @@ unreachable end f32.const 0 - i32.const 2147483647 f32.const 0 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13227,9 +13150,9 @@ unreachable end f32.const 0 - i32.const -2147483647 f32.const 0 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13240,9 +13163,9 @@ unreachable end f32.const -0 - i32.const 2147483647 f32.const -0 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13253,9 +13176,9 @@ unreachable end f32.const nan:0x400000 - i32.const 0 f32.const nan:0x400000 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13266,9 +13189,9 @@ unreachable end f32.const inf - i32.const 0 f32.const inf - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13279,9 +13202,9 @@ unreachable end f32.const -inf - i32.const 0 f32.const -inf - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13292,9 +13215,9 @@ unreachable end f32.const 1 - i32.const 0 f32.const 1 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13304,10 +13227,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1 - i32.const 1 f32.const 2 - call $std/math/test_scalbnf + f32.const 2 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13317,10 +13240,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1 - i32.const -1 f32.const 0.5 - call $std/math/test_scalbnf + f32.const 0.5 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13330,10 +13253,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1 - i32.const 2147483647 f32.const inf - call $std/math/test_scalbnf + f32.const inf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13344,9 +13267,9 @@ unreachable end f32.const nan:0x400000 - i32.const 1 f32.const nan:0x400000 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13357,9 +13280,9 @@ unreachable end f32.const inf - i32.const 2147483647 f32.const inf - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13370,9 +13293,9 @@ unreachable end f32.const inf - i32.const -2147483647 f32.const inf - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13383,9 +13306,9 @@ unreachable end f32.const -inf - i32.const 2147483647 f32.const -inf - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13395,10 +13318,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 - i32.const -276 f32.const 1.401298464324817e-45 - call $std/math/test_scalbnf + f32.const 1.401298464324817e-45 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13408,10 +13331,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1.401298464324817e-45 - i32.const 276 f32.const 1701411834604692317316873e14 - call $std/math/test_scalbnf + f32.const 1701411834604692317316873e14 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13421,10 +13344,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1.000244140625 - i32.const -149 f32.const 1.401298464324817e-45 - call $std/math/test_scalbnf + f32.const 1.401298464324817e-45 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13434,10 +13357,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.7499999403953552 - i32.const -148 f32.const 1.401298464324817e-45 - call $std/math/test_scalbnf + f32.const 1.401298464324817e-45 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -13447,10 +13370,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.5000006556510925 - i32.const -128 f32.const 1.4693693398263237e-39 - call $std/math/test_scalbnf + f32.const 1.4693693398263237e-39 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28155,9 +28078,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.exp2 f32.const 3.7293792702257633e-03 f32.const -0.0674908235669136 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -28168,9 +28092,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.exp2 f32.const 20.32579231262207 f32.const 0.34121403098106384 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -28181,9 +28106,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.exp2 f32.const 2.9987283051013947e-03 f32.const 0.15504619479179382 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -28194,9 +28120,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.exp2 f32.const 0.010808623395860195 f32.const 0.2603940963745117 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -28207,9 +28134,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.exp2 f32.const 616.1156616210938 f32.const -0.1379322111606598 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -28220,9 +28148,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.exp2 f32.const 1.5822590589523315 f32.const -0.427890807390213 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -28233,9 +28162,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.exp2 f32.const 0.7543970942497253 f32.const -0.38062313199043274 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -28246,9 +28176,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.exp2 f32.const 1.4760686159133911 f32.const 0.1507442593574524 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -28259,9 +28190,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.exp2 f32.const 1.7101848125457764 f32.const -0.39102980494499207 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -28272,9 +28204,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.exp2 f32.const 0.6247003674507141 f32.const -0.20904375612735748 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -37765,8 +37698,10 @@ end f32.const -8.066848754882812 f32.const 4.535662651062012 + call $~lib/math/NativeMathf.mod f32.const -3.531186103820801 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37778,8 +37713,10 @@ end f32.const 4.345239639282227 f32.const -8.887990951538086 + call $~lib/math/NativeMathf.mod f32.const 4.345239639282227 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37791,8 +37728,10 @@ end f32.const -8.381433486938477 f32.const -2.7636072635650635 + call $~lib/math/NativeMathf.mod f32.const -0.09061169624328613 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37804,8 +37743,10 @@ end f32.const -6.531673431396484 f32.const 4.567535400390625 + call $~lib/math/NativeMathf.mod f32.const -1.9641380310058594 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37817,8 +37758,10 @@ end f32.const 9.267057418823242 f32.const 4.811392307281494 + call $~lib/math/NativeMathf.mod f32.const 4.455665111541748 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37830,8 +37773,10 @@ end f32.const -6.450045585632324 f32.const 0.6620717644691467 + call $~lib/math/NativeMathf.mod f32.const -0.49139970541000366 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37843,8 +37788,10 @@ end f32.const 7.858890056610107 f32.const 0.052154526114463806 + call $~lib/math/NativeMathf.mod f32.const 0.0357111394405365 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37856,8 +37803,10 @@ end f32.const -0.7920545339584351 f32.const 7.676402568817139 + call $~lib/math/NativeMathf.mod f32.const -0.7920545339584351 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37869,8 +37818,10 @@ end f32.const 0.6157026886940002 f32.const 2.0119025707244873 + call $~lib/math/NativeMathf.mod f32.const 0.6157026886940002 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37882,8 +37833,10 @@ end f32.const -0.5587586760520935 f32.const 0.03223983198404312 + call $~lib/math/NativeMathf.mod f32.const -0.010681532323360443 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37895,8 +37848,10 @@ end f32.const 0 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const 0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37908,8 +37863,10 @@ end f32.const -0 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const -0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37921,8 +37878,10 @@ end f32.const 0.5 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const 0.5 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37934,8 +37893,10 @@ end f32.const -0.5 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const -0.5 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37947,8 +37908,10 @@ end f32.const 1 f32.const 1 + call $~lib/math/NativeMathf.mod + f32.const 0 f32.const 0 - call $std/math/test_modf + call $std/math/check i32.eqz if i32.const 0 @@ -37960,8 +37923,10 @@ end f32.const -1 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const -0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37973,8 +37938,10 @@ end f32.const 1.5 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const 0.5 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37986,8 +37953,10 @@ end f32.const -1.5 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const -0.5 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -37999,8 +37968,10 @@ end f32.const 2 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const 0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38012,8 +37983,10 @@ end f32.const -2 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const -0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38025,8 +37998,10 @@ end f32.const inf f32.const 1 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38038,8 +38013,10 @@ end f32.const -inf f32.const 1 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38051,8 +38028,10 @@ end f32.const nan:0x400000 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38064,8 +38043,10 @@ end f32.const 0 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const 0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38077,8 +38058,10 @@ end f32.const -0 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const -0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38090,8 +38073,10 @@ end f32.const 0.5 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const 0.5 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38103,8 +38088,10 @@ end f32.const -0.5 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const -0.5 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38116,8 +38103,10 @@ end f32.const 1 f32.const -1 + call $~lib/math/NativeMathf.mod + f32.const 0 f32.const 0 - call $std/math/test_modf + call $std/math/check i32.eqz if i32.const 0 @@ -38129,8 +38118,10 @@ end f32.const -1 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const -0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38142,8 +38133,10 @@ end f32.const 1.5 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const 0.5 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38155,8 +38148,10 @@ end f32.const -1.5 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const -0.5 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38168,8 +38163,10 @@ end f32.const 2 f32.const -1 + call $~lib/math/NativeMathf.mod + f32.const 0 f32.const 0 - call $std/math/test_modf + call $std/math/check i32.eqz if i32.const 0 @@ -38181,8 +38178,10 @@ end f32.const -2 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const -0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38194,8 +38193,10 @@ end f32.const inf f32.const -1 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38207,8 +38208,10 @@ end f32.const -inf f32.const -1 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38220,8 +38223,10 @@ end f32.const nan:0x400000 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38233,8 +38238,10 @@ end f32.const 0 f32.const 0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38246,8 +38253,10 @@ end f32.const 0 f32.const -0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38259,8 +38268,10 @@ end f32.const 0 f32.const inf + call $~lib/math/NativeMathf.mod f32.const 0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38272,8 +38283,10 @@ end f32.const 0 f32.const -inf + call $~lib/math/NativeMathf.mod f32.const 0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38285,8 +38298,10 @@ end f32.const 0 f32.const nan:0x400000 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38298,8 +38313,10 @@ end f32.const -0 f32.const 0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38311,8 +38328,10 @@ end f32.const -0 f32.const -0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38324,8 +38343,10 @@ end f32.const -0 f32.const inf + call $~lib/math/NativeMathf.mod f32.const -0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38337,8 +38358,10 @@ end f32.const -0 f32.const -inf + call $~lib/math/NativeMathf.mod f32.const -0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38350,8 +38373,10 @@ end f32.const -0 f32.const nan:0x400000 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38363,8 +38388,10 @@ end f32.const 1 f32.const 0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38376,8 +38403,10 @@ end f32.const -1 f32.const 0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38389,8 +38418,10 @@ end f32.const inf f32.const 0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38402,8 +38433,10 @@ end f32.const -inf f32.const 0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38415,8 +38448,10 @@ end f32.const nan:0x400000 f32.const 0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38428,8 +38463,10 @@ end f32.const -1 f32.const -0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38441,8 +38478,10 @@ end f32.const inf f32.const -0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38454,8 +38493,10 @@ end f32.const -inf f32.const -0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38467,8 +38508,10 @@ end f32.const nan:0x400000 f32.const -0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38480,8 +38523,10 @@ end f32.const inf f32.const 2 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38493,8 +38538,10 @@ end f32.const inf f32.const -0.5 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38506,8 +38553,10 @@ end f32.const inf f32.const nan:0x400000 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38519,8 +38568,10 @@ end f32.const -inf f32.const 2 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38532,8 +38583,10 @@ end f32.const -inf f32.const -0.5 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38545,8 +38598,10 @@ end f32.const -inf f32.const nan:0x400000 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38558,8 +38613,10 @@ end f32.const nan:0x400000 f32.const nan:0x400000 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38571,8 +38628,10 @@ end f32.const 1 f32.const nan:0x400000 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38584,8 +38643,10 @@ end f32.const -1 f32.const nan:0x400000 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38597,8 +38658,10 @@ end f32.const 1 f32.const inf + call $~lib/math/NativeMathf.mod f32.const 1 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38610,8 +38673,10 @@ end f32.const -1 f32.const inf + call $~lib/math/NativeMathf.mod f32.const -1 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38623,8 +38688,10 @@ end f32.const inf f32.const inf + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38636,8 +38703,10 @@ end f32.const -inf f32.const inf + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38649,8 +38718,10 @@ end f32.const 1 f32.const -inf + call $~lib/math/NativeMathf.mod f32.const 1 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38662,8 +38733,10 @@ end f32.const -1 f32.const -inf + call $~lib/math/NativeMathf.mod f32.const -1 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38675,8 +38748,10 @@ end f32.const inf f32.const -inf + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38688,8 +38763,10 @@ end f32.const -inf f32.const -inf + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38701,8 +38778,10 @@ end f32.const 1.75 f32.const 0.5 + call $~lib/math/NativeMathf.mod f32.const 0.25 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38714,8 +38793,10 @@ end f32.const -1.75 f32.const 0.5 + call $~lib/math/NativeMathf.mod f32.const -0.25 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38727,8 +38808,10 @@ end f32.const 1.75 f32.const -0.5 + call $~lib/math/NativeMathf.mod f32.const 0.25 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -38740,8 +38823,10 @@ end f32.const -1.75 f32.const -0.5 + call $~lib/math/NativeMathf.mod f32.const -0.25 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 diff --git a/tests/compiler/std/new.optimized.wat b/tests/compiler/std/new.optimized.wat index 564f94918e..fafaa04430 100644 --- a/tests/compiler/std/new.optimized.wat +++ b/tests/compiler/std/new.optimized.wat @@ -174,16 +174,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -195,7 +195,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -211,26 +211,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount diff --git a/tests/compiler/std/object.optimized.wat b/tests/compiler/std/object.optimized.wat index 14c652d58d..ffd1f42363 100644 --- a/tests/compiler/std/object.optimized.wat +++ b/tests/compiler/std/object.optimized.wat @@ -43,7 +43,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -57,18 +57,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -76,20 +73,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -102,33 +99,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index 099c5f590d..0d9c09882a 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -233,16 +233,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1520 i32.load i32.gt_u @@ -254,7 +254,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1524 @@ -270,26 +270,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount diff --git a/tests/compiler/std/pointer.optimized.wat b/tests/compiler/std/pointer.optimized.wat index f20ac84049..227db9c1ae 100644 --- a/tests/compiler/std/pointer.optimized.wat +++ b/tests/compiler/std/pointer.optimized.wat @@ -938,9 +938,9 @@ unreachable end global.get $std/pointer/one - local.set $1 + local.set $0 global.get $std/pointer/two - local.tee $0 + local.tee $1 if block $~lib/util/memory/memmove|inlined.0 i32.const 8 @@ -949,33 +949,33 @@ local.get $1 i32.eq br_if $~lib/util/memory/memmove|inlined.0 - local.get $0 local.get $1 + local.get $0 i32.sub i32.const 8 i32.sub i32.const -16 i32.le_u if - local.get $1 local.get $0 + local.get $1 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end local.get $0 local.get $1 - i32.gt_u + i32.lt_u if - local.get $0 + local.get $1 i32.const 7 i32.and - local.get $1 + local.get $0 i32.const 7 i32.and i32.eq if loop $while-continue|0 - local.get $1 + local.get $0 i32.const 7 i32.and if @@ -986,18 +986,18 @@ i32.const 1 i32.sub local.set $4 - 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 $1 + local.tee $2 + i32.const 1 + i32.add + local.set $1 local.get $3 + local.get $2 i32.load8_u i32.store8 br $while-continue|0 @@ -1008,22 +1008,22 @@ i32.const 8 i32.ge_u if - local.get $1 local.get $0 + local.get $1 i64.load i64.store local.get $4 i32.const 8 i32.sub local.set $4 - local.get $1 - i32.const 8 - i32.add - local.set $1 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 @@ -1031,18 +1031,18 @@ loop $while-continue|2 local.get $4 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 $1 + local.tee $2 + i32.const 1 + i32.add + local.set $1 local.get $3 + local.get $2 i32.load8_u i32.store8 local.get $4 @@ -1053,16 +1053,16 @@ end end else - local.get $0 + local.get $1 i32.const 7 i32.and - local.get $1 + local.get $0 i32.const 7 i32.and i32.eq if loop $while-continue|3 - local.get $1 + local.get $0 local.get $4 i32.add i32.const 7 @@ -1071,15 +1071,17 @@ local.get $4 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $1 local.get $4 i32.const 1 i32.sub local.tee $4 + local.get $1 i32.add + local.set $2 local.get $0 local.get $4 i32.add + local.get $2 i32.load8_u i32.store8 br $while-continue|3 @@ -1090,15 +1092,17 @@ i32.const 8 i32.ge_u if - local.get $1 local.get $4 i32.const 8 i32.sub local.tee $4 + local.get $1 i32.add + local.set $2 local.get $0 local.get $4 i32.add + local.get $2 i64.load i64.store br $while-continue|4 @@ -1108,15 +1112,17 @@ loop $while-continue|5 local.get $4 if - local.get $1 local.get $4 i32.const 1 i32.sub local.tee $4 + local.get $1 i32.add + local.set $2 local.get $0 local.get $4 i32.add + local.get $2 i32.load8_u i32.store8 br $while-continue|5 @@ -1125,37 +1131,37 @@ end end else - local.get $1 + local.get $0 i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 8 i32.add - local.tee $0 + local.tee $1 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=3 - local.get $0 + local.get $1 i32.const 4 i32.sub i32.const 0 diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index 7219b28627..b1e881f5ad 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -3382,24 +3382,23 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 call $~lib/set/Set#constructor local.tee $2 i32.store @@ -3786,9 +3785,9 @@ global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $1 i32.const 0 i32.store local.get $2 @@ -3796,42 +3795,41 @@ local.set $10 local.get $2 i32.load offset=16 - local.tee $11 - local.set $4 - local.get $7 + local.set $5 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 i32.store - local.get $1 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $3 i32.const 0 i32.store offset=4 - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 1073741820 i32.gt_u if @@ -3843,61 +3841,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 8 - local.get $4 + local.get $5 i32.const 8 i32.gt_u select local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $8 call $~lib/memory/memory.fill - local.get $1 - local.get $5 + local.get $3 + local.get $6 i32.store - local.get $1 - local.get $5 + local.get $3 + local.get $6 call $~lib/rt/itcms/__link - local.get $1 - local.get $5 + local.get $3 + local.get $6 i32.store offset=4 - local.get $1 + local.get $3 local.get $8 i32.store offset=8 - local.get $1 - local.get $4 + local.get $3 + local.get $5 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 $1 + local.get $3 i32.store loop $for-loop|0 - local.get $6 - local.get $11 - i32.lt_s + local.get $5 + local.get $7 + i32.gt_s if local.get $10 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $1 + local.get $3 local.get $0 - local.get $4 + local.get $1 i32.load8_s call $~lib/array/Array#__set local.get $0 @@ -3905,19 +3903,19 @@ i32.add local.set $0 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|0 end end - local.get $1 + local.get $3 local.get $0 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $3 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -3925,20 +3923,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $9 - local.get $1 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $4 + local.tee $1 i32.store offset=8 loop $for-loop|4 + local.get $4 local.get $3 - local.get $1 i32.load offset=12 i32.lt_s if - local.get $1 local.get $3 + local.get $4 call $~lib/array/Array#__get local.tee $6 i32.extend8_s @@ -3980,8 +3978,8 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find11 - loop $while-continue|012 + block $__inlined_func$~lib/set/Set#find10 + loop $while-continue|011 local.get $0 if local.get $0 @@ -3999,12 +3997,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find11 + br_if $__inlined_func$~lib/set/Set#find10 local.get $7 i32.const -2 i32.and local.set $0 - br $while-continue|012 + br $while-continue|011 end end i32.const 0 @@ -4020,19 +4018,19 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $1 local.get $3 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|4 end end - local.get $4 + local.get $1 i32.load offset=20 local.get $2 i32.load offset=20 @@ -4046,9 +4044,9 @@ unreachable end i32.const 0 - local.set $3 + local.set $4 loop $for-loop|6 - local.get $3 + local.get $4 i32.extend8_s i32.const 50 i32.lt_s @@ -4057,7 +4055,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.extend8_s i32.const -1028477379 i32.mul @@ -4092,13 +4090,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find14 - loop $while-continue|015 + block $__inlined_func$~lib/set/Set#find13 + loop $while-continue|014 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -4106,17 +4104,17 @@ else local.get $0 i32.load8_u - local.get $3 + local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find14 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find13 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|015 + br $while-continue|014 end end i32.const 0 @@ -4133,13 +4131,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#delete local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.extend8_s i32.const -1028477379 i32.mul @@ -4174,13 +4172,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find17 - loop $while-continue|018 + block $__inlined_func$~lib/set/Set#find16 + loop $while-continue|017 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -4188,17 +4186,17 @@ else local.get $0 i32.load8_u - local.get $3 + local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find17 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find16 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|018 + br $while-continue|017 end end i32.const 0 @@ -4213,10 +4211,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|6 end end @@ -4233,9 +4231,9 @@ unreachable end i32.const 0 - local.set $3 + local.set $4 loop $for-loop|8 - local.get $3 + local.get $4 i32.extend8_s i32.const 50 i32.lt_s @@ -4244,7 +4242,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.extend8_s i32.const -1028477379 i32.mul @@ -4279,13 +4277,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find20 - loop $while-continue|021 + block $__inlined_func$~lib/set/Set#find19 + loop $while-continue|020 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -4293,17 +4291,17 @@ else local.get $0 i32.load8_u - local.get $3 + local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find20 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find19 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|021 + br $while-continue|020 end end i32.const 0 @@ -4319,13 +4317,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#add local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.extend8_s i32.const -1028477379 i32.mul @@ -4360,13 +4358,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find23 - loop $while-continue|024 + block $__inlined_func$~lib/set/Set#find22 + loop $while-continue|023 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -4374,17 +4372,17 @@ else local.get $0 i32.load8_u - local.get $3 + local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find23 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find22 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|024 + br $while-continue|023 end end i32.const 0 @@ -4401,13 +4399,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#delete local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.extend8_s i32.const -1028477379 i32.mul @@ -4442,13 +4440,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find26 - loop $while-continue|027 + block $__inlined_func$~lib/set/Set#find25 + loop $while-continue|026 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -4456,17 +4454,17 @@ else local.get $0 i32.load8_u - local.get $3 + local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find26 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find25 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|027 + br $while-continue|026 end end i32.const 0 @@ -4481,10 +4479,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|8 end end @@ -4987,24 +4985,23 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 call $~lib/set/Set#constructor local.tee $2 i32.store @@ -5397,9 +5394,9 @@ global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $1 i32.const 0 i32.store local.get $2 @@ -5407,42 +5404,41 @@ local.set $10 local.get $2 i32.load offset=16 - local.tee $11 - local.set $4 - local.get $7 + local.set $5 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 16 i32.const 6 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 i32.store - local.get $1 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $3 i32.const 0 i32.store offset=4 - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 1073741820 i32.gt_u if @@ -5454,61 +5450,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 8 - local.get $4 + local.get $5 i32.const 8 i32.gt_u select local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $8 call $~lib/memory/memory.fill - local.get $1 - local.get $5 + local.get $3 + local.get $6 i32.store - local.get $1 - local.get $5 + local.get $3 + local.get $6 call $~lib/rt/itcms/__link - local.get $1 - local.get $5 + local.get $3 + local.get $6 i32.store offset=4 - local.get $1 + local.get $3 local.get $8 i32.store offset=8 - local.get $1 - local.get $4 + local.get $3 + local.get $5 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 $1 + local.get $3 i32.store loop $for-loop|0 - local.get $6 - local.get $11 - i32.lt_s + local.get $5 + local.get $7 + i32.gt_s if local.get $10 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $1 + local.get $3 local.get $0 - local.get $4 + local.get $1 i32.load8_u call $~lib/array/Array#__set local.get $0 @@ -5516,19 +5512,19 @@ i32.add local.set $0 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|0 end end - local.get $1 + local.get $3 local.get $0 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $3 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -5536,20 +5532,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $9 - local.get $1 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $4 + local.tee $1 i32.store offset=8 loop $for-loop|4 + local.get $4 local.get $3 - local.get $1 i32.load offset=12 i32.lt_s if - local.get $1 local.get $3 + local.get $4 call $~lib/array/Array#__get local.tee $6 i32.const 255 @@ -5592,8 +5588,8 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find11 - loop $while-continue|012 + block $__inlined_func$~lib/set/Set#find10 + loop $while-continue|011 local.get $0 if local.get $0 @@ -5611,12 +5607,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find11 + br_if $__inlined_func$~lib/set/Set#find10 local.get $7 i32.const -2 i32.and local.set $0 - br $while-continue|012 + br $while-continue|011 end end i32.const 0 @@ -5632,19 +5628,19 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $1 local.get $3 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|4 end end - local.get $4 + local.get $1 i32.load offset=20 local.get $2 i32.load offset=20 @@ -5658,9 +5654,9 @@ unreachable end i32.const 0 - local.set $3 + local.set $4 loop $for-loop|6 - local.get $3 + local.get $4 i32.const 255 i32.and i32.const 50 @@ -5670,7 +5666,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const 255 i32.and i32.const -1028477379 @@ -5706,13 +5702,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find14 - loop $while-continue|015 + block $__inlined_func$~lib/set/Set#find13 + loop $while-continue|014 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -5720,17 +5716,17 @@ else local.get $0 i32.load8_u - local.get $3 + local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find14 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find13 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|015 + br $while-continue|014 end end i32.const 0 @@ -5747,13 +5743,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#delete local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const 255 i32.and i32.const -1028477379 @@ -5789,13 +5785,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find17 - loop $while-continue|018 + block $__inlined_func$~lib/set/Set#find16 + loop $while-continue|017 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -5803,17 +5799,17 @@ else local.get $0 i32.load8_u - local.get $3 + local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find17 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find16 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|018 + br $while-continue|017 end end i32.const 0 @@ -5828,10 +5824,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|6 end end @@ -5848,9 +5844,9 @@ unreachable end i32.const 0 - local.set $3 + local.set $4 loop $for-loop|8 - local.get $3 + local.get $4 i32.const 255 i32.and i32.const 50 @@ -5860,7 +5856,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const 255 i32.and i32.const -1028477379 @@ -5896,13 +5892,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find20 - loop $while-continue|021 + block $__inlined_func$~lib/set/Set#find19 + loop $while-continue|020 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -5910,17 +5906,17 @@ else local.get $0 i32.load8_u - local.get $3 + local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find20 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find19 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|021 + br $while-continue|020 end end i32.const 0 @@ -5936,13 +5932,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#add local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const 255 i32.and i32.const -1028477379 @@ -5978,13 +5974,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find23 - loop $while-continue|024 + block $__inlined_func$~lib/set/Set#find22 + loop $while-continue|023 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -5992,17 +5988,17 @@ else local.get $0 i32.load8_u - local.get $3 + local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find23 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find22 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|024 + br $while-continue|023 end end i32.const 0 @@ -6019,13 +6015,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#delete local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const 255 i32.and i32.const -1028477379 @@ -6061,13 +6057,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find26 - loop $while-continue|027 + block $__inlined_func$~lib/set/Set#find25 + loop $while-continue|026 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -6075,17 +6071,17 @@ else local.get $0 i32.load8_u - local.get $3 + local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find26 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find25 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|027 + br $while-continue|026 end end i32.const 0 @@ -6100,10 +6096,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|8 end end @@ -6644,24 +6640,23 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 call $~lib/set/Set#constructor local.tee $2 i32.store @@ -7048,9 +7043,9 @@ global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $1 i32.const 0 i32.store local.get $2 @@ -7058,42 +7053,41 @@ local.set $10 local.get $2 i32.load offset=16 - local.tee $11 - local.set $4 - local.get $7 + local.set $5 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 16 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 i32.store - local.get $1 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $3 i32.const 0 i32.store offset=4 - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 536870910 i32.gt_u if @@ -7105,9 +7099,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 8 - local.get $4 + local.get $5 i32.const 8 i32.gt_u select @@ -7116,52 +7110,52 @@ local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $8 call $~lib/memory/memory.fill - local.get $1 - local.get $5 + local.get $3 + local.get $6 i32.store - local.get $1 - local.get $5 + local.get $3 + local.get $6 call $~lib/rt/itcms/__link - local.get $1 - local.get $5 + local.get $3 + local.get $6 i32.store offset=4 - local.get $1 + local.get $3 local.get $8 i32.store offset=8 - local.get $1 - local.get $4 + local.get $3 + local.get $5 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 $1 + local.get $3 i32.store loop $for-loop|0 - local.get $6 - local.get $11 - i32.lt_s + local.get $5 + local.get $7 + i32.gt_s if local.get $10 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $1 + local.get $3 local.get $0 - local.get $4 + local.get $1 i32.load16_s call $~lib/array/Array#__set local.get $0 @@ -7169,19 +7163,19 @@ i32.add local.set $0 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|0 end end - local.get $1 + local.get $3 local.get $0 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $3 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -7189,20 +7183,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $9 - local.get $1 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $4 + local.tee $1 i32.store offset=8 loop $for-loop|4 + local.get $4 local.get $3 - local.get $1 i32.load offset=12 i32.lt_s if - local.get $1 local.get $3 + local.get $4 call $~lib/array/Array#__get local.tee $6 i32.extend16_s @@ -7244,8 +7238,8 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find11 - loop $while-continue|012 + block $__inlined_func$~lib/set/Set#find10 + loop $while-continue|011 local.get $0 if local.get $0 @@ -7263,12 +7257,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find11 + br_if $__inlined_func$~lib/set/Set#find10 local.get $7 i32.const -2 i32.and local.set $0 - br $while-continue|012 + br $while-continue|011 end end i32.const 0 @@ -7284,19 +7278,19 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $1 local.get $3 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|4 end end - local.get $4 + local.get $1 i32.load offset=20 local.get $2 i32.load offset=20 @@ -7310,9 +7304,9 @@ unreachable end i32.const 0 - local.set $3 + local.set $4 loop $for-loop|6 - local.get $3 + local.get $4 i32.extend16_s i32.const 50 i32.lt_s @@ -7321,7 +7315,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.extend16_s i32.const -1028477379 i32.mul @@ -7356,13 +7350,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find14 - loop $while-continue|015 + block $__inlined_func$~lib/set/Set#find13 + loop $while-continue|014 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -7370,17 +7364,17 @@ else local.get $0 i32.load16_u - local.get $3 + local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find14 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find13 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|015 + br $while-continue|014 end end i32.const 0 @@ -7397,13 +7391,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#delete local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.extend16_s i32.const -1028477379 i32.mul @@ -7438,13 +7432,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find17 - loop $while-continue|018 + block $__inlined_func$~lib/set/Set#find16 + loop $while-continue|017 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -7452,17 +7446,17 @@ else local.get $0 i32.load16_u - local.get $3 + local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find17 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find16 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|018 + br $while-continue|017 end end i32.const 0 @@ -7477,10 +7471,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|6 end end @@ -7497,9 +7491,9 @@ unreachable end i32.const 0 - local.set $3 + local.set $4 loop $for-loop|8 - local.get $3 + local.get $4 i32.extend16_s i32.const 50 i32.lt_s @@ -7508,7 +7502,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.extend16_s i32.const -1028477379 i32.mul @@ -7543,13 +7537,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find20 - loop $while-continue|021 + block $__inlined_func$~lib/set/Set#find19 + loop $while-continue|020 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -7557,17 +7551,17 @@ else local.get $0 i32.load16_u - local.get $3 + local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find20 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find19 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|021 + br $while-continue|020 end end i32.const 0 @@ -7583,13 +7577,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#add local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.extend16_s i32.const -1028477379 i32.mul @@ -7624,13 +7618,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find23 - loop $while-continue|024 + block $__inlined_func$~lib/set/Set#find22 + loop $while-continue|023 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -7638,17 +7632,17 @@ else local.get $0 i32.load16_u - local.get $3 + local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find23 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find22 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|024 + br $while-continue|023 end end i32.const 0 @@ -7665,13 +7659,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#delete local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.extend16_s i32.const -1028477379 i32.mul @@ -7706,13 +7700,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find26 - loop $while-continue|027 + block $__inlined_func$~lib/set/Set#find25 + loop $while-continue|026 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -7720,17 +7714,17 @@ else local.get $0 i32.load16_u - local.get $3 + local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find26 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find25 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|027 + br $while-continue|026 end end i32.const 0 @@ -7745,10 +7739,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|8 end end @@ -8253,24 +8247,23 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 call $~lib/set/Set#constructor local.tee $2 i32.store @@ -8663,9 +8656,9 @@ global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $1 i32.const 0 i32.store local.get $2 @@ -8673,42 +8666,41 @@ local.set $10 local.get $2 i32.load offset=16 - local.tee $11 - local.set $4 - local.get $7 + local.set $5 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 16 i32.const 10 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 i32.store - local.get $1 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $3 i32.const 0 i32.store offset=4 - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 536870910 i32.gt_u if @@ -8720,9 +8712,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 8 - local.get $4 + local.get $5 i32.const 8 i32.gt_u select @@ -8731,52 +8723,52 @@ local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $8 call $~lib/memory/memory.fill - local.get $1 - local.get $5 + local.get $3 + local.get $6 i32.store - local.get $1 - local.get $5 + local.get $3 + local.get $6 call $~lib/rt/itcms/__link - local.get $1 - local.get $5 + local.get $3 + local.get $6 i32.store offset=4 - local.get $1 + local.get $3 local.get $8 i32.store offset=8 - local.get $1 - local.get $4 + local.get $3 + local.get $5 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 $1 + local.get $3 i32.store loop $for-loop|0 - local.get $6 - local.get $11 - i32.lt_s + local.get $5 + local.get $7 + i32.gt_s if local.get $10 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $1 + local.get $3 local.get $0 - local.get $4 + local.get $1 i32.load16_u call $~lib/array/Array#__set local.get $0 @@ -8784,19 +8776,19 @@ i32.add local.set $0 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|0 end end - local.get $1 + local.get $3 local.get $0 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $3 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -8804,20 +8796,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $9 - local.get $1 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $4 + local.tee $1 i32.store offset=8 loop $for-loop|4 + local.get $4 local.get $3 - local.get $1 i32.load offset=12 i32.lt_s if - local.get $1 local.get $3 + local.get $4 call $~lib/array/Array#__get local.tee $6 i32.const 65535 @@ -8860,8 +8852,8 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find11 - loop $while-continue|012 + block $__inlined_func$~lib/set/Set#find10 + loop $while-continue|011 local.get $0 if local.get $0 @@ -8879,12 +8871,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find11 + br_if $__inlined_func$~lib/set/Set#find10 local.get $7 i32.const -2 i32.and local.set $0 - br $while-continue|012 + br $while-continue|011 end end i32.const 0 @@ -8900,19 +8892,19 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $1 local.get $3 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|4 end end - local.get $4 + local.get $1 i32.load offset=20 local.get $2 i32.load offset=20 @@ -8926,9 +8918,9 @@ unreachable end i32.const 0 - local.set $3 + local.set $4 loop $for-loop|6 - local.get $3 + local.get $4 i32.const 65535 i32.and i32.const 50 @@ -8938,7 +8930,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const 65535 i32.and i32.const -1028477379 @@ -8974,13 +8966,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find14 - loop $while-continue|015 + block $__inlined_func$~lib/set/Set#find13 + loop $while-continue|014 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -8988,17 +8980,17 @@ else local.get $0 i32.load16_u - local.get $3 + local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find14 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find13 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|015 + br $while-continue|014 end end i32.const 0 @@ -9015,13 +9007,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#delete local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const 65535 i32.and i32.const -1028477379 @@ -9057,13 +9049,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find17 - loop $while-continue|018 + block $__inlined_func$~lib/set/Set#find16 + loop $while-continue|017 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -9071,17 +9063,17 @@ else local.get $0 i32.load16_u - local.get $3 + local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find17 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find16 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|018 + br $while-continue|017 end end i32.const 0 @@ -9096,10 +9088,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|6 end end @@ -9116,9 +9108,9 @@ unreachable end i32.const 0 - local.set $3 + local.set $4 loop $for-loop|8 - local.get $3 + local.get $4 i32.const 65535 i32.and i32.const 50 @@ -9128,7 +9120,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const 65535 i32.and i32.const -1028477379 @@ -9164,13 +9156,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find20 - loop $while-continue|021 + block $__inlined_func$~lib/set/Set#find19 + loop $while-continue|020 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -9178,17 +9170,17 @@ else local.get $0 i32.load16_u - local.get $3 + local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find20 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find19 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|021 + br $while-continue|020 end end i32.const 0 @@ -9204,13 +9196,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#add local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const 65535 i32.and i32.const -1028477379 @@ -9246,13 +9238,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find23 - loop $while-continue|024 + block $__inlined_func$~lib/set/Set#find22 + loop $while-continue|023 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -9260,17 +9252,17 @@ else local.get $0 i32.load16_u - local.get $3 + local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find23 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find22 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|024 + br $while-continue|023 end end i32.const 0 @@ -9287,13 +9279,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#delete local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const 65535 i32.and i32.const -1028477379 @@ -9329,13 +9321,13 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find26 - loop $while-continue|027 + block $__inlined_func$~lib/set/Set#find25 + loop $while-continue|026 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -9343,17 +9335,17 @@ else local.get $0 i32.load16_u - local.get $3 + local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find26 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find25 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|027 + br $while-continue|026 end end i32.const 0 @@ -9368,10 +9360,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|8 end end @@ -9905,24 +9897,23 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 call $~lib/set/Set#constructor local.tee $2 i32.store @@ -10295,9 +10286,9 @@ global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $1 i32.const 0 i32.store local.get $2 @@ -10305,42 +10296,41 @@ local.set $10 local.get $2 i32.load offset=16 - local.tee $11 - local.set $4 - local.get $7 + local.set $5 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 16 i32.const 12 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 i32.store - local.get $1 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $3 i32.const 0 i32.store offset=4 - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 268435455 i32.gt_u if @@ -10352,9 +10342,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 8 - local.get $4 + local.get $5 i32.const 8 i32.gt_u select @@ -10363,52 +10353,52 @@ local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $8 call $~lib/memory/memory.fill - local.get $1 - local.get $5 + local.get $3 + local.get $6 i32.store - local.get $1 - local.get $5 + local.get $3 + local.get $6 call $~lib/rt/itcms/__link - local.get $1 - local.get $5 + local.get $3 + local.get $6 i32.store offset=4 - local.get $1 + local.get $3 local.get $8 i32.store offset=8 - local.get $1 - local.get $4 + local.get $3 + local.get $5 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 $1 + local.get $3 i32.store loop $for-loop|01 - local.get $6 - local.get $11 - i32.lt_s + local.get $5 + local.get $7 + i32.gt_s if local.get $10 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $1 + local.get $3 local.get $0 - local.get $4 + local.get $1 i32.load call $~lib/array/Array#__set local.get $0 @@ -10416,19 +10406,19 @@ i32.add local.set $0 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|01 end end - local.get $1 + local.get $3 local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $3 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -10436,20 +10426,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $9 - local.get $1 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $4 + local.tee $1 i32.store offset=8 loop $for-loop|2 + local.get $4 local.get $3 - local.get $1 i32.load offset=12 i32.lt_s if - local.get $1 local.get $3 + local.get $4 call $~lib/array/Array#__get local.tee $6 i32.const -1028477379 @@ -10490,8 +10480,8 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find11 - loop $while-continue|012 + block $__inlined_func$~lib/set/Set#find10 + loop $while-continue|011 local.get $0 if local.get $0 @@ -10507,12 +10497,12 @@ i32.load i32.eq end - br_if $__inlined_func$~lib/set/Set#find11 + br_if $__inlined_func$~lib/set/Set#find10 local.get $7 i32.const -2 i32.and local.set $0 - br $while-continue|012 + br $while-continue|011 end end i32.const 0 @@ -10528,19 +10518,19 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $1 local.get $3 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|2 end end - local.get $4 + local.get $1 i32.load offset=20 local.get $2 i32.load offset=20 @@ -10554,9 +10544,9 @@ unreachable end i32.const 0 - local.set $3 + local.set $4 loop $for-loop|3 - local.get $3 + local.get $4 i32.const 50 i32.lt_s if @@ -10564,7 +10554,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10598,29 +10588,29 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find14 - loop $while-continue|015 + block $__inlined_func$~lib/set/Set#find13 + loop $while-continue|014 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $4 local.get $0 i32.load i32.eq end - br_if $__inlined_func$~lib/set/Set#find14 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find13 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|015 + br $while-continue|014 end end i32.const 0 @@ -10637,13 +10627,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#delete local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10677,29 +10667,29 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find17 - loop $while-continue|018 + block $__inlined_func$~lib/set/Set#find16 + loop $while-continue|017 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $4 local.get $0 i32.load i32.eq end - br_if $__inlined_func$~lib/set/Set#find17 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find16 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|018 + br $while-continue|017 end end i32.const 0 @@ -10714,10 +10704,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|3 end end @@ -10734,9 +10724,9 @@ unreachable end i32.const 0 - local.set $3 + local.set $4 loop $for-loop|4 - local.get $3 + local.get $4 i32.const 50 i32.lt_s if @@ -10744,7 +10734,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10778,29 +10768,29 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find20 - loop $while-continue|021 + block $__inlined_func$~lib/set/Set#find19 + loop $while-continue|020 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $4 local.get $0 i32.load i32.eq end - br_if $__inlined_func$~lib/set/Set#find20 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find19 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|021 + br $while-continue|020 end end i32.const 0 @@ -10816,13 +10806,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#add local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10856,29 +10846,29 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find23 - loop $while-continue|024 + block $__inlined_func$~lib/set/Set#find22 + loop $while-continue|023 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $4 local.get $0 i32.load i32.eq end - br_if $__inlined_func$~lib/set/Set#find23 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find22 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|024 + br $while-continue|023 end end i32.const 0 @@ -10895,13 +10885,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#delete local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10935,29 +10925,29 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find26 - loop $while-continue|027 + block $__inlined_func$~lib/set/Set#find25 + loop $while-continue|026 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $4 local.get $0 i32.load i32.eq end - br_if $__inlined_func$~lib/set/Set#find26 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find25 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|027 + br $while-continue|026 end end i32.const 0 @@ -10972,10 +10962,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|4 end end @@ -11470,24 +11460,23 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 call $~lib/set/Set#constructor local.tee $2 i32.store @@ -11860,9 +11849,9 @@ global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $1 i32.const 0 i32.store local.get $2 @@ -11870,42 +11859,41 @@ local.set $10 local.get $2 i32.load offset=16 - local.tee $11 - local.set $4 - local.get $7 - i32.const 8 + local.set $5 + local.get $1 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 16 i32.const 14 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 i32.store - local.get $1 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $3 i32.const 0 i32.store offset=4 - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 268435455 i32.gt_u if @@ -11917,9 +11905,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 8 - local.get $4 + local.get $5 i32.const 8 i32.gt_u select @@ -11928,52 +11916,52 @@ local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $8 call $~lib/memory/memory.fill - local.get $1 - local.get $5 + local.get $3 + local.get $6 i32.store - local.get $1 - local.get $5 + local.get $3 + local.get $6 call $~lib/rt/itcms/__link - local.get $1 - local.get $5 + local.get $3 + local.get $6 i32.store offset=4 - local.get $1 + local.get $3 local.get $8 i32.store offset=8 - local.get $1 - local.get $4 + local.get $3 + local.get $5 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 $1 + local.get $3 i32.store loop $for-loop|01 - local.get $6 - local.get $11 - i32.lt_s + local.get $5 + local.get $7 + i32.gt_s if local.get $10 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $1 + local.get $3 local.get $0 - local.get $4 + local.get $1 i32.load call $~lib/array/Array#__set local.get $0 @@ -11981,19 +11969,19 @@ i32.add local.set $0 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|01 end end - local.get $1 + local.get $3 local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $3 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -12001,20 +11989,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $9 - local.get $1 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $4 + local.tee $1 i32.store offset=8 loop $for-loop|2 + local.get $4 local.get $3 - local.get $1 i32.load offset=12 i32.lt_s if - local.get $1 local.get $3 + local.get $4 call $~lib/array/Array#__get local.tee $6 i32.const -1028477379 @@ -12055,8 +12043,8 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find11 - loop $while-continue|012 + block $__inlined_func$~lib/set/Set#find10 + loop $while-continue|011 local.get $0 if local.get $0 @@ -12072,12 +12060,12 @@ i32.load i32.eq end - br_if $__inlined_func$~lib/set/Set#find11 + br_if $__inlined_func$~lib/set/Set#find10 local.get $7 i32.const -2 i32.and local.set $0 - br $while-continue|012 + br $while-continue|011 end end i32.const 0 @@ -12093,19 +12081,19 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $1 local.get $3 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|2 end end - local.get $4 + local.get $1 i32.load offset=20 local.get $2 i32.load offset=20 @@ -12119,9 +12107,9 @@ unreachable end i32.const 0 - local.set $3 + local.set $4 loop $for-loop|3 - local.get $3 + local.get $4 i32.const 50 i32.lt_u if @@ -12129,7 +12117,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12163,29 +12151,29 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find14 - loop $while-continue|015 + block $__inlined_func$~lib/set/Set#find13 + loop $while-continue|014 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $4 local.get $0 i32.load i32.eq end - br_if $__inlined_func$~lib/set/Set#find14 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find13 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|015 + br $while-continue|014 end end i32.const 0 @@ -12202,13 +12190,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#delete local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12242,29 +12230,29 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find17 - loop $while-continue|018 + block $__inlined_func$~lib/set/Set#find16 + loop $while-continue|017 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $4 local.get $0 i32.load i32.eq end - br_if $__inlined_func$~lib/set/Set#find17 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find16 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|018 + br $while-continue|017 end end i32.const 0 @@ -12279,10 +12267,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|3 end end @@ -12299,9 +12287,9 @@ unreachable end i32.const 0 - local.set $3 + local.set $4 loop $for-loop|4 - local.get $3 + local.get $4 i32.const 50 i32.lt_u if @@ -12309,7 +12297,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12343,29 +12331,29 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find20 - loop $while-continue|021 + block $__inlined_func$~lib/set/Set#find19 + loop $while-continue|020 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $4 local.get $0 i32.load i32.eq end - br_if $__inlined_func$~lib/set/Set#find20 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find19 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|021 + br $while-continue|020 end end i32.const 0 @@ -12381,13 +12369,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#add local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12421,29 +12409,29 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find23 - loop $while-continue|024 + block $__inlined_func$~lib/set/Set#find22 + loop $while-continue|023 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $4 local.get $0 i32.load i32.eq end - br_if $__inlined_func$~lib/set/Set#find23 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find22 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|024 + br $while-continue|023 end end i32.const 0 @@ -12460,13 +12448,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/set/Set#delete local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12500,29 +12488,29 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find26 - loop $while-continue|027 + block $__inlined_func$~lib/set/Set#find25 + loop $while-continue|026 local.get $0 if local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $4 local.get $0 i32.load i32.eq end - br_if $__inlined_func$~lib/set/Set#find26 - local.get $4 + br_if $__inlined_func$~lib/set/Set#find25 + local.get $3 i32.const -2 i32.and local.set $0 - br $while-continue|027 + br $while-continue|026 end end i32.const 0 @@ -12537,10 +12525,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|4 end end @@ -13215,9 +13203,9 @@ ) (func $std/set/testNumeric (local $0 i32) - (local $1 i64) + (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -13226,34 +13214,33 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 call $~lib/set/Set#constructor - local.tee $2 + local.tee $4 i32.store loop $for-loop|0 - local.get $1 + local.get $3 i64.const 100 i64.lt_s if - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -13263,11 +13250,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -13278,14 +13265,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i64.const 1 i64.add - local.set $1 + local.set $3 br $for-loop|0 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -13298,14 +13285,14 @@ unreachable end i64.const 50 - local.set $1 + local.set $3 loop $for-loop|1 - local.get $1 + local.get $3 i64.const 100 i64.lt_s if - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -13316,11 +13303,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -13331,14 +13318,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i64.const 1 i64.add - local.set $1 + local.set $3 br $for-loop|1 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -13358,52 +13345,52 @@ global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $4 i32.load offset=8 local.set $11 - local.get $2 + local.get $4 i32.load offset=16 - local.tee $12 - local.set $4 - local.get $8 + local.set $5 + local.get $1 + local.tee $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + 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 16 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 i32.store - local.get $3 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $3 + local.get $1 i32.const 0 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=8 - local.get $3 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 134217727 i32.gt_u if @@ -13415,9 +13402,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 8 - local.get $4 + local.get $5 i32.const 8 i32.gt_u select @@ -13426,52 +13413,52 @@ local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $9 call $~lib/memory/memory.fill - local.get $3 - local.get $5 + local.get $1 + local.get $6 i32.store - local.get $3 - local.get $5 + local.get $1 + local.get $6 call $~lib/rt/itcms/__link - local.get $3 - local.get $5 + local.get $1 + local.get $6 i32.store offset=4 - local.get $3 + local.get $1 local.get $9 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 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 $3 + local.get $2 + local.get $1 i32.store loop $for-loop|01 - local.get $7 - local.get $12 - i32.lt_s + local.get $5 + local.get $8 + i32.gt_s if local.get $11 - local.get $7 + local.get $8 i32.const 4 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $3 + local.get $1 local.get $0 - local.get $4 + local.get $2 i64.load call $~lib/array/Array#__set local.get $0 @@ -13479,19 +13466,19 @@ i32.add local.set $0 end - local.get $7 + local.get $8 i32.const 1 i32.add - local.set $7 + local.set $8 br $for-loop|01 end end - local.get $3 + local.get $1 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $3 + local.get $1 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -13499,21 +13486,21 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $10 - local.get $3 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $4 + local.tee $5 i32.store offset=8 loop $for-loop|2 - local.get $6 - local.get $3 + local.get $7 + local.get $1 i32.load offset=12 i32.lt_s if - local.get $2 - local.get $3 - local.get $6 + local.get $4 + local.get $1 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -13525,21 +13512,21 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 - local.get $6 + local.get $5 + local.get $1 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|2 end end - local.get $4 + local.get $5 i32.load offset=20 - local.get $2 + local.get $4 i32.load offset=20 i32.ne if @@ -13551,14 +13538,14 @@ unreachable end i64.const 0 - local.set $1 + local.set $3 loop $for-loop|3 - local.get $1 + local.get $3 i64.const 50 i64.lt_s if - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -13569,11 +13556,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#delete - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -13583,14 +13570,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i64.const 1 i64.add - local.set $1 + local.set $3 br $for-loop|3 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -13603,14 +13590,14 @@ unreachable end i64.const 0 - local.set $1 + local.set $3 loop $for-loop|4 - local.get $1 + local.get $3 i64.const 50 i64.lt_s if - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -13620,11 +13607,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -13635,11 +13622,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#delete - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -13649,14 +13636,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i64.const 1 i64.add - local.set $1 + local.set $3 br $for-loop|4 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -13668,9 +13655,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 call $~lib/set/Set#clear - local.get $2 + local.get $4 i32.load offset=20 if i32.const 0 @@ -14257,9 +14244,9 @@ ) (func $std/set/testNumeric (local $0 i32) - (local $1 i64) + (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -14268,34 +14255,33 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 call $~lib/set/Set#constructor - local.tee $2 + local.tee $4 i32.store loop $for-loop|0 - local.get $1 + local.get $3 i64.const 100 i64.lt_u if - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -14305,11 +14291,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -14320,14 +14306,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i64.const 1 i64.add - local.set $1 + local.set $3 br $for-loop|0 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -14340,14 +14326,14 @@ unreachable end i64.const 50 - local.set $1 + local.set $3 loop $for-loop|1 - local.get $1 + local.get $3 i64.const 100 i64.lt_u if - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -14358,11 +14344,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -14373,14 +14359,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i64.const 1 i64.add - local.set $1 + local.set $3 br $for-loop|1 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -14400,52 +14386,52 @@ global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $4 i32.load offset=8 local.set $11 - local.get $2 + local.get $4 i32.load offset=16 - local.tee $12 - local.set $4 - local.get $8 + local.set $5 + local.get $1 + local.tee $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + 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 18 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 i32.store - local.get $3 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $3 + local.get $1 i32.const 0 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=8 - local.get $3 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 134217727 i32.gt_u if @@ -14457,9 +14443,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 8 - local.get $4 + local.get $5 i32.const 8 i32.gt_u select @@ -14468,52 +14454,52 @@ local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $9 call $~lib/memory/memory.fill - local.get $3 - local.get $5 + local.get $1 + local.get $6 i32.store - local.get $3 - local.get $5 + local.get $1 + local.get $6 call $~lib/rt/itcms/__link - local.get $3 - local.get $5 + local.get $1 + local.get $6 i32.store offset=4 - local.get $3 + local.get $1 local.get $9 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 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 $3 + local.get $2 + local.get $1 i32.store loop $for-loop|01 - local.get $7 - local.get $12 - i32.lt_s + local.get $5 + local.get $8 + i32.gt_s if local.get $11 - local.get $7 + local.get $8 i32.const 4 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $3 + local.get $1 local.get $0 - local.get $4 + local.get $2 i64.load call $~lib/array/Array#__set local.get $0 @@ -14521,19 +14507,19 @@ i32.add local.set $0 end - local.get $7 + local.get $8 i32.const 1 i32.add - local.set $7 + local.set $8 br $for-loop|01 end end - local.get $3 + local.get $1 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $3 + local.get $1 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -14541,21 +14527,21 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $10 - local.get $3 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $4 + local.tee $5 i32.store offset=8 loop $for-loop|2 - local.get $6 - local.get $3 + local.get $7 + local.get $1 i32.load offset=12 i32.lt_s if - local.get $2 - local.get $3 - local.get $6 + local.get $4 + local.get $1 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -14567,21 +14553,21 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 - local.get $6 + local.get $5 + local.get $1 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|2 end end - local.get $4 + local.get $5 i32.load offset=20 - local.get $2 + local.get $4 i32.load offset=20 i32.ne if @@ -14593,14 +14579,14 @@ unreachable end i64.const 0 - local.set $1 + local.set $3 loop $for-loop|3 - local.get $1 + local.get $3 i64.const 50 i64.lt_u if - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -14611,11 +14597,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#delete - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -14625,14 +14611,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i64.const 1 i64.add - local.set $1 + local.set $3 br $for-loop|3 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -14645,14 +14631,14 @@ unreachable end i64.const 0 - local.set $1 + local.set $3 loop $for-loop|4 - local.get $1 + local.get $3 i64.const 50 i64.lt_u if - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -14662,11 +14648,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -14676,12 +14662,12 @@ i32.const 5 call $~lib/builtins/abort unreachable - end - local.get $2 - local.get $1 + end + local.get $4 + local.get $3 call $~lib/set/Set#delete - local.get $2 - local.get $1 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -14691,14 +14677,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i64.const 1 i64.add - local.set $1 + local.set $3 br $for-loop|4 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -14710,9 +14696,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 call $~lib/set/Set#clear - local.get $2 + local.get $4 i32.load offset=20 if i32.const 0 @@ -15193,16 +15179,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -15585,9 +15570,9 @@ global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $0 i32.const 0 i32.store local.get $3 @@ -15595,16 +15580,15 @@ local.set $11 local.get $3 i32.load offset=16 - local.tee $12 - local.set $0 - local.get $8 + local.set $5 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $4 i64.const 0 @@ -15630,7 +15614,7 @@ local.get $4 i32.const 0 i32.store offset=12 - local.get $0 + local.get $5 i32.const 268435455 i32.gt_u if @@ -15642,9 +15626,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 i32.const 8 - local.get $0 + local.get $5 i32.const 8 i32.gt_u select @@ -15653,44 +15637,44 @@ local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $9 call $~lib/memory/memory.fill local.get $4 - local.get $5 + local.get $6 i32.store local.get $4 - local.get $5 + local.get $6 call $~lib/rt/itcms/__link local.get $4 - local.get $5 + local.get $6 i32.store offset=4 local.get $4 local.get $9 i32.store offset=8 local.get $4 - local.get $0 + local.get $5 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 $0 local.get $4 i32.store loop $for-loop|01 - local.get $6 - local.get $12 - i32.lt_s + local.get $5 + local.get $8 + i32.gt_s if local.get $11 - local.get $6 + local.get $8 i32.const 3 i32.shl i32.add - local.tee $5 + local.tee $6 i32.load offset=4 i32.const 1 i32.and @@ -15701,7 +15685,7 @@ i32.const 1 i32.add local.set $1 - local.get $5 + local.get $6 f32.load local.set $2 local.get $0 @@ -15724,12 +15708,12 @@ local.get $0 i32.const 1 i32.add - local.tee $5 + local.tee $6 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity local.get $4 - local.get $5 + local.get $6 i32.store offset=12 end local.get $4 @@ -15741,10 +15725,10 @@ local.get $2 f32.store end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|01 end end @@ -15816,8 +15800,8 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find11 - loop $while-continue|012 + block $__inlined_func$~lib/set/Set#find10 + loop $while-continue|011 local.get $0 if local.get $0 @@ -15833,12 +15817,12 @@ f32.load f32.eq end - br_if $__inlined_func$~lib/set/Set#find11 + br_if $__inlined_func$~lib/set/Set#find10 local.get $6 i32.const -2 i32.and local.set $0 - br $while-continue|012 + br $while-continue|011 end end i32.const 0 @@ -15925,8 +15909,8 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find14 - loop $while-continue|015 + block $__inlined_func$~lib/set/Set#find13 + loop $while-continue|014 local.get $0 if local.get $0 @@ -15942,12 +15926,12 @@ f32.load f32.eq end - br_if $__inlined_func$~lib/set/Set#find14 + br_if $__inlined_func$~lib/set/Set#find13 local.get $4 i32.const -2 i32.and local.set $0 - br $while-continue|015 + br $while-continue|014 end end i32.const 0 @@ -16005,8 +15989,8 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find17 - loop $while-continue|018 + block $__inlined_func$~lib/set/Set#find16 + loop $while-continue|017 local.get $0 if local.get $0 @@ -16022,12 +16006,12 @@ f32.load f32.eq end - br_if $__inlined_func$~lib/set/Set#find17 + br_if $__inlined_func$~lib/set/Set#find16 local.get $4 i32.const -2 i32.and local.set $0 - br $while-continue|018 + br $while-continue|017 end end i32.const 0 @@ -16107,8 +16091,8 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find20 - loop $while-continue|021 + block $__inlined_func$~lib/set/Set#find19 + loop $while-continue|020 local.get $0 if local.get $0 @@ -16124,12 +16108,12 @@ f32.load f32.eq end - br_if $__inlined_func$~lib/set/Set#find20 + br_if $__inlined_func$~lib/set/Set#find19 local.get $4 i32.const -2 i32.and local.set $0 - br $while-continue|021 + br $while-continue|020 end end i32.const 0 @@ -16186,8 +16170,8 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find23 - loop $while-continue|024 + block $__inlined_func$~lib/set/Set#find22 + loop $while-continue|023 local.get $0 if local.get $0 @@ -16203,12 +16187,12 @@ f32.load f32.eq end - br_if $__inlined_func$~lib/set/Set#find23 + br_if $__inlined_func$~lib/set/Set#find22 local.get $4 i32.const -2 i32.and local.set $0 - br $while-continue|024 + br $while-continue|023 end end i32.const 0 @@ -16266,8 +16250,8 @@ i32.add i32.load local.set $0 - block $__inlined_func$~lib/set/Set#find26 - loop $while-continue|027 + block $__inlined_func$~lib/set/Set#find25 + loop $while-continue|026 local.get $0 if local.get $0 @@ -16283,12 +16267,12 @@ f32.load f32.eq end - br_if $__inlined_func$~lib/set/Set#find26 + br_if $__inlined_func$~lib/set/Set#find25 local.get $4 i32.const -2 i32.and local.set $0 - br $while-continue|027 + br $while-continue|026 end end i32.const 0 @@ -16925,7 +16909,7 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -16934,16 +16918,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 f64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -16953,15 +16936,15 @@ i32.store offset=8 local.get $1 call $~lib/set/Set#constructor - local.tee $11 + local.tee $4 i32.store loop $for-loop|0 - local.get $12 + local.get $3 f64.const 100 f64.lt if - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -16971,11 +16954,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -16986,14 +16969,14 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 f64.const 1 f64.add - local.set $12 + local.set $3 br $for-loop|0 end end - local.get $11 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -17006,14 +16989,14 @@ unreachable end f64.const 50 - local.set $12 + local.set $3 loop $for-loop|1 - local.get $12 + local.get $3 f64.const 100 f64.lt if - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -17024,11 +17007,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -17039,14 +17022,14 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 f64.const 1 f64.add - local.set $12 + local.set $3 br $for-loop|1 end end - local.get $11 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -17059,59 +17042,59 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $10 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $1 i32.const 0 i32.store - local.get $11 + local.get $4 i32.load offset=8 - local.set $3 - local.get $11 + local.set $11 + local.get $4 i32.load offset=16 - local.tee $2 - local.set $1 - local.get $6 + local.set $6 + local.get $1 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1836 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 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 22 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $1 i32.store - local.get $10 + local.get $1 i32.const 0 i32.store - local.get $10 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $10 + local.get $1 i32.const 0 i32.store offset=4 - local.get $10 + local.get $1 i32.const 0 i32.store offset=8 - local.get $10 + local.get $1 i32.const 0 i32.store offset=12 - local.get $1 + local.get $6 i32.const 134217727 i32.gt_u if @@ -17123,74 +17106,74 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.const 8 - local.get $1 + local.get $6 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $5 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $5 i32.store offset=4 - local.get $9 local.get $5 - call $~lib/memory/memory.fill - local.get $10 local.get $9 + call $~lib/memory/memory.fill + local.get $1 + local.get $5 i32.store - local.get $10 - local.get $9 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link - local.get $10 - local.get $9 - i32.store offset=4 - local.get $10 + local.get $1 local.get $5 + i32.store offset=4 + local.get $1 + local.get $9 i32.store offset=8 - local.get $10 local.get $1 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $10 + local.get $0 + local.get $1 i32.store loop $for-loop|01 - local.get $2 - local.get $7 + local.get $6 + local.get $8 i32.gt_s if - local.get $3 - local.get $7 + local.get $11 + local.get $8 i32.const 4 i32.shl i32.add - local.tee $9 + local.tee $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 1 i32.add - local.set $0 - local.get $9 + local.set $2 + local.get $5 f64.load - local.set $12 + local.set $3 + local.get $0 local.get $1 - local.get $10 i32.load offset=12 i32.ge_u if - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -17201,62 +17184,62 @@ call $~lib/builtins/abort unreachable end - local.get $10 local.get $1 + local.get $0 i32.const 1 i32.add - local.tee $9 + local.tee $5 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity - local.get $10 - local.get $9 + local.get $1 + local.get $5 i32.store offset=12 end - local.get $10 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $0 i32.const 3 i32.shl i32.add - local.get $12 + local.get $3 f64.store end - local.get $7 + local.get $8 i32.const 1 i32.add - local.set $7 + local.set $8 br $for-loop|01 end end - local.get $10 - local.get $0 + local.get $1 + local.get $2 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 - local.get $0 + local.get $1 + 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 $4 local.get $10 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $1 + local.tee $0 i32.store offset=8 loop $for-loop|2 - local.get $8 - local.get $10 + local.get $7 + local.get $1 i32.load offset=12 i32.lt_s if - local.get $11 - local.get $10 - local.get $8 + local.get $4 + local.get $1 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -17268,21 +17251,21 @@ call $~lib/builtins/abort unreachable end + local.get $0 local.get $1 - local.get $10 - local.get $8 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $8 + local.get $7 i32.const 1 i32.add - local.set $8 + local.set $7 br $for-loop|2 end end - local.get $1 + local.get $0 i32.load offset=20 - local.get $11 + local.get $4 i32.load offset=20 i32.ne if @@ -17294,14 +17277,14 @@ unreachable end f64.const 0 - local.set $12 + local.set $3 loop $for-loop|3 - local.get $12 + local.get $3 f64.const 50 f64.lt if - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -17312,11 +17295,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#delete - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -17326,14 +17309,14 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 f64.const 1 f64.add - local.set $12 + local.set $3 br $for-loop|3 end end - local.get $11 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -17346,14 +17329,14 @@ unreachable end f64.const 0 - local.set $12 + local.set $3 loop $for-loop|4 - local.get $12 + local.get $3 f64.const 50 f64.lt if - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -17363,11 +17346,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -17378,11 +17361,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#delete - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -17392,14 +17375,14 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 f64.const 1 f64.add - local.set $12 + local.set $3 br $for-loop|4 end end - local.get $11 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -17411,9 +17394,9 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $4 call $~lib/set/Set#clear - local.get $11 + local.get $4 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 85034e017b..1f0497f94f 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -2561,29 +2561,34 @@ call $~lib/builtins/abort unreachable end + local.get $8 + i32.const 1 + i32.shl + local.tee $4 + i32.const 1073741820 + i32.lt_u + local.set $3 + i32.const 8 + local.get $1 + i32.shl + local.tee $1 + local.get $4 + i32.const 1073741820 + local.get $3 + select + local.tee $4 + i32.lt_u + local.set $3 block $__inlined_func$~lib/rt/itcms/__renew - local.get $8 - i32.const 1 - i32.shl - local.tee $2 - i32.const 1073741820 - local.get $2 - i32.const 1073741820 - i32.lt_u - select - local.tee $2 - i32.const 8 - local.get $1 - i32.shl - local.tee $1 + local.get $4 local.get $1 - local.get $2 - i32.lt_u + local.get $3 select local.tee $7 + local.tee $3 local.get $0 i32.load - local.tee $9 + local.tee $6 local.tee $1 i32.const 20 i32.sub @@ -2596,106 +2601,106 @@ i32.le_u if local.get $2 - local.get $7 + local.get $3 i32.store offset=16 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $7 + local.get $3 local.get $2 i32.load offset=12 call $~lib/rt/itcms/__new - local.set $5 - local.get $7 + local.tee $5 + local.set $4 + local.get $3 local.get $2 i32.load offset=16 local.tee $2 local.get $2 - local.get $7 + local.get $3 i32.gt_u select - local.set $6 + local.set $9 block $~lib/util/memory/memmove|inlined.0 local.get $1 - local.get $5 - local.tee $2 + local.get $4 i32.eq br_if $~lib/util/memory/memmove|inlined.0 local.get $1 - local.get $2 + local.get $4 i32.sub - local.get $6 + local.get $9 i32.sub i32.const 0 - local.get $6 + local.get $9 i32.const 1 i32.shl i32.sub i32.le_u if - local.get $2 + local.get $4 local.get $1 - local.get $6 + local.get $9 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end local.get $1 - local.get $2 + local.get $4 i32.gt_u if local.get $1 i32.const 7 i32.and - local.get $2 + local.get $4 i32.const 7 i32.and i32.eq if loop $while-continue|0 - local.get $2 + local.get $4 i32.const 7 i32.and if - local.get $6 + local.get $9 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $6 + local.get $9 i32.const 1 i32.sub - local.set $6 - local.get $2 + local.set $9 + local.get $4 local.tee $3 i32.const 1 i32.add - local.set $2 + local.set $4 local.get $1 - local.tee $4 + local.tee $2 i32.const 1 i32.add local.set $1 local.get $3 - local.get $4 + local.get $2 i32.load8_u i32.store8 br $while-continue|0 end end loop $while-continue|1 - local.get $6 + local.get $9 i32.const 8 i32.ge_u if - local.get $2 + local.get $4 local.get $1 i64.load i64.store - local.get $6 + local.get $9 i32.const 8 i32.sub - local.set $6 - local.get $2 + local.set $9 + local.get $4 i32.const 8 i32.add - local.set $2 + local.set $4 local.get $1 i32.const 8 i32.add @@ -2705,26 +2710,26 @@ end end loop $while-continue|2 - local.get $6 + local.get $9 if - local.get $2 + local.get $4 local.tee $3 i32.const 1 i32.add - local.set $2 + local.set $4 local.get $1 - local.tee $4 + local.tee $2 i32.const 1 i32.add local.set $1 local.get $3 - local.get $4 + local.get $2 i32.load8_u i32.store8 - local.get $6 + local.get $9 i32.const 1 i32.sub - local.set $6 + local.set $9 br $while-continue|2 end end @@ -2732,29 +2737,29 @@ local.get $1 i32.const 7 i32.and - local.get $2 + local.get $4 i32.const 7 i32.and i32.eq if loop $while-continue|3 - local.get $2 - local.get $6 + local.get $4 + local.get $9 i32.add i32.const 7 i32.and if - local.get $6 + local.get $9 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $2 - local.get $6 + local.get $4 + local.get $9 i32.const 1 i32.sub - local.tee $6 + local.tee $9 i32.add local.get $1 - local.get $6 + local.get $9 i32.add i32.load8_u i32.store8 @@ -2762,18 +2767,18 @@ end end loop $while-continue|4 - local.get $6 + local.get $9 i32.const 8 i32.ge_u if - local.get $2 - local.get $6 + local.get $4 + local.get $9 i32.const 8 i32.sub - local.tee $6 + local.tee $9 i32.add local.get $1 - local.get $6 + local.get $9 i32.add i64.load i64.store @@ -2782,16 +2787,16 @@ end end loop $while-continue|5 - local.get $6 + local.get $9 if - local.get $2 - local.get $6 + local.get $4 + local.get $9 i32.const 1 i32.sub - local.tee $6 + local.tee $9 i32.add local.get $1 - local.get $6 + local.get $9 i32.add i32.load8_u i32.store8 @@ -2811,7 +2816,7 @@ i32.sub call $~lib/memory/memory.fill local.get $1 - local.get $9 + local.get $6 i32.ne if local.get $0 @@ -2836,7 +2841,7 @@ local.get $1 i32.const 20 i32.sub - local.tee $2 + local.tee $1 i32.load offset=4 i32.const 3 i32.and @@ -2848,24 +2853,24 @@ i32.load offset=4 i32.const 3 i32.and - local.tee $1 + local.tee $4 global.get $~lib/rt/itcms/white i32.eqz i32.eq if - local.get $2 + local.get $1 call $~lib/rt/itcms/Object#makeGray else global.get $~lib/rt/itcms/state i32.const 1 i32.eq i32.const 0 - local.get $1 + local.get $4 i32.const 3 i32.eq select if - local.get $2 + local.get $1 call $~lib/rt/itcms/Object#makeGray end end diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index c2905c029e..a55826f6f3 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -170,14 +170,18 @@ call $~lib/rt/itcms/__visit global.get $std/staticarray/arr3 local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end global.get $std/staticarray/arr4 local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end i32.const 1088 @@ -2898,7 +2902,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -2912,18 +2916,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -2931,20 +2932,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -2957,33 +2958,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end @@ -3351,34 +3352,35 @@ return end local.get $0 - i32.load offset=4 local.tee $1 + i32.load offset=4 + local.tee $2 local.get $0 i32.load offset=12 i32.const 2 i32.shl i32.add - local.set $2 + local.set $3 loop $while-continue|0 - local.get $1 local.get $2 + local.get $3 i32.lt_u if - local.get $1 + local.get $2 i32.load - local.tee $3 + local.tee $0 if - local.get $3 + local.get $0 call $~lib/rt/itcms/__visit end - local.get $1 + local.get $2 i32.const 4 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end - local.get $0 + local.get $1 i32.load call $~lib/rt/itcms/__visit return @@ -3390,28 +3392,29 @@ unreachable end local.get $0 + local.tee $1 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.add - local.set $1 + local.set $2 loop $while-continue|00 - local.get $0 local.get $1 + local.get $2 i32.lt_u if - local.get $0 + local.get $1 i32.load - local.tee $2 + local.tee $0 if - local.get $2 + local.get $0 call $~lib/rt/itcms/__visit end - local.get $0 + local.get $1 i32.const 4 i32.add - local.set $0 + local.set $1 br $while-continue|00 end end diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index 3511d4eab8..605f946703 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -622,16 +622,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 21056 i32.load i32.gt_u @@ -643,7 +643,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 21060 @@ -659,26 +659,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -2127,38 +2127,38 @@ i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $1 local.get $3 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -3327,7 +3327,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -3341,18 +3341,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -3360,20 +3357,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -3386,33 +3383,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end @@ -3524,6 +3521,278 @@ i32.store16 end ) + (func $~lib/number/I64#toString (param $0 i64) (result 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 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 + local.get $0 + i64.sub + local.get $0 + local.get $0 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.tee $4 + select + local.tee $0 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.wrap_i64 + local.tee $3 + 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 $4 + 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 $3 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.get $4 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $while-continue|0 + local.get $0 + i64.const 100000000 + i64.ge_u + if + local.get $1 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $0 + i64.const 100000000 + i64.div_u + local.tee $0 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.tee $3 + i32.const 10000 + i32.rem_u + local.tee $5 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 19212 + i32.add + i64.load32_u + local.get $5 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 19212 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + local.get $1 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 19212 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 19212 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + local.get $0 + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + end + local.get $4 + 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 + local.get $1 + ) (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -6517,7 +6786,7 @@ i32.const 18944 i32.store offset=4 local.get $0 - call $~lib/util/number/itoa64 + call $~lib/number/I64#toString local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 @@ -6541,7 +6810,7 @@ i32.const 20784 i32.store offset=4 local.get $2 - call $~lib/util/number/itoa64 + call $~lib/number/I64#toString local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 @@ -6582,7 +6851,7 @@ i32.const 20944 i32.store offset=4 local.get $3 - call $~lib/util/number/itoa64 + call $~lib/number/I64#toString local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 @@ -6606,7 +6875,7 @@ i32.const 21008 i32.store offset=4 local.get $1 - call $~lib/util/number/itoa64 + call $~lib/number/I64#toString local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 @@ -7287,273 +7556,4 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/util/number/itoa64 (param $0 i64) (result 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 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 - local.get $0 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 19200 - return - end - i64.const 0 - local.get $0 - i64.sub - local.get $0 - local.get $0 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.tee $4 - select - local.tee $0 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.wrap_i64 - local.tee $3 - 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 $4 - 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 $3 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $0 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $0 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $0 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $0 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.get $4 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $while-continue|0 - local.get $0 - i64.const 100000000 - i64.ge_u - if - local.get $1 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $0 - i64.const 100000000 - i64.div_u - local.tee $0 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.tee $3 - i32.const 10000 - i32.rem_u - local.tee $5 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 19212 - i32.add - i64.load32_u - local.get $5 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 19212 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - local.get $1 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 10000 - i32.div_u - local.tee $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 19212 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 19212 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $1 - local.get $0 - i32.wrap_i64 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - end - local.get $4 - 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 - local.get $1 - ) ) diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index 192f170923..6ce3f30408 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -207,16 +207,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 22512 i32.load i32.gt_u @@ -228,7 +228,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 22516 @@ -244,26 +244,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1712,38 +1712,38 @@ i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $1 local.get $3 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -2723,7 +2723,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -2737,18 +2737,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -2756,20 +2753,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -2782,33 +2779,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index b43ea14bde..95a19f3fa1 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -17,7 +17,7 @@ (type $i32_=>_f64 (func (param i32) (result f64))) (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) - (type $i64_i32_i64_i32_i64_i32_=>_i32 (func (param i64 i32 i64 i32 i64 i32) (result i32))) + (type $i64_i64_i32_i64_i32_=>_i32 (func (param i64 i64 i32 i64 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $std/string/str (mut i32) (i32.const 1056)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -1070,8 +1070,10 @@ (local $1 i32) global.get $std/string/str local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end i32.const 1264 @@ -4379,8 +4381,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - i32.const 4240 - local.set $5 i32.const 4236 i32.load i32.const 1 @@ -4392,6 +4392,8 @@ return end i32.const 4240 + local.set $5 + i32.const 4240 i32.load16_u local.set $0 loop $while-continue|0 @@ -4585,7 +4587,6 @@ local.set $1 local.get $0 if - local.get $4 local.get $5 i32.load16_u local.tee $0 @@ -4621,7 +4622,8 @@ end end local.tee $0 - i32.le_u + local.get $4 + i32.ge_u if local.get $3 i32.eqz @@ -4656,8 +4658,6 @@ (local $3 i64) (local $4 i32) (local $5 i32) - i32.const 4288 - local.set $5 i32.const 4284 i32.load i32.const 1 @@ -4669,6 +4669,8 @@ return end i32.const 4288 + local.set $5 + i32.const 4288 i32.load16_u local.set $0 loop $while-continue|0 @@ -4862,7 +4864,6 @@ local.set $1 local.get $0 if - local.get $4 local.get $5 i32.load16_u local.tee $0 @@ -4898,7 +4899,8 @@ end end local.tee $0 - i32.le_u + local.get $4 + i32.ge_u if local.get $3 i64.eqz @@ -6117,14 +6119,15 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) local.get $0 i32.load offset=12 - local.tee $6 + local.tee $7 i32.const 1 i32.add - local.tee $5 + local.tee $6 local.set $2 - local.get $5 + local.get $6 local.get $0 i32.load offset=8 local.tee $4 @@ -6144,19 +6147,12 @@ unreachable end local.get $4 - local.get $0 - i32.load - local.tee $7 - 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.set $5 local.get $2 i32.const 8 local.get $2 @@ -6166,9 +6162,20 @@ i32.const 2 i32.shl local.tee $2 - local.get $2 local.get $3 + i32.const 1073741820 + local.get $5 + select + local.tee $3 i32.lt_u + local.set $5 + local.get $4 + local.get $0 + i32.load + local.tee $8 + local.get $3 + local.get $2 + local.get $5 select local.tee $3 call $~lib/rt/itcms/__renew @@ -6179,7 +6186,7 @@ i32.sub call $~lib/memory/memory.fill local.get $2 - local.get $7 + local.get $8 i32.ne if local.get $0 @@ -6199,7 +6206,7 @@ end local.get $0 i32.load offset=4 - local.get $6 + local.get $7 i32.const 2 i32.shl i32.add @@ -6210,7 +6217,7 @@ i32.const 1 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $6 i32.store offset=12 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) @@ -6486,87 +6493,89 @@ local.get $2 call $~lib/util/number/utoa32_dec_lut ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i32) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) + (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 $8 i64) - (local $9 i32) - (local $10 i64) + (local $8 i32) + (local $9 i64) + (local $10 i32) (local $11 i64) - local.get $2 + (local $12 i64) + local.get $1 local.get $0 i64.sub - local.set $8 - local.get $2 + local.set $9 + local.get $1 i64.const 1 i32.const 0 - local.get $3 + local.get $2 i32.sub - local.tee $9 + local.tee $10 i64.extend_i32_s local.tee $0 i64.shl - local.tee $10 + local.tee $11 i64.const 1 i64.sub - local.tee $11 + local.tee $12 i64.and local.set $6 - local.get $2 + local.get $1 local.get $0 i64.shr_u i32.wrap_i64 - local.tee $1 - local.set $3 - local.get $1 + local.tee $2 + local.set $5 + local.get $2 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $5 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $5 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $5 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $5 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $5 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $5 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $5 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $5 i32.const 100000000 i32.ge_u i32.add end end - local.set $7 + local.set $8 loop $while-continue|0 - local.get $7 + local.get $8 i32.const 0 i32.gt_s if @@ -6582,277 +6591,277 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $7 + local.get $8 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 $1 + local.get $2 i32.const 1000000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 1000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 1000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 - local.set $3 + local.get $2 + local.set $5 i32.const 0 - local.set $1 + local.set $2 br $break|1 end i32.const 0 - local.set $3 + local.set $5 end - local.get $3 + local.get $4 local.get $5 i32.or if - local.get $5 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 i32.const 1 i32.shl i32.const 22864 i32.add - local.get $3 + local.get $5 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 end - local.get $7 + local.get $8 i32.const 1 i32.sub - local.set $7 + local.set $8 local.get $6 - local.get $1 + local.get $2 i64.extend_i32_u - local.get $9 + local.get $10 i64.extend_i32_s i64.shl i64.add local.tee $0 - local.get $4 + local.get $3 i64.le_u if - local.get $7 + local.get $8 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $7 + local.get $8 i32.const 2 i32.shl i32.const 23792 i32.add i64.load32_u - local.get $9 + local.get $10 i64.extend_i32_s i64.shl - local.set $2 - local.get $5 + local.set $1 + local.get $4 i32.const 1 i32.shl i32.const 22862 i32.add - local.tee $7 + local.tee $8 i32.load16_u - local.set $3 + local.set $5 loop $while-continue|3 - local.get $2 - local.get $4 + local.get $1 + local.get $3 local.get $0 i64.sub i64.le_u i32.const 0 local.get $0 - local.get $8 + local.get $9 i64.lt_u select if (result i32) i32.const 1 - local.get $8 + local.get $9 local.get $0 i64.sub local.get $0 - local.get $2 + local.get $1 i64.add local.tee $6 - local.get $8 + local.get $9 i64.sub i64.gt_u local.get $6 - local.get $8 + local.get $9 i64.lt_u select else i32.const 0 end if - local.get $3 + local.get $5 i32.const 1 i32.sub - local.set $3 + local.set $5 local.get $0 - local.get $2 + local.get $1 i64.add local.set $0 br $while-continue|3 end end - local.get $7 - local.get $3 - i32.store16 + local.get $8 local.get $5 + i32.store16 + local.get $4 return end br $while-continue|0 end end - local.get $9 - i64.extend_i32_s - local.set $0 loop $while-continue|4 - local.get $4 + local.get $3 i64.const 10 i64.mul - local.set $4 + local.set $3 local.get $6 i64.const 10 i64.mul - local.tee $2 - local.get $0 + local.tee $0 + local.get $10 + i64.extend_i32_s i64.shr_u - local.tee $6 - local.get $5 + local.tee $1 + local.get $4 i64.extend_i32_s i64.or i64.const 0 i64.ne if - local.get $5 + local.get $4 + local.tee $2 + i32.const 1 + i32.add + local.set $4 + local.get $2 i32.const 1 i32.shl i32.const 22864 i32.add - local.get $6 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 end - local.get $7 + local.get $8 i32.const 1 i32.sub - local.set $7 - local.get $4 - local.get $2 - local.get $11 + local.set $8 + local.get $3 + local.get $0 + local.get $12 i64.and local.tee $6 i64.le_u br_if $while-continue|4 end - local.get $7 + local.get $8 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K local.get $6 local.set $0 - local.get $8 + local.get $9 i32.const 0 - local.get $7 + local.get $8 i32.sub i32.const 2 i32.shl @@ -6860,39 +6869,39 @@ i32.add i64.load32_u i64.mul - local.set $2 - local.get $5 + local.set $1 + local.get $4 i32.const 1 i32.shl i32.const 22862 i32.add - local.tee $7 + local.tee $8 i32.load16_u - local.set $3 + local.set $5 loop $while-continue|6 - local.get $10 - local.get $4 + local.get $11 + local.get $3 local.get $0 i64.sub i64.le_u i32.const 0 local.get $0 - local.get $2 + local.get $1 i64.lt_u select if (result i32) i32.const 1 - local.get $2 + local.get $1 local.get $0 i64.sub local.get $0 - local.get $10 + local.get $11 i64.add local.tee $6 - local.get $2 + local.get $1 i64.sub i64.gt_u - local.get $2 + local.get $1 local.get $6 i64.gt_u select @@ -6900,21 +6909,21 @@ i32.const 0 end if - local.get $3 + local.get $5 i32.const 1 i32.sub - local.set $3 + local.set $5 local.get $0 - local.get $10 + local.get $11 i64.add local.set $0 br $while-continue|6 end end - local.get $7 - local.get $3 - i32.store16 + local.get $8 local.get $5 + i32.store16 + local.get $4 ) (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -7259,20 +7268,24 @@ (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) (local $1 i64) (local $2 i64) - (local $3 i64) + (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i64) + (local $5 i64) + (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) + (local $8 i64) + (local $9 i64) (local $10 i64) (local $11 i64) - (local $12 i64) + (local $12 f64) + (local $13 i64) + (local $14 i64) + (local $15 i64) + (local $16 i64) local.get $0 f64.const 0 f64.lt - local.tee $8 + local.tee $6 if (result f64) i32.const 22864 i32.const 45 @@ -7283,73 +7296,73 @@ local.get $0 end i64.reinterpret_f64 - local.tee $2 + local.tee $1 i64.const 9218868437227405312 i64.and i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $7 + local.tee $4 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl + local.set $2 + local.get $4 + i32.const 1 + local.get $4 + select + i32.const 1075 + i32.sub + local.tee $4 + i32.const 1 + i32.sub local.get $2 + local.get $1 i64.const 4503599627370495 i64.and i64.add - local.tee $1 + local.tee $2 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $2 + local.tee $1 i64.clz i32.wrap_i64 - local.set $4 - local.get $2 - local.get $4 + local.tee $3 + i32.sub + local.set $7 + local.get $1 + local.get $3 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $7 - i32.const 1 - local.get $7 - select - i32.const 1075 - i32.sub - local.tee $7 - i32.const 1 - i32.sub - local.get $4 - i32.sub - local.set $4 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $5 + local.tee $3 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $7 - local.get $5 - i32.sub local.get $4 + local.get $3 + i32.sub + local.get $7 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $4 + local.get $7 global.set $~lib/util/number/_exp - i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $4 + local.tee $7 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -7358,28 +7371,31 @@ f64.add local.tee $0 i32.trunc_f64_s - local.tee $5 - local.get $0 - local.get $5 + local.tee $3 f64.convert_i32_s + local.set $12 + i32.const 348 + local.get $3 + local.get $0 + local.get $12 f64.ne i32.add i32.const 3 i32.shr_s i32.const 1 i32.add - local.tee $5 + local.tee $3 i32.const 3 i32.shl - local.tee $9 + local.tee $4 i32.sub global.set $~lib/util/number/_K - local.get $9 + local.get $4 i32.const 22920 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $5 + local.get $3 i32.const 1 i32.shl i32.const 23616 @@ -7387,68 +7403,81 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $3 - i64.const 32 - i64.shr_u - local.set $2 - local.get $3 + local.tee $13 i64.const 4294967295 i64.and - local.tee $3 + local.tee $1 + local.get $2 + local.get $2 + i64.clz + i64.shl + local.tee $8 + i64.const 4294967295 + i64.and + local.tee $14 + i64.mul + local.set $9 global.get $~lib/util/number/_frc_plus - local.tee $6 + local.tee $5 + i64.const 4294967295 + i64.and + local.set $2 + local.get $1 + local.get $5 i64.const 32 i64.shr_u - local.tee $11 + local.tee $15 i64.mul - local.get $3 - local.get $6 + local.get $1 + local.get $2 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $5 + global.get $~lib/util/number/_frc_minus + local.tee $10 i64.const 4294967295 i64.and - local.tee $12 + local.set $11 + local.get $1 + local.get $8 + i64.const 32 + i64.shr_u + local.tee $16 i64.mul + local.get $9 i64.const 32 i64.shr_u i64.add - local.set $6 - local.get $8 - i32.const 1 - i32.shl - i32.const 22864 - i32.add - local.get $2 - local.get $1 + local.set $8 local.get $1 - i64.clz - i32.wrap_i64 - local.tee $5 - i64.extend_i32_s - i64.shl - local.tee $1 + local.get $10 i64.const 32 i64.shr_u local.tee $10 i64.mul - local.get $3 - local.get $10 - i64.mul - local.get $3 local.get $1 - i64.const 4294967295 - i64.and - local.tee $1 + local.get $11 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $10 + local.set $9 + local.get $13 + i64.const 32 + i64.shr_u + local.tee $1 + local.get $15 + i64.mul + local.get $5 i64.const 32 i64.shr_u i64.add local.get $1 local.get $2 i64.mul - local.get $10 + local.get $5 i64.const 4294967295 i64.and i64.add @@ -7457,25 +7486,20 @@ i64.const 32 i64.shr_u i64.add - global.get $~lib/util/number/_exp_pow - local.tee $9 - local.get $7 - local.get $5 - i32.sub - i32.add - i32.const -64 - i32.sub - local.get $2 - local.get $11 + i64.const 1 + i64.sub + local.tee $2 + local.get $1 + local.get $10 i64.mul - local.get $6 + local.get $9 i64.const 32 i64.shr_u i64.add - local.get $2 - local.get $12 + local.get $1 + local.get $11 i64.mul - local.get $6 + local.get $9 i64.const 4294967295 i64.and i64.add @@ -7485,41 +7509,25 @@ i64.shr_u i64.add i64.const 1 + i64.add i64.sub - local.tee $1 - local.get $4 - local.get $9 - i32.add - i32.const -64 - i32.sub - local.get $1 - local.get $2 - global.get $~lib/util/number/_frc_minus - local.tee $1 - i64.const 32 - i64.shr_u - local.tee $6 - i64.mul - local.get $3 + local.set $5 local.get $6 - i64.mul - local.get $3 + i32.const 1 + i32.shl + i32.const 22864 + i32.add local.get $1 - i64.const 4294967295 - i64.and - local.tee $3 + local.get $16 i64.mul + local.get $8 i64.const 32 i64.shr_u i64.add - local.tee $1 - i64.const 32 - i64.shr_u - i64.add - local.get $2 - local.get $3 - i64.mul local.get $1 + local.get $14 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -7528,16 +7536,20 @@ i64.const 32 i64.shr_u i64.add - i64.const 1 - i64.add - i64.sub - local.get $8 + local.get $2 + global.get $~lib/util/number/_exp_pow + local.get $7 + i32.add + i32.const -64 + i32.sub + local.get $5 + local.get $6 call $~lib/util/number/genDigits - local.get $8 + local.get $6 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $8 + local.get $6 i32.add ) (func $std/string/getString (result i32) @@ -7578,34 +7590,35 @@ return end local.get $0 - i32.load offset=4 local.tee $1 + i32.load offset=4 + local.tee $2 local.get $0 i32.load offset=12 i32.const 2 i32.shl i32.add - local.set $2 + local.set $3 loop $while-continue|0 - local.get $1 local.get $2 + local.get $3 i32.lt_u if - local.get $1 + local.get $2 i32.load - local.tee $3 + local.tee $0 if - local.get $3 + local.get $0 call $~lib/rt/itcms/__visit end - local.get $1 + local.get $2 i32.const 4 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end - local.get $0 + local.get $1 i32.load call $~lib/rt/itcms/__visit return @@ -7922,8 +7935,8 @@ (local $1 i32) (local $2 f64) (local $3 i32) - (local $4 f32) - (local $5 i32) + (local $4 i32) + (local $5 f32) global.get $~lib/memory/__stack_pointer i32.const 44 i32.sub @@ -8620,8 +8633,6 @@ i32.shr_u local.tee $1 local.get $1 - i32.const 0 - i32.gt_s select local.set $3 i32.const 0 @@ -8667,27 +8678,27 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 536870910 - i32.gt_s + i32.gt_u select i32.const 2204 i32.load i32.const 1 i32.shr_u - local.tee $1 - i32.sub local.tee $3 + i32.sub + local.tee $4 i32.const 0 i32.lt_s if (result i32) i32.const 1 else local.get $0 - local.get $3 + local.get $4 i32.const 2208 - local.get $1 + local.get $3 call $~lib/util/string/compareImpl end if @@ -10681,8 +10692,8 @@ i32.const 0 call $~lib/util/string/strtol f32.demote_f64 - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 f32.eq if i32.const 0 diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index d1be29d48a..2733b33ce8 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -2100,7 +2100,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -2114,18 +2114,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -2133,20 +2130,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -2159,33 +2156,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end @@ -3514,22 +3511,22 @@ if global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/stringToId - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> call $~lib/map/Map<~lib/string/String,usize>#find if global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/stringToId - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> call $~lib/map/Map<~lib/string/String,usize>#find - local.tee $1 + local.tee $2 i32.eqz if i32.const 1648 @@ -3539,7 +3536,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3557,50 +3554,50 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 24 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store - local.get $1 + local.get $2 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 i32.const 3 i32.store offset=4 - local.get $1 + local.get $2 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 i32.const 4 i32.store offset=12 - local.get $1 + local.get $2 i32.const 0 i32.store offset=16 - local.get $1 + 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 $1 + local.get $2 global.set $~lib/symbol/stringToId global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3611,58 +3608,58 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 24 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store - local.get $1 + local.get $2 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 i32.const 3 i32.store offset=4 - local.get $1 + local.get $2 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 i32.const 4 i32.store offset=12 - local.get $1 + local.get $2 i32.const 0 i32.store offset=16 - local.get $1 + 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 $1 + local.get $2 global.set $~lib/symbol/idToString end global.get $~lib/symbol/nextId - local.tee $3 + local.tee $6 i32.const 1 i32.add global.set $~lib/symbol/nextId - local.get $3 + local.get $6 i32.eqz if unreachable @@ -3670,7 +3667,7 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $~lib/symbol/stringToId - local.tee $1 + local.tee $2 i32.store local.get $0 i32.const 4 @@ -3683,26 +3680,26 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> - local.tee $6 + local.tee $9 call $~lib/map/Map<~lib/string/String,usize>#find local.tee $0 if local.get $0 - local.get $3 + local.get $6 i32.store offset=4 else - local.get $1 + local.get $2 i32.load offset=16 - local.get $1 + local.get $2 i32.load offset=12 i32.eq if - local.get $1 + local.get $2 i32.load offset=20 - local.get $1 + local.get $2 i32.load offset=12 i32.const 3 i32.mul @@ -3710,10 +3707,10 @@ i32.div_s i32.lt_s if (result i32) - local.get $1 + local.get $2 i32.load offset=4 else - local.get $1 + local.get $2 i32.load offset=4 i32.const 1 i32.shl @@ -3744,7 +3741,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -3752,59 +3749,59 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $10 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $1 + local.get $2 i32.load offset=8 - local.tee $10 - local.get $1 + local.tee $3 + local.get $2 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $9 - local.get $2 + local.set $5 + local.get $1 local.set $0 loop $while-continue|0 - local.get $9 - local.get $10 + local.get $3 + local.get $5 i32.ne if - local.get $10 + local.get $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $3 i32.load - local.tee $7 + local.tee $8 i32.store offset=8 local.get $0 - local.get $7 + local.get $8 i32.store local.get $0 - local.get $10 + local.get $3 i32.load offset=4 i32.store offset=4 local.get $0 - local.get $8 local.get $7 + local.get $8 call $~lib/util/hash/HASH<~lib/string/String> local.get $4 i32.and i32.const 2 i32.shl i32.add - local.tee $7 + local.tee $8 i32.load i32.store offset=8 - local.get $7 + local.get $8 local.get $0 i32.store local.get $0 @@ -3812,35 +3809,35 @@ i32.add local.set $0 end - local.get $10 + local.get $3 i32.const 12 i32.add - local.set $10 + local.set $3 br $while-continue|0 end end - local.get $1 - local.get $8 + local.get $2 + local.get $7 i32.store - local.get $1 - local.get $8 + local.get $2 + local.get $7 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 local.get $4 i32.store offset=4 - local.get $1 local.get $2 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $2 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 - local.get $5 + local.get $2 + local.get $10 i32.store offset=12 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -3849,12 +3846,12 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.load offset=8 local.tee $0 i32.store - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=16 local.tee $4 i32.const 1 @@ -3868,33 +3865,33 @@ local.tee $0 i32.const 1056 i32.store - local.get $1 + local.get $2 i32.const 1056 i32.const 1 call $~lib/rt/itcms/__link local.get $0 - local.get $3 + local.get $6 i32.store offset=4 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $1 + local.get $2 i32.load - local.get $6 - local.get $1 + local.get $9 + local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $2 i32.load i32.store offset=8 - local.get $1 + local.get $2 local.get $0 i32.store end @@ -3903,11 +3900,11 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $~lib/symbol/idToString local.tee $0 + global.get $~lib/symbol/idToString + local.tee $2 i32.store - local.get $1 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3918,10 +3915,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 + local.get $2 i32.load - local.get $3 - local.tee $2 + local.get $6 i32.const -1028477379 i32.mul i32.const 374761397 @@ -3930,81 +3926,81 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor - local.tee $7 - local.get $0 + local.tee $8 + local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find - loop $while-continue|01 - local.get $1 + loop $while-continue|00 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $1 + local.get $6 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $1 i32.const -2 i32.and - local.set $1 - br $while-continue|01 + local.set $0 + br $while-continue|00 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.const 1056 i32.store offset=4 - local.get $0 + local.get $2 i32.const 1056 i32.const 1 call $~lib/rt/itcms/__link else - local.get $0 + local.get $2 i32.load offset=16 - local.get $0 + local.get $2 i32.load offset=12 i32.eq if - local.get $0 + local.get $2 i32.load offset=20 - local.get $0 + local.get $2 i32.load offset=12 i32.const 3 i32.mul @@ -4012,17 +4008,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $0 + local.get $2 i32.load offset=4 else - local.get $0 + local.get $2 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4032,66 +4028,66 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.const 1 i32.add - local.tee $1 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $6 + local.tee $9 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=8 - local.tee $10 - local.get $0 + local.tee $3 + local.get $2 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $5 - local.get $4 - local.set $1 - loop $while-continue|02 - local.get $5 + local.set $10 + local.get $1 + local.set $0 + loop $while-continue|01 + local.get $3 local.get $10 i32.ne if - local.get $10 + local.get $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $1 - local.get $10 + local.get $0 + local.get $3 i32.load - local.tee $9 + local.tee $5 i32.store - local.get $1 - local.get $10 + local.get $0 + local.get $3 i32.load offset=4 i32.store offset=4 - local.get $1 - local.get $8 - local.get $3 - local.get $9 + local.get $0 + local.get $7 + local.get $4 + local.get $5 i32.const -1028477379 i32.mul i32.const 374761397 @@ -4100,22 +4096,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 - local.get $9 + local.tee $5 + local.get $5 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $9 - local.get $9 + local.tee $5 + local.get $5 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $9 - local.get $9 + local.tee $5 + local.get $5 i32.const 16 i32.shr_u i32.xor @@ -4123,46 +4119,46 @@ i32.const 2 i32.shl i32.add - local.tee $9 + local.tee $5 i32.load i32.store offset=8 - local.get $9 - local.get $1 + local.get $5 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 12 i32.add - local.set $1 + local.set $0 end - local.get $10 + local.get $3 i32.const 12 i32.add - local.set $10 - br $while-continue|02 + local.set $3 + br $while-continue|01 end end - local.get $0 - local.get $8 + local.get $2 + local.get $7 i32.store - local.get $0 - local.get $8 + local.get $2 + local.get $7 i32.const 0 call $~lib/rt/itcms/__link - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 + local.get $2 local.get $4 + i32.store offset=4 + local.get $2 + local.get $1 i32.store offset=8 - local.get $0 - local.get $4 + local.get $2 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $0 - local.get $6 + local.get $2 + local.get $9 i32.store offset=12 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -4171,53 +4167,53 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $0 i32.store - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=16 - local.tee $3 + local.tee $4 i32.const 1 i32.add i32.store offset=16 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.const 12 i32.mul i32.add - local.tee $1 - local.get $2 + local.tee $0 + local.get $6 i32.store - local.get $1 + local.get $0 i32.const 1056 i32.store offset=4 - local.get $0 + local.get $2 i32.const 1056 i32.const 1 call $~lib/rt/itcms/__link - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $1 local.get $0 + local.get $2 i32.load - local.get $7 - local.get $0 + local.get $8 + local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $0 + local.tee $2 i32.load i32.store offset=8 + local.get $2 local.get $0 - local.get $1 i32.store end global.get $~lib/memory/__stack_pointer @@ -4228,7 +4224,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $6 return end i32.const 19104 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index cc5c2be38f..7202dba722 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -35,7 +35,7 @@ (type $i32_i32_f64_=>_none (func (param i32 i32 f64))) (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) - (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $i32_i64_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i64 i32 i64 i32) (result i32))) (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) (type $f64_=>_i32 (func (param f64) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -6200,10 +6200,6 @@ local.get $0 i32.reinterpret_f32 local.tee $1 - i32.const -2147483648 - i32.and - local.set $4 - local.get $1 i32.const 23 i32.shr_u i32.const 255 @@ -6235,6 +6231,10 @@ f32.mul br $__inlined_func$~lib/math/NativeMathf.mod end + local.get $1 + i32.const -2147483648 + i32.and + local.set $4 local.get $2 if (result i32) local.get $1 @@ -6286,6 +6286,7 @@ br $while-continue|0 end end + local.get $2 local.get $1 i32.const 8388608 i32.ge_u @@ -6300,17 +6301,17 @@ local.set $1 end local.get $1 - local.get $1 i32.const 8 i32.shl i32.clz local.tee $3 + i32.sub + local.set $2 + local.get $1 + local.get $3 i32.shl local.set $1 local.get $2 - local.get $3 - i32.sub - local.tee $2 i32.const 0 i32.gt_s if (result i32) @@ -6348,16 +6349,12 @@ block $__inlined_func$~lib/math/NativeMath.mod (result f64) local.get $0 i64.reinterpret_f64 - local.tee $4 - i64.const 63 - i64.shr_u - local.set $6 - local.get $4 + local.tee $3 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $5 + local.tee $4 i64.const 2047 i64.eq if @@ -6369,37 +6366,41 @@ f64.div br $__inlined_func$~lib/math/NativeMath.mod end - local.get $4 + local.get $3 i64.const 1 i64.shl - local.tee $3 + local.tee $5 i64.const -9223372036854775808 i64.le_u if local.get $0 - local.get $3 + local.get $5 i64.const -9223372036854775808 i64.ne f64.convert_i32_u f64.mul br $__inlined_func$~lib/math/NativeMath.mod end - local.get $5 + local.get $3 + i64.const 63 + i64.shr_u + local.set $6 + local.get $4 i64.eqz if (result i64) - local.get $4 + local.get $3 i64.const 1 - local.get $5 local.get $4 + local.get $3 i64.const 12 i64.shl i64.clz i64.sub - local.tee $5 + local.tee $4 i64.sub i64.shl else - local.get $4 + local.get $3 i64.const 4503599627370495 i64.and i64.const 4503599627370496 @@ -6408,7 +6409,7 @@ local.set $3 block $folding-inner0 loop $while-continue|0 - local.get $5 + local.get $4 i64.const 1024 i64.gt_s if @@ -6429,13 +6430,14 @@ i64.const 1 i64.shl local.set $3 - local.get $5 + local.get $4 i64.const 1 i64.sub - local.set $5 + local.set $4 br $while-continue|0 end end + local.get $4 local.get $3 i64.const 4503599627370496 i64.ge_u @@ -6450,31 +6452,31 @@ local.set $3 end local.get $3 - local.get $3 i64.const 11 i64.shl i64.clz - local.tee $3 - i64.shl + local.tee $5 + i64.sub local.set $4 - local.get $5 local.get $3 - i64.sub - local.tee $3 + local.get $5 + i64.shl + local.set $3 + local.get $4 i64.const 0 i64.gt_s if (result i64) - local.get $4 + local.get $3 i64.const 4503599627370496 i64.sub - local.get $3 + local.get $4 i64.const 52 i64.shl i64.or else - local.get $4 - i64.const 1 local.get $3 + i64.const 1 + local.get $4 i64.sub i64.shr_u end @@ -24109,6 +24111,8 @@ local.set $3 local.get $0 i32.load offset=8 + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24129,7 +24133,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $2 @@ -24171,15 +24175,15 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $2 local.get $5 i32.gt_s if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -24188,13 +24192,13 @@ i32.add i32.load8_s call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -24203,10 +24207,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end local.get $5 i32.const 1 @@ -24216,8 +24220,8 @@ end end local.get $6 - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -24226,13 +24230,13 @@ i32.add i32.load8_s call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -24241,6 +24245,8 @@ 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 @@ -24276,7 +24282,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -24290,18 +24296,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -24309,20 +24312,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -24335,33 +24338,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end @@ -24456,6 +24459,8 @@ local.set $3 local.get $0 i32.load offset=8 + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24476,7 +24481,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $2 @@ -24518,15 +24523,15 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $2 local.get $5 i32.gt_s if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -24535,13 +24540,13 @@ i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -24550,10 +24555,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end local.get $5 i32.const 1 @@ -24563,8 +24568,8 @@ end end local.get $6 - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -24573,13 +24578,13 @@ i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -24588,6 +24593,8 @@ 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 @@ -24707,6 +24714,8 @@ i32.load offset=8 i32.const 1 i32.shr_u + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24727,7 +24736,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $2 @@ -24769,15 +24778,15 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $2 local.get $5 i32.gt_s if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -24788,13 +24797,13 @@ i32.add i32.load16_s call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -24803,10 +24812,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end local.get $5 i32.const 1 @@ -24816,8 +24825,8 @@ end end local.get $6 - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -24828,13 +24837,13 @@ i32.add i32.load16_s call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -24843,6 +24852,8 @@ 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 @@ -24941,6 +24952,8 @@ i32.load offset=8 i32.const 1 i32.shr_u + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24961,7 +24974,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $2 @@ -25003,15 +25016,15 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $2 local.get $5 i32.gt_s if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -25022,13 +25035,13 @@ i32.add i32.load16_u call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -25037,10 +25050,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end local.get $5 i32.const 1 @@ -25050,8 +25063,8 @@ end end local.get $6 - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -25062,13 +25075,13 @@ i32.add i32.load16_u call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -25077,6 +25090,8 @@ 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 @@ -25188,6 +25203,8 @@ i32.load offset=8 i32.const 2 i32.shr_u + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25208,7 +25225,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $2 @@ -25250,15 +25267,15 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $2 local.get $5 i32.gt_s if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -25269,13 +25286,13 @@ i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -25284,10 +25301,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end local.get $5 i32.const 1 @@ -25297,8 +25314,8 @@ end end local.get $6 - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -25309,13 +25326,13 @@ i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -25324,6 +25341,8 @@ 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 @@ -25413,6 +25432,8 @@ i32.load offset=8 i32.const 2 i32.shr_u + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25433,7 +25454,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $2 @@ -25475,15 +25496,15 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $2 local.get $5 i32.gt_s if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -25494,13 +25515,13 @@ i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -25509,10 +25530,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end local.get $5 i32.const 1 @@ -25522,8 +25543,8 @@ end end local.get $6 - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -25534,13 +25555,13 @@ i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -25549,6 +25570,8 @@ 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 @@ -25812,11 +25835,13 @@ (local $7 i32) local.get $0 i32.load offset=4 - local.set $4 + local.set $5 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 @@ -25831,10 +25856,10 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $4 i32.const 0 i32.lt_s if @@ -25847,10 +25872,10 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $3 + local.get $4 i32.eqz if - local.get $4 + local.get $5 i64.load i64.extend32_s local.set $2 @@ -25885,7 +25910,7 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.tee $1 + local.tee $3 select local.tee $2 i64.const 4294967295 @@ -25894,7 +25919,7 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.wrap_i64 - local.tee $4 + local.tee $6 local.tee $0 i32.const 100000 i32.lt_u @@ -25941,9 +25966,9 @@ i32.add end end - local.get $1 + local.get $3 i32.add - local.tee $3 + local.tee $1 i32.const 1 i32.shl i32.const 1 @@ -25951,8 +25976,8 @@ local.tee $0 i32.store local.get $0 - local.get $4 - local.get $3 + local.get $6 + local.get $1 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer @@ -26006,9 +26031,9 @@ i32.add end end - local.get $1 + local.get $3 i32.add - local.tee $3 + local.tee $1 i32.const 1 i32.shl i32.const 1 @@ -26017,10 +26042,10 @@ i32.store local.get $0 local.get $2 - local.get $3 + local.get $1 call $~lib/util/number/utoa64_dec_lut end - local.get $1 + local.get $3 if local.get $0 i32.const 45 @@ -26034,88 +26059,88 @@ br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $7 i32.const 21 i32.add i32.mul i32.const 21 i32.add - local.tee $7 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $3 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add - local.get $4 - local.get $6 + local.get $5 + local.get $3 i32.const 3 i32.shl i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 - local.get $5 + local.set $0 + local.get $7 if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add i32.const 9584 - local.get $5 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 - local.get $5 + local.get $0 + local.get $7 i32.add - local.set $1 + local.set $0 end - local.get $6 + local.get $3 i32.const 1 i32.add - local.set $6 + local.set $3 br $for-loop|0 end end - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add + local.get $5 local.get $4 - local.get $3 i32.const 3 i32.shl i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -26124,6 +26149,8 @@ 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 @@ -26288,6 +26315,8 @@ 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 @@ -26302,7 +26331,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $3 @@ -26321,21 +26350,21 @@ local.get $3 i32.eqz if - block $__inlined_func$~lib/util/number/utoa64 (result i32) - local.get $4 - 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 16628 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $4 + 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 16628 + 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 @@ -26344,6 +26373,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 8000 + local.set $0 br $__inlined_func$~lib/util/number/utoa64 end local.get $2 @@ -26400,16 +26430,16 @@ i32.add end end - local.tee $0 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 - local.get $3 local.get $0 + local.get $3 + local.get $1 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer @@ -26463,25 +26493,23 @@ i32.add end end - local.tee $0 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 - local.get $2 local.get $0 + local.get $2 + local.get $1 call $~lib/util/number/utoa64_dec_lut end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end - local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer @@ -26501,15 +26529,15 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $3 local.get $6 i32.gt_s if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -26520,13 +26548,13 @@ i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $5 if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -26535,10 +26563,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $5 i32.add - local.set $1 + local.set $0 end local.get $6 i32.const 1 @@ -26548,8 +26576,8 @@ end end local.get $7 - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -26560,13 +26588,13 @@ i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -26575,6 +26603,8 @@ 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 @@ -26592,87 +26622,89 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (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) (local $7 i64) (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i64) + (local $9 i32) + (local $10 i64) + (local $11 i32) (local $12 i64) - local.get $3 + (local $13 i64) + local.get $2 local.get $1 i64.sub - local.set $9 - local.get $3 + local.set $10 + local.get $2 i64.const 1 i32.const 0 - local.get $4 + local.get $3 i32.sub - local.tee $10 + local.tee $11 i64.extend_i32_s local.tee $1 i64.shl - local.tee $11 + local.tee $12 i64.const 1 i64.sub - local.tee $12 + local.tee $13 i64.and local.set $7 - local.get $3 + local.get $2 local.get $1 i64.shr_u i32.wrap_i64 - local.tee $2 - local.set $4 - local.get $2 + local.tee $6 + local.set $3 + local.get $6 i32.const 100000 i32.lt_u if (result i32) - local.get $4 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $4 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $4 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $4 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $4 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $4 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $4 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $4 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end - local.set $8 + local.set $9 loop $while-continue|0 - local.get $8 + local.get $9 i32.const 0 i32.gt_s if @@ -26688,279 +26720,279 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $8 + local.get $9 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 $6 i32.const 1000000000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 1000000000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 100000000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 100000000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 10000000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 10000000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 1000000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 1000000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 100000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 100000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 10000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 10000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 1000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 1000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 100 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 100 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 10 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 10 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 - local.set $4 + local.get $6 + local.set $3 i32.const 0 - local.set $2 + local.set $6 br $break|1 end i32.const 0 - local.set $4 + local.set $3 end - local.get $4 - local.get $6 + local.get $3 + local.get $5 i32.or if + local.get $5 + local.tee $8 + i32.const 1 + i32.add + local.set $5 local.get $0 - local.get $6 + local.get $8 i32.const 1 i32.shl i32.add - local.get $4 + local.get $3 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $6 - i32.const 1 - i32.add - local.set $6 end - local.get $8 + local.get $9 i32.const 1 i32.sub - local.set $8 + local.set $9 local.get $7 - local.get $2 + local.get $6 i64.extend_i32_u - local.get $10 + local.get $11 i64.extend_i32_s i64.shl i64.add local.tee $1 - local.get $5 + local.get $4 i64.le_u if - local.get $8 + local.get $9 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $8 + local.get $9 i32.const 2 i32.shl i32.const 10736 i32.add i64.load32_u - local.get $10 + local.get $11 i64.extend_i32_s i64.shl - local.set $3 + local.set $2 local.get $0 - local.get $6 + local.get $5 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.tee $2 + local.tee $6 i32.load16_u - local.set $4 + local.set $3 loop $while-continue|3 - local.get $3 - local.get $5 + local.get $2 + local.get $4 local.get $1 i64.sub i64.le_u i32.const 0 local.get $1 - local.get $9 + local.get $10 i64.lt_u select if (result i32) i32.const 1 - local.get $9 + local.get $10 local.get $1 i64.sub local.get $1 - local.get $3 + local.get $2 i64.add local.tee $7 - local.get $9 + local.get $10 i64.sub i64.gt_u local.get $7 - local.get $9 + local.get $10 i64.lt_u select else i32.const 0 end if - local.get $4 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 local.get $1 - local.get $3 + local.get $2 i64.add local.set $1 br $while-continue|3 end end - local.get $2 - local.get $4 - i32.store16 local.get $6 + local.get $3 + i32.store16 + local.get $5 return end br $while-continue|0 end end - local.get $10 - i64.extend_i32_s - local.set $1 loop $while-continue|4 - local.get $5 + local.get $4 i64.const 10 i64.mul - local.set $5 + local.set $4 local.get $7 i64.const 10 i64.mul - local.tee $3 - local.get $1 + local.tee $1 + local.get $11 + i64.extend_i32_s i64.shr_u - local.tee $7 - local.get $6 + local.tee $2 + local.get $5 i64.extend_i32_s i64.or i64.const 0 i64.ne if + local.get $5 + local.tee $3 + i32.const 1 + i32.add + local.set $5 local.get $0 - local.get $6 + local.get $3 i32.const 1 i32.shl i32.add - local.get $7 + local.get $2 i32.wrap_i64 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $6 - i32.const 1 - i32.add - local.set $6 end - local.get $8 + local.get $9 i32.const 1 i32.sub - local.set $8 - local.get $5 - local.get $3 - local.get $12 + local.set $9 + local.get $4 + local.get $1 + local.get $13 i64.and local.tee $7 i64.le_u br_if $while-continue|4 end - local.get $8 + local.get $9 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K local.get $7 local.set $1 - local.get $9 + local.get $10 i32.const 0 - local.get $8 + local.get $9 i32.sub i32.const 2 i32.shl @@ -26968,41 +27000,41 @@ i32.add i64.load32_u i64.mul - local.set $3 + local.set $2 local.get $0 - local.get $6 + local.get $5 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.tee $2 + local.tee $6 i32.load16_u - local.set $4 + local.set $3 loop $while-continue|6 - local.get $11 - local.get $5 + local.get $12 + local.get $4 local.get $1 i64.sub i64.le_u i32.const 0 local.get $1 - local.get $3 + local.get $2 i64.lt_u select if (result i32) i32.const 1 - local.get $3 + local.get $2 local.get $1 i64.sub local.get $1 - local.get $11 + local.get $12 i64.add local.tee $7 - local.get $3 + local.get $2 i64.sub i64.gt_u - local.get $3 + local.get $2 local.get $7 i64.gt_u select @@ -27010,21 +27042,21 @@ i32.const 0 end if - local.get $4 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 local.get $1 - local.get $11 + local.get $12 i64.add local.set $1 br $while-continue|6 end end - local.get $2 - local.get $4 - i32.store16 local.get $6 + local.get $3 + i32.store16 + local.get $5 ) (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -27371,16 +27403,15 @@ (local $3 i64) (local $4 i64) (local $5 i32) - (local $6 i64) + (local $6 i32) (local $7 i64) - (local $8 i32) + (local $8 i64) (local $9 i32) (local $10 i32) - (local $11 i32) local.get $1 f64.const 0 f64.lt - local.tee $10 + local.tee $9 if (result f64) local.get $0 i32.const 45 @@ -27397,7 +27428,7 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $9 + local.tee $5 i32.const 0 i32.ne i64.extend_i32_u @@ -27416,47 +27447,47 @@ local.get $2 i64.clz i32.wrap_i64 - local.tee $8 + local.tee $6 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $9 + local.get $5 i32.const 1 - local.get $9 + local.get $5 select i32.const 1075 i32.sub - local.tee $9 + local.tee $10 i32.const 1 i32.sub - local.get $8 + local.get $6 i32.sub - local.set $8 + local.set $5 local.get $3 local.get $3 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $5 + local.tee $6 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $9 - local.get $5 + local.get $10 + local.get $6 i32.sub - local.get $8 + local.get $5 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $8 + local.get $5 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $8 + local.tee $5 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -27465,9 +27496,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $5 + local.tee $6 local.get $1 - local.get $5 + local.get $6 f64.convert_i32_s f64.ne i32.add @@ -27475,18 +27506,18 @@ i32.shr_s i32.const 1 i32.add - local.tee $5 + local.tee $6 i32.const 3 i32.shl - local.tee $11 + local.tee $10 i32.sub global.set $~lib/util/number/_K - local.get $11 + local.get $10 i32.const 9864 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $5 + local.get $6 i32.const 1 i32.shl i32.const 10560 @@ -27494,22 +27525,22 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $6 + local.tee $7 i64.const 4294967295 i64.and local.set $2 - local.get $6 + local.get $7 i64.const 32 i64.shr_u - local.tee $6 + local.tee $7 global.get $~lib/util/number/_frc_plus local.tee $4 i64.const 32 i64.shr_u - local.tee $7 + local.tee $8 i64.mul local.get $2 - local.get $7 + local.get $8 i64.mul local.get $2 local.get $4 @@ -27520,14 +27551,14 @@ i64.const 32 i64.shr_u i64.add - local.tee $7 + local.tee $8 i64.const 32 i64.shr_u i64.add local.get $4 - local.get $6 - i64.mul local.get $7 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -27540,26 +27571,23 @@ i64.sub local.set $4 local.get $0 - local.get $10 + local.get $9 i32.const 1 i32.shl i32.add local.get $0 - local.get $6 + local.get $7 local.get $3 local.get $3 i64.clz - i32.wrap_i64 - local.tee $0 - i64.extend_i32_s i64.shl local.tee $3 i64.const 32 i64.shr_u - local.tee $7 + local.tee $8 i64.mul local.get $2 - local.get $7 + local.get $8 i64.mul local.get $2 local.get $3 @@ -27570,14 +27598,14 @@ i64.const 32 i64.shr_u i64.add - local.tee $7 + local.tee $8 i64.const 32 i64.shr_u i64.add local.get $3 - local.get $6 - i64.mul local.get $7 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -27586,22 +27614,14 @@ i64.const 32 i64.shr_u i64.add - global.get $~lib/util/number/_exp_pow - local.tee $5 - local.get $9 - local.get $0 - i32.sub - i32.add - i32.const -64 - i32.sub local.get $4 + global.get $~lib/util/number/_exp_pow local.get $5 - local.get $8 i32.add i32.const -64 i32.sub local.get $4 - local.get $6 + local.get $7 global.get $~lib/util/number/_frc_minus local.tee $3 i64.const 32 @@ -27625,7 +27645,7 @@ i64.shr_u i64.add local.get $2 - local.get $6 + local.get $7 i64.mul local.get $3 i64.const 4294967295 @@ -27639,13 +27659,13 @@ i64.const 1 i64.add i64.sub - local.get $10 + local.get $9 call $~lib/util/number/genDigits - local.get $10 + local.get $9 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $10 + local.get $9 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -27732,6 +27752,8 @@ i32.load offset=8 i32.const 2 i32.shr_u + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27752,7 +27774,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinFloatArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $2 @@ -27795,15 +27817,15 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $2 local.get $5 i32.gt_s if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -27815,13 +27837,13 @@ f32.load f64.promote_f32 call $~lib/util/number/dtoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -27830,10 +27852,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end local.get $5 i32.const 1 @@ -27843,8 +27865,8 @@ end end local.get $6 - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -27856,13 +27878,13 @@ f32.load f64.promote_f32 call $~lib/util/number/dtoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -27871,6 +27893,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end global.get $~lib/memory/__stack_pointer @@ -27894,6 +27918,8 @@ 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 @@ -27914,7 +27940,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinFloatArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $2 @@ -27956,15 +27982,15 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $2 local.get $5 i32.gt_s if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -27975,13 +28001,13 @@ i32.add f64.load call $~lib/util/number/dtoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -27990,10 +28016,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end local.get $5 i32.const 1 @@ -28003,8 +28029,8 @@ end end local.get $6 - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -28015,13 +28041,13 @@ i32.add f64.load call $~lib/util/number/dtoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -28030,6 +28056,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end global.get $~lib/memory/__stack_pointer @@ -28157,11 +28185,11 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.load offset=8 i32.const 11020 i32.load - i32.lt_s + local.get $0 + i32.load offset=8 + i32.gt_s if i32.const 1360 i32.const 1632 @@ -28259,11 +28287,11 @@ end ) (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=8 local.get $1 i32.load offset=8 - i32.lt_s + local.get $0 + i32.load offset=8 + i32.gt_s if i32.const 1360 i32.const 1632 @@ -36754,6 +36782,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -36764,42 +36793,43 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 6 call $~lib/typedarray/Int8Array#constructor - local.tee $2 + local.tee $9 i32.store - local.get $2 + local.get $9 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $9 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $9 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $9 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $9 i32.const 5 i32.const 5 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 3952 i32.store offset=4 - local.get $4 + local.get $3 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -36808,88 +36838,89 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $9 i32.load offset=8 - local.set $5 - local.get $1 + local.set $7 + local.get $3 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $2 + local.get $9 i32.load offset=4 - local.set $8 + local.set $4 loop $for-loop|0 - local.get $3 - local.get $5 - i32.lt_s + local.get $7 + local.get $8 + i32.gt_s if - local.get $3 + local.get $4 local.get $8 i32.add i32.load8_s - local.set $7 + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $3 - local.get $2 + local.get $5 + local.get $8 + local.get $9 i32.const 3952 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $0 + local.get $2 + local.tee $1 + i32.const 1 + i32.add + local.set $2 + local.get $1 local.get $6 i32.add - local.get $7 + local.get $5 i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $3 + local.get $8 i32.const 1 i32.add - local.set $3 + local.set $8 br $for-loop|0 end end - local.get $1 + local.get $3 local.get $6 - local.get $0 + local.get $2 call $~lib/rt/itcms/__renew - local.tee $2 + local.tee $1 i32.store + local.get $3 local.get $1 - local.get $2 call $~lib/rt/itcms/__link - local.get $1 - local.get $0 + local.get $3 + local.get $2 i32.store offset=8 + local.get $3 local.get $1 - local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 + local.get $0 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 i32.load offset=4 - local.get $1 + local.get $3 i32.load i32.ne if @@ -36900,7 +36931,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.load offset=8 i32.const 3 i32.ne @@ -36912,7 +36943,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 3 @@ -36925,7 +36956,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 4 @@ -36938,7 +36969,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 5 @@ -36974,6 +37005,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -36984,42 +37016,43 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 6 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $9 i32.store - local.get $2 + local.get $9 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $9 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $9 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $9 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $9 i32.const 5 i32.const 5 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 3984 i32.store offset=4 - local.get $4 + local.get $3 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37028,88 +37061,89 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $9 i32.load offset=8 - local.set $5 - local.get $1 + local.set $7 + local.get $3 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $2 + local.get $9 i32.load offset=4 - local.set $8 + local.set $4 loop $for-loop|0 - local.get $3 - local.get $5 - i32.lt_s + local.get $7 + local.get $8 + i32.gt_s if - local.get $3 + local.get $4 local.get $8 i32.add i32.load8_u - local.set $7 + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $3 - local.get $2 + local.get $5 + local.get $8 + local.get $9 i32.const 3984 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $0 + local.get $2 + local.tee $1 + i32.const 1 + i32.add + local.set $2 + local.get $1 local.get $6 i32.add - local.get $7 + local.get $5 i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $3 + local.get $8 i32.const 1 i32.add - local.set $3 + local.set $8 br $for-loop|0 end end - local.get $1 + local.get $3 local.get $6 - local.get $0 + local.get $2 call $~lib/rt/itcms/__renew - local.tee $2 + local.tee $1 i32.store + local.get $3 local.get $1 - local.get $2 call $~lib/rt/itcms/__link - local.get $1 - local.get $0 + local.get $3 + local.get $2 i32.store offset=8 + local.get $3 local.get $1 - local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 + local.get $0 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 i32.load offset=4 - local.get $1 + local.get $3 i32.load i32.ne if @@ -37120,7 +37154,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.load offset=8 i32.const 3 i32.ne @@ -37132,7 +37166,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 3 @@ -37145,7 +37179,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 4 @@ -37158,7 +37192,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 5 @@ -37194,6 +37228,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -37204,42 +37239,43 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 + local.tee $9 i32.store - local.get $2 + local.get $9 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $9 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $9 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $9 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $9 i32.const 5 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 4016 i32.store offset=4 - local.get $4 + local.get $3 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37248,88 +37284,89 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $9 i32.load offset=8 - local.set $5 - local.get $1 + local.set $7 + local.get $3 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $2 + local.get $9 i32.load offset=4 - local.set $8 + local.set $4 loop $for-loop|0 - local.get $3 - local.get $5 - i32.lt_s + local.get $7 + local.get $8 + i32.gt_s if - local.get $3 + local.get $4 local.get $8 i32.add i32.load8_u - local.set $7 + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $3 - local.get $2 + local.get $5 + local.get $8 + local.get $9 i32.const 4016 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $0 + local.get $2 + local.tee $1 + i32.const 1 + i32.add + local.set $2 + local.get $1 local.get $6 i32.add - local.get $7 + local.get $5 i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $3 + local.get $8 i32.const 1 i32.add - local.set $3 + local.set $8 br $for-loop|0 end end - local.get $1 + local.get $3 local.get $6 - local.get $0 + local.get $2 call $~lib/rt/itcms/__renew - local.tee $2 + local.tee $1 i32.store + local.get $3 local.get $1 - local.get $2 call $~lib/rt/itcms/__link - local.get $1 - local.get $0 + local.get $3 + local.get $2 i32.store offset=8 + local.get $3 local.get $1 - local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 + local.get $0 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 i32.load offset=4 - local.get $1 + local.get $3 i32.load i32.ne if @@ -37340,7 +37377,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.load offset=8 i32.const 3 i32.ne @@ -37352,7 +37389,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 @@ -37365,7 +37402,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 @@ -37378,7 +37415,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 5 @@ -37414,6 +37451,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -37424,42 +37462,43 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 6 call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $9 i32.store - local.get $2 + local.get $9 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $9 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $9 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $9 i32.const 3 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $9 i32.const 5 i32.const 5 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 4048 i32.store offset=4 - local.get $4 + local.get $3 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37468,99 +37507,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $9 i32.load offset=8 i32.const 1 i32.shr_u - local.set $5 - local.get $1 + local.set $7 + local.get $3 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.const 1 i32.shl i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $2 + local.get $9 i32.load offset=4 - local.set $8 + local.set $4 loop $for-loop|0 - local.get $3 - local.get $5 - i32.lt_s + local.get $7 + local.get $8 + i32.gt_s if + local.get $4 local.get $8 - local.get $3 i32.const 1 i32.shl i32.add i32.load16_s - local.set $7 + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $3 - local.get $2 + local.get $5 + local.get $8 + local.get $9 i32.const 4048 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if + local.get $2 + local.tee $1 + i32.const 1 + i32.add + local.set $2 local.get $6 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $7 + local.get $5 i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $3 + local.get $8 i32.const 1 i32.add - local.set $3 + local.set $8 br $for-loop|0 end end - local.get $1 + local.get $3 local.get $6 - local.get $0 + local.get $2 i32.const 1 i32.shl - local.tee $3 + local.tee $1 call $~lib/rt/itcms/__renew local.tee $2 i32.store - local.get $1 + local.get $3 local.get $2 call $~lib/rt/itcms/__link - local.get $1 local.get $3 - i32.store offset=8 local.get $1 + i32.store offset=8 + local.get $3 local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 + local.get $0 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 i32.load offset=4 - local.get $1 + local.get $3 i32.load i32.ne if @@ -37571,7 +37611,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -37585,7 +37625,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 3 @@ -37598,7 +37638,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 4 @@ -37611,7 +37651,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 5 @@ -37647,6 +37687,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -37657,42 +37698,43 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 6 call $~lib/typedarray/Uint16Array#constructor - local.tee $2 + local.tee $9 i32.store - local.get $2 + local.get $9 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $9 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $9 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $9 i32.const 3 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $9 i32.const 5 i32.const 5 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 4080 i32.store offset=4 - local.get $4 + local.get $3 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37701,99 +37743,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $9 i32.load offset=8 i32.const 1 i32.shr_u - local.set $5 - local.get $1 + local.set $7 + local.get $3 i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.const 1 i32.shl i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $2 + local.get $9 i32.load offset=4 - local.set $8 + local.set $4 loop $for-loop|0 - local.get $3 - local.get $5 - i32.lt_s + local.get $7 + local.get $8 + i32.gt_s if + local.get $4 local.get $8 - local.get $3 i32.const 1 i32.shl i32.add i32.load16_u - local.set $7 + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $3 - local.get $2 + local.get $5 + local.get $8 + local.get $9 i32.const 4080 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if + local.get $2 + local.tee $1 + i32.const 1 + i32.add + local.set $2 local.get $6 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $7 + local.get $5 i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $3 + local.get $8 i32.const 1 i32.add - local.set $3 + local.set $8 br $for-loop|0 end end - local.get $1 + local.get $3 local.get $6 - local.get $0 + local.get $2 i32.const 1 i32.shl - local.tee $3 + local.tee $1 call $~lib/rt/itcms/__renew local.tee $2 i32.store - local.get $1 + local.get $3 local.get $2 call $~lib/rt/itcms/__link - local.get $1 local.get $3 - i32.store offset=8 local.get $1 + i32.store offset=8 + local.get $3 local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 + local.get $0 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 i32.load offset=4 - local.get $1 + local.get $3 i32.load i32.ne if @@ -37804,7 +37847,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -37818,7 +37861,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 3 @@ -37831,7 +37874,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 4 @@ -37844,7 +37887,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 5 @@ -37880,6 +37923,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -37890,42 +37934,43 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 6 call $~lib/typedarray/Int32Array#constructor - local.tee $2 + local.tee $9 i32.store - local.get $2 + local.get $9 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $9 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $9 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $9 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $9 i32.const 5 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 4112 i32.store offset=4 - local.get $4 + local.get $3 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37934,99 +37979,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $9 i32.load offset=8 i32.const 2 i32.shr_u - local.set $5 - local.get $1 + local.set $7 + local.get $3 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.const 2 i32.shl i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $2 + local.get $9 i32.load offset=4 - local.set $8 + local.set $4 loop $for-loop|0 - local.get $3 - local.get $5 - i32.lt_s + local.get $7 + local.get $8 + i32.gt_s if + local.get $4 local.get $8 - local.get $3 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $3 - local.get $2 + local.get $5 + local.get $8 + local.get $9 i32.const 4112 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if + local.get $2 + local.tee $1 + i32.const 1 + i32.add + local.set $2 local.get $6 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $7 + local.get $5 i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $3 + local.get $8 i32.const 1 i32.add - local.set $3 + local.set $8 br $for-loop|0 end end - local.get $1 + local.get $3 local.get $6 - local.get $0 + local.get $2 i32.const 2 i32.shl - local.tee $3 + local.tee $1 call $~lib/rt/itcms/__renew local.tee $2 i32.store - local.get $1 + local.get $3 local.get $2 call $~lib/rt/itcms/__link - local.get $1 local.get $3 - i32.store offset=8 local.get $1 + i32.store offset=8 + local.get $3 local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 + local.get $0 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 i32.load offset=4 - local.get $1 + local.get $3 i32.load i32.ne if @@ -38037,7 +38083,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -38051,7 +38097,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -38064,7 +38110,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 4 @@ -38077,7 +38123,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 5 @@ -38113,6 +38159,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -38123,42 +38170,43 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 6 call $~lib/typedarray/Uint32Array#constructor - local.tee $2 + local.tee $9 i32.store - local.get $2 + local.get $9 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $9 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $9 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $9 i32.const 3 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $9 i32.const 5 i32.const 5 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 4144 i32.store offset=4 - local.get $4 + local.get $3 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -38167,99 +38215,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $9 i32.load offset=8 i32.const 2 i32.shr_u - local.set $5 - local.get $1 + local.set $7 + local.get $3 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.const 2 i32.shl i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $2 + local.get $9 i32.load offset=4 - local.set $8 + local.set $4 loop $for-loop|0 - local.get $3 - local.get $5 - i32.lt_s + local.get $7 + local.get $8 + i32.gt_s if + local.get $4 local.get $8 - local.get $3 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $3 - local.get $2 + local.get $5 + local.get $8 + local.get $9 i32.const 4144 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if + local.get $2 + local.tee $1 + i32.const 1 + i32.add + local.set $2 local.get $6 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $7 + local.get $5 i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $3 + local.get $8 i32.const 1 i32.add - local.set $3 + local.set $8 br $for-loop|0 end end - local.get $1 + local.get $3 local.get $6 - local.get $0 + local.get $2 i32.const 2 i32.shl - local.tee $3 + local.tee $1 call $~lib/rt/itcms/__renew local.tee $2 i32.store - local.get $1 + local.get $3 local.get $2 call $~lib/rt/itcms/__link - local.get $1 local.get $3 - i32.store offset=8 local.get $1 + i32.store offset=8 + local.get $3 local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 + local.get $0 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 i32.load offset=4 - local.get $1 + local.get $3 i32.load i32.ne if @@ -38270,7 +38319,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -38284,7 +38333,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 3 @@ -38297,7 +38346,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 4 @@ -38310,7 +38359,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 5 @@ -38342,10 +38391,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 i64) (local $6 i32) - (local $7 i64) + (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -38356,42 +38406,43 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 6 call $~lib/typedarray/Int64Array#constructor - local.tee $2 + local.tee $9 i32.store - local.get $2 + local.get $9 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $9 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $9 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $9 i32.const 3 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $9 i32.const 5 i64.const 5 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 4176 i32.store offset=4 - local.get $4 + local.get $3 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -38400,99 +38451,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $9 i32.load offset=8 i32.const 3 i32.shr_u - local.set $5 - local.get $1 + local.set $7 + local.get $3 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.const 3 i32.shl i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $2 + local.get $9 i32.load offset=4 - local.set $8 + local.set $4 loop $for-loop|0 - local.get $3 - local.get $5 - i32.lt_s + local.get $7 + local.get $8 + i32.gt_s if + local.get $4 local.get $8 - local.get $3 i32.const 3 i32.shl i32.add i64.load - local.set $7 + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $3 - local.get $2 + local.get $5 + local.get $8 + local.get $9 i32.const 4176 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) if + local.get $2 + local.tee $1 + i32.const 1 + i32.add + local.set $2 local.get $6 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add - local.get $7 + local.get $5 i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $3 + local.get $8 i32.const 1 i32.add - local.set $3 + local.set $8 br $for-loop|0 end end - local.get $1 + local.get $3 local.get $6 - local.get $0 + local.get $2 i32.const 3 i32.shl - local.tee $3 + local.tee $1 call $~lib/rt/itcms/__renew local.tee $2 i32.store - local.get $1 + local.get $3 local.get $2 call $~lib/rt/itcms/__link - local.get $1 local.get $3 - i32.store offset=8 local.get $1 + i32.store offset=8 + local.get $3 local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 + local.get $0 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 i32.load offset=4 - local.get $1 + local.get $3 i32.load i32.ne if @@ -38503,7 +38555,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -38517,7 +38569,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 3 @@ -38530,7 +38582,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 4 @@ -38543,7 +38595,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 5 @@ -38575,10 +38627,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 i64) (local $6 i32) - (local $7 i64) + (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -38589,42 +38642,43 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 6 call $~lib/typedarray/Uint64Array#constructor - local.tee $2 + local.tee $9 i32.store - local.get $2 + local.get $9 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $9 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $9 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $9 i32.const 3 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $9 i32.const 5 i64.const 5 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 4208 i32.store offset=4 - local.get $4 + local.get $3 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -38633,99 +38687,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $9 i32.load offset=8 i32.const 3 i32.shr_u - local.set $5 - local.get $1 + local.set $7 + local.get $3 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.const 3 i32.shl i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $2 + local.get $9 i32.load offset=4 - local.set $8 + local.set $4 loop $for-loop|0 - local.get $3 - local.get $5 - i32.lt_s + local.get $7 + local.get $8 + i32.gt_s if + local.get $4 local.get $8 - local.get $3 i32.const 3 i32.shl i32.add i64.load - local.set $7 + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $3 - local.get $2 + local.get $5 + local.get $8 + local.get $9 i32.const 4208 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) if + local.get $2 + local.tee $1 + i32.const 1 + i32.add + local.set $2 local.get $6 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add - local.get $7 + local.get $5 i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $3 + local.get $8 i32.const 1 i32.add - local.set $3 + local.set $8 br $for-loop|0 end end - local.get $1 + local.get $3 local.get $6 - local.get $0 + local.get $2 i32.const 3 i32.shl - local.tee $3 + local.tee $1 call $~lib/rt/itcms/__renew local.tee $2 i32.store - local.get $1 + local.get $3 local.get $2 call $~lib/rt/itcms/__link - local.get $1 local.get $3 - i32.store offset=8 local.get $1 + i32.store offset=8 + local.get $3 local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 + local.get $0 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 i32.load offset=4 - local.get $1 + local.get $3 i32.load i32.ne if @@ -38736,7 +38791,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -38750,7 +38805,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 3 @@ -38763,7 +38818,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 4 @@ -38776,7 +38831,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 5 @@ -38808,10 +38863,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f32) (local $6 i32) - (local $7 f32) + (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -38822,42 +38878,43 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 6 call $~lib/typedarray/Float32Array#constructor - local.tee $2 + local.tee $9 i32.store - local.get $2 + local.get $9 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $9 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $9 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $9 i32.const 3 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $9 i32.const 5 f32.const 5 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 4240 i32.store offset=4 - local.get $4 + local.get $3 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -38866,99 +38923,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $9 i32.load offset=8 i32.const 2 i32.shr_u - local.set $5 - local.get $1 + local.set $7 + local.get $3 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.const 2 i32.shl i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $2 + local.get $9 i32.load offset=4 - local.set $8 + local.set $4 loop $for-loop|0 - local.get $3 - local.get $5 - i32.lt_s + local.get $7 + local.get $8 + i32.gt_s if + local.get $4 local.get $8 - local.get $3 i32.const 2 i32.shl i32.add f32.load - local.set $7 + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $3 - local.get $2 + local.get $5 + local.get $8 + local.get $9 i32.const 4240 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) if + local.get $2 + local.tee $1 + i32.const 1 + i32.add + local.set $2 local.get $6 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $7 + local.get $5 f32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $3 + local.get $8 i32.const 1 i32.add - local.set $3 + local.set $8 br $for-loop|0 end end - local.get $1 + local.get $3 local.get $6 - local.get $0 + local.get $2 i32.const 2 i32.shl - local.tee $3 + local.tee $1 call $~lib/rt/itcms/__renew local.tee $2 i32.store - local.get $1 + local.get $3 local.get $2 call $~lib/rt/itcms/__link - local.get $1 local.get $3 - i32.store offset=8 local.get $1 + i32.store offset=8 + local.get $3 local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 + local.get $0 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 i32.load offset=4 - local.get $1 + local.get $3 i32.load i32.ne if @@ -38969,7 +39027,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -38983,7 +39041,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 3 @@ -38996,7 +39054,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 4 @@ -39009,7 +39067,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 5 @@ -39041,10 +39099,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f64) (local $6 i32) - (local $7 f64) + (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -39055,42 +39114,43 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 i32.const 6 call $~lib/typedarray/Float64Array#constructor - local.tee $2 + local.tee $9 i32.store - local.get $2 + local.get $9 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $9 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $9 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $9 i32.const 3 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $9 i32.const 5 f64.const 5 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 4272 i32.store offset=4 - local.get $4 + local.get $3 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -39099,99 +39159,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $9 i32.load offset=8 i32.const 3 i32.shr_u - local.set $5 - local.get $1 + local.set $7 + local.get $3 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.const 3 i32.shl i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $2 + local.get $9 i32.load offset=4 - local.set $8 + local.set $4 loop $for-loop|0 - local.get $3 - local.get $5 - i32.lt_s + local.get $7 + local.get $8 + i32.gt_s if + local.get $4 local.get $8 - local.get $3 i32.const 3 i32.shl i32.add f64.load - local.set $7 + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $3 - local.get $2 + local.get $5 + local.get $8 + local.get $9 i32.const 4272 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) if + local.get $2 + local.tee $1 + i32.const 1 + i32.add + local.set $2 local.get $6 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add - local.get $7 + local.get $5 f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $3 + local.get $8 i32.const 1 i32.add - local.set $3 + local.set $8 br $for-loop|0 end end - local.get $1 + local.get $3 local.get $6 - local.get $0 + local.get $2 i32.const 3 i32.shl - local.tee $3 + local.tee $1 call $~lib/rt/itcms/__renew local.tee $2 i32.store - local.get $1 + local.get $3 local.get $2 call $~lib/rt/itcms/__link - local.get $1 local.get $3 - i32.store offset=8 local.get $1 + i32.store offset=8 + local.get $3 local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 + local.get $0 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 i32.load offset=4 - local.get $1 + local.get $3 i32.load i32.ne if @@ -39202,7 +39263,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -39216,7 +39277,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 3 @@ -39229,7 +39290,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 4 @@ -39242,7 +39303,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 5 @@ -42777,9 +42838,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 f32) - (local $8 f64) - (local $9 i32) + (local $7 i32) + (local $8 f32) + (local $9 f64) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -42796,29 +42857,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $1 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $1 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -42846,49 +42907,47 @@ global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $5 i32.store offset=8 - local.get $4 + local.get $5 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int8Array#constructor - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $1 + local.get $0 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 $0 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store offset=16 - local.get $1 local.get $0 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - i32.const 0 - local.set $0 block $folding-inner0 - local.get $1 + local.get $0 i32.load offset=8 i32.const 11100 i32.load @@ -42896,47 +42955,47 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 3 i32.add - local.set $5 + local.set $6 i32.const 11092 i32.load - local.set $6 + local.set $7 i32.const 11100 i32.load - local.set $9 + local.set $4 loop $for-loop|0 - local.get $0 - local.get $9 + local.get $3 + local.get $4 i32.lt_s if - local.get $0 - local.get $5 - i32.add + local.get $3 local.get $6 - local.get $0 + i32.add + local.get $7 + local.get $3 i32.const 2 i32.shl i32.add f32.load - local.tee $7 - local.get $7 + local.tee $8 + local.get $8 f32.sub f32.const 0 f32.eq if (result i32) - local.get $7 + local.get $8 i32.trunc_f32_s else i32.const 0 end i32.store8 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end @@ -42945,34 +43004,34 @@ i32.const 15 i32.const 11392 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=16 - local.get $1 local.get $0 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $0 local.get $1 - local.get $3 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 0 i32.const 15 i32.const 11424 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $1 + i32.store offset=16 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=8 i32.const 11196 i32.load @@ -42980,48 +43039,48 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 2 i32.add - local.set $3 + local.set $4 i32.const 11188 i32.load - local.set $5 + local.set $6 i32.const 11196 i32.load - local.set $6 - loop $for-loop|00 - local.get $0 - local.get $6 + local.set $7 + loop $for-loop|04 + local.get $1 + local.get $7 i32.lt_s if - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.add - local.get $5 - local.get $0 + local.get $6 + local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 f64.sub f64.const 0 f64.eq if (result i32) - local.get $8 + local.get $9 i32.trunc_f64_s else i32.const 0 end i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|00 + local.set $1 + br $for-loop|04 end end i32.const 10 @@ -43029,23 +43088,23 @@ i32.const 15 i32.const 11456 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $1 + i32.store offset=16 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $0 local.get $2 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $1 - local.get $4 + local.get $0 + local.get $5 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 i32.const 0 @@ -43056,7 +43115,7 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=16 - local.get $1 + local.get $0 local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer @@ -43169,9 +43228,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 f32) - (local $8 f64) - (local $9 i32) + (local $7 i32) + (local $8 f32) + (local $9 f64) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -43188,29 +43247,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $1 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $1 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -43238,49 +43297,47 @@ global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $5 i32.store offset=8 - local.get $4 + local.get $5 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $1 + local.get $0 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 $0 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store offset=16 - local.get $1 local.get $0 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - i32.const 0 - local.set $0 block $folding-inner0 - local.get $1 + local.get $0 i32.load offset=8 i32.const 11100 i32.load @@ -43288,47 +43345,47 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 3 i32.add - local.set $5 + local.set $6 i32.const 11092 i32.load - local.set $6 + local.set $7 i32.const 11100 i32.load - local.set $9 + local.set $4 loop $for-loop|0 - local.get $0 - local.get $9 + local.get $3 + local.get $4 i32.lt_s if - local.get $0 - local.get $5 - i32.add + local.get $3 local.get $6 - local.get $0 + i32.add + local.get $7 + local.get $3 i32.const 2 i32.shl i32.add f32.load - local.tee $7 - local.get $7 + local.tee $8 + local.get $8 f32.sub f32.const 0 f32.eq if (result i32) - local.get $7 + local.get $8 i32.trunc_f32_u else i32.const 0 end i32.store8 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end @@ -43337,34 +43394,34 @@ i32.const 63 i32.const 11600 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=16 - local.get $1 local.get $0 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $0 local.get $1 - local.get $3 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 0 i32.const 63 i32.const 11632 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $1 + i32.store offset=16 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=8 i32.const 11196 i32.load @@ -43372,48 +43429,48 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 2 i32.add - local.set $3 + local.set $4 i32.const 11188 i32.load - local.set $5 + local.set $6 i32.const 11196 i32.load - local.set $6 - loop $for-loop|00 - local.get $0 - local.get $6 + local.set $7 + loop $for-loop|04 + local.get $1 + local.get $7 i32.lt_s if - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.add - local.get $5 - local.get $0 + local.get $6 + local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 f64.sub f64.const 0 f64.eq if (result i32) - local.get $8 + local.get $9 i32.trunc_f64_u else i32.const 0 end i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|00 + local.set $1 + br $for-loop|04 end end i32.const 10 @@ -43421,23 +43478,23 @@ i32.const 63 i32.const 11664 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $1 + i32.store offset=16 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $0 local.get $2 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $1 - local.get $4 + local.get $0 + local.get $5 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 i32.const 0 @@ -43448,7 +43505,7 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=16 - local.get $1 + local.get $0 local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer @@ -43654,11 +43711,11 @@ i32.const 11008 i32.store offset=16 block $folding-inner0 - local.get $1 - i32.load offset=8 i32.const 11020 i32.load - i32.lt_s + local.get $1 + i32.load offset=8 + i32.gt_s br_if $folding-inner0 local.get $1 i32.load offset=4 @@ -43740,7 +43797,7 @@ i32.const 11100 i32.load local.set $8 - loop $for-loop|00 + loop $for-loop|04 local.get $0 local.get $8 i32.lt_s @@ -43774,7 +43831,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|00 + br $for-loop|04 end end i32.const 10 @@ -43829,7 +43886,7 @@ i32.const 11196 i32.load local.set $7 - loop $for-loop|01 + loop $for-loop|08 local.get $0 local.get $7 i32.lt_s @@ -43863,7 +43920,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|01 + br $for-loop|08 end end i32.const 10 @@ -43889,7 +43946,7 @@ i32.const 11264 i32.store offset=16 i32.const 0 - local.set $2 + local.set $0 local.get $1 i32.load offset=8 i32.const 11276 @@ -43909,37 +43966,37 @@ i32.const 11276 i32.load local.set $5 - loop $for-loop|02 - local.get $2 + loop $for-loop|012 + local.get $0 local.get $5 i32.lt_s if - local.get $2 + local.get $0 local.get $3 i32.add - local.get $2 + local.get $0 local.get $4 i32.add i32.load8_s - local.tee $0 + local.tee $2 i32.const 31 i32.shr_s i32.const -1 i32.xor - local.get $0 + local.get $2 i32.const 255 - local.get $0 + local.get $2 i32.sub i32.const 31 i32.shr_s i32.or i32.and i32.store8 - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 - br $for-loop|02 + local.set $0 + br $for-loop|012 end end i32.const 10 @@ -43947,12 +44004,12 @@ i32.const 63 i32.const 11920 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 $1 - local.get $2 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -44069,9 +44126,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 f32) - (local $8 f64) - (local $9 i32) + (local $7 i32) + (local $8 f32) + (local $9 f64) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -44088,29 +44145,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $1 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $1 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -44138,101 +44195,99 @@ global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $5 i32.store offset=8 - local.get $4 + local.get $5 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int16Array#constructor - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $1 + local.get $0 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 $0 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store offset=16 - local.get $1 local.get $0 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - i32.const 0 - local.set $0 block $folding-inner0 i32.const 11100 i32.load i32.const 3 i32.add - local.get $1 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 6 i32.add - local.set $5 + local.set $6 i32.const 11092 i32.load - local.set $6 + local.set $7 i32.const 11100 i32.load - local.set $9 + local.set $4 loop $for-loop|0 - local.get $0 - local.get $9 + local.get $3 + local.get $4 i32.lt_s if - local.get $5 - local.get $0 + local.get $6 + local.get $3 i32.const 1 i32.shl i32.add - local.get $6 - local.get $0 + local.get $7 + local.get $3 i32.const 2 i32.shl i32.add f32.load - local.tee $7 - local.get $7 + local.tee $8 + local.get $8 f32.sub f32.const 0 f32.eq if (result i32) - local.get $7 + local.get $8 i32.trunc_f32_s else i32.const 0 end i32.store16 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end @@ -44241,87 +44296,87 @@ i32.const 64 i32.const 12048 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=16 - local.get $1 local.get $0 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $0 local.get $1 - local.get $3 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 1 i32.const 64 i32.const 12096 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $1 + i32.store offset=16 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $0 + local.set $1 i32.const 11196 i32.load i32.const 2 i32.add - local.get $1 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 4 i32.add - local.set $3 + local.set $4 i32.const 11188 i32.load - local.set $5 + local.set $6 i32.const 11196 i32.load - local.set $6 - loop $for-loop|00 - local.get $0 - local.get $6 + local.set $7 + loop $for-loop|04 + local.get $1 + local.get $7 i32.lt_s if - local.get $3 - local.get $0 + local.get $4 + local.get $1 i32.const 1 i32.shl i32.add - local.get $5 - local.get $0 + local.get $6 + local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 f64.sub f64.const 0 f64.eq if (result i32) - local.get $8 + local.get $9 i32.trunc_f64_s else i32.const 0 end i32.store16 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|00 + local.set $1 + br $for-loop|04 end end i32.const 10 @@ -44329,23 +44384,23 @@ i32.const 64 i32.const 12144 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $1 + i32.store offset=16 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $0 local.get $2 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - local.get $1 - local.get $4 + local.get $0 + local.get $5 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 i32.const 1 @@ -44356,7 +44411,7 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=16 - local.get $1 + local.get $0 local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer @@ -44474,9 +44529,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 f32) - (local $8 f64) - (local $9 i32) + (local $7 i32) + (local $8 f32) + (local $9 f64) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -44493,29 +44548,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $1 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $1 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -44543,101 +44598,99 @@ global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $5 i32.store offset=8 - local.get $4 + local.get $5 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint16Array#constructor - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $1 + local.get $0 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 $0 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store offset=16 - local.get $1 local.get $0 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - i32.const 0 - local.set $0 block $folding-inner0 i32.const 11100 i32.load i32.const 3 i32.add - local.get $1 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 6 i32.add - local.set $5 + local.set $6 i32.const 11092 i32.load - local.set $6 + local.set $7 i32.const 11100 i32.load - local.set $9 + local.set $4 loop $for-loop|0 - local.get $0 - local.get $9 + local.get $3 + local.get $4 i32.lt_s if - local.get $5 - local.get $0 + local.get $6 + local.get $3 i32.const 1 i32.shl i32.add - local.get $6 - local.get $0 + local.get $7 + local.get $3 i32.const 2 i32.shl i32.add f32.load - local.tee $7 - local.get $7 + local.tee $8 + local.get $8 f32.sub f32.const 0 f32.eq if (result i32) - local.get $7 + local.get $8 i32.trunc_f32_u else i32.const 0 end i32.store16 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end @@ -44646,87 +44699,87 @@ i32.const 65 i32.const 12336 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=16 - local.get $1 local.get $0 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $0 local.get $1 - local.get $3 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 1 i32.const 65 i32.const 12384 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $1 + i32.store offset=16 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $0 + local.set $1 i32.const 11196 i32.load i32.const 2 i32.add - local.get $1 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 4 i32.add - local.set $3 + local.set $4 i32.const 11188 i32.load - local.set $5 + local.set $6 i32.const 11196 i32.load - local.set $6 - loop $for-loop|00 - local.get $0 - local.get $6 + local.set $7 + loop $for-loop|04 + local.get $1 + local.get $7 i32.lt_s if - local.get $3 - local.get $0 + local.get $4 + local.get $1 i32.const 1 i32.shl i32.add - local.get $5 - local.get $0 + local.get $6 + local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 f64.sub f64.const 0 f64.eq if (result i32) - local.get $8 + local.get $9 i32.trunc_f64_u else i32.const 0 end i32.store16 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|00 + local.set $1 + br $for-loop|04 end end i32.const 10 @@ -44734,23 +44787,23 @@ i32.const 65 i32.const 12432 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $1 + i32.store offset=16 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $0 local.get $2 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - local.get $1 - local.get $4 + local.get $0 + local.get $5 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 i32.const 1 @@ -44761,7 +44814,7 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=16 - local.get $1 + local.get $0 local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer @@ -44928,38 +44981,38 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $3 + 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 $4 + local.tee $5 i32.store offset=8 - local.get $4 + local.get $5 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -44980,18 +45033,16 @@ i32.const 16 i32.const 12528 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 local.get $0 - local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - i32.const 0 - local.set $2 block $folding-inner0 i32.const 11100 i32.load @@ -45007,25 +45058,25 @@ i32.load offset=4 i32.const 12 i32.add - local.set $5 + local.set $6 i32.const 11092 i32.load - local.set $6 + local.set $7 i32.const 11100 i32.load local.set $10 loop $for-loop|0 - local.get $2 + local.get $4 local.get $10 i32.lt_s if - local.get $5 - local.get $2 + local.get $6 + local.get $4 i32.const 2 i32.shl - local.tee $7 + local.tee $3 i32.add - local.get $6 + local.get $3 local.get $7 i32.add f32.load @@ -45041,10 +45092,10 @@ i32.const 0 end i32.store - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|0 end end @@ -45053,12 +45104,12 @@ i32.const 16 i32.const 12640 call $~lib/rt/__newArray - local.set $2 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=16 local.get $0 - local.get $2 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $0 local.get $1 @@ -45094,24 +45145,24 @@ i32.load offset=4 i32.const 8 i32.add - local.set $7 + local.set $3 i32.const 11188 i32.load - local.set $5 + local.set $6 i32.const 11196 i32.load - local.set $6 - loop $for-loop|00 + local.set $7 + loop $for-loop|04 local.get $1 - local.get $6 + local.get $7 i32.lt_s if - local.get $7 + local.get $3 local.get $1 i32.const 2 i32.shl i32.add - local.get $5 + local.get $6 local.get $1 i32.const 3 i32.shl @@ -45133,7 +45184,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|00 + br $for-loop|04 end end i32.const 10 @@ -45149,10 +45200,10 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $0 - local.get $3 + local.get $2 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $0 - local.get $4 + local.get $5 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 @@ -45164,12 +45215,12 @@ i32.const 16 i32.const 12832 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=16 local.get $0 - local.get $3 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -45335,38 +45386,38 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $3 + 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 $4 + local.tee $5 i32.store offset=8 - local.get $4 + local.get $5 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -45387,18 +45438,16 @@ i32.const 66 i32.const 12896 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 local.get $0 - local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - i32.const 0 - local.set $2 block $folding-inner0 i32.const 11100 i32.load @@ -45414,25 +45463,25 @@ i32.load offset=4 i32.const 12 i32.add - local.set $5 + local.set $6 i32.const 11092 i32.load - local.set $6 + local.set $7 i32.const 11100 i32.load local.set $10 loop $for-loop|0 - local.get $2 + local.get $4 local.get $10 i32.lt_s if - local.get $5 - local.get $2 + local.get $6 + local.get $4 i32.const 2 i32.shl - local.tee $7 + local.tee $3 i32.add - local.get $6 + local.get $3 local.get $7 i32.add f32.load @@ -45448,10 +45497,10 @@ i32.const 0 end i32.store - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|0 end end @@ -45460,12 +45509,12 @@ i32.const 66 i32.const 13008 call $~lib/rt/__newArray - local.set $2 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=16 local.get $0 - local.get $2 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $0 local.get $1 @@ -45501,24 +45550,24 @@ i32.load offset=4 i32.const 8 i32.add - local.set $7 + local.set $3 i32.const 11188 i32.load - local.set $5 + local.set $6 i32.const 11196 i32.load - local.set $6 - loop $for-loop|00 + local.set $7 + loop $for-loop|04 local.get $1 - local.get $6 + local.get $7 i32.lt_s if - local.get $7 + local.get $3 local.get $1 i32.const 2 i32.shl i32.add - local.get $5 + local.get $6 local.get $1 i32.const 3 i32.shl @@ -45540,7 +45589,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|00 + br $for-loop|04 end end i32.const 10 @@ -45556,10 +45605,10 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $0 - local.get $3 + local.get $2 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $0 - local.get $4 + local.get $5 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 @@ -45571,12 +45620,12 @@ i32.const 66 i32.const 13200 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=16 local.get $0 - local.get $3 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -45713,113 +45762,111 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $1 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $1 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 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $5 i32.store offset=8 - local.get $4 + local.get $5 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int64Array#constructor - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $1 + local.get $0 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 $0 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store offset=16 - local.get $1 local.get $0 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - i32.const 0 - local.set $0 block $folding-inner0 i32.const 11100 i32.load i32.const 3 i32.add - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 24 i32.add - local.set $5 + local.set $4 i32.const 11092 i32.load local.set $6 @@ -45827,17 +45874,17 @@ i32.load local.set $7 loop $for-loop|0 - local.get $0 + local.get $2 local.get $7 i32.lt_s if - local.get $5 - local.get $0 + local.get $4 + local.get $2 i32.const 3 i32.shl i32.add local.get $6 - local.get $0 + local.get $2 i32.const 2 i32.shl i32.add @@ -45854,10 +45901,10 @@ i64.const 0 end i64.store - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end @@ -45866,66 +45913,66 @@ i32.const 67 i32.const 13424 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 - local.get $1 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $0 local.get $1 - local.get $3 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 3 i32.const 67 i32.const 13536 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $1 + i32.store offset=16 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $0 + local.set $1 i32.const 11196 i32.load i32.const 2 i32.add - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 16 i32.add - local.set $3 + local.set $2 i32.const 11188 i32.load - local.set $5 + local.set $4 i32.const 11196 i32.load local.set $6 - loop $for-loop|00 - local.get $0 + loop $for-loop|04 + local.get $1 local.get $6 i32.lt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl local.tee $7 i32.add - local.get $5 + local.get $4 local.get $7 i32.add f64.load @@ -45941,11 +45988,11 @@ i64.const 0 end i64.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|00 + local.set $1 + br $for-loop|04 end end i32.const 10 @@ -45953,35 +46000,35 @@ i32.const 67 i32.const 13648 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $1 + i32.store offset=16 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $1 - local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $0 + local.get $3 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - local.get $1 - local.get $4 + local.get $0 + local.get $5 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 10 i32.const 3 i32.const 67 i32.const 13760 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 - local.get $1 - local.get $2 + local.get $0 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -46118,113 +46165,111 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $1 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $1 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 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $5 i32.store offset=8 - local.get $4 + local.get $5 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint64Array#constructor - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $1 + local.get $0 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 $0 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store offset=16 - local.get $1 local.get $0 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - i32.const 0 - local.set $0 block $folding-inner0 i32.const 11100 i32.load i32.const 3 i32.add - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 24 i32.add - local.set $5 + local.set $4 i32.const 11092 i32.load local.set $6 @@ -46232,17 +46277,17 @@ i32.load local.set $7 loop $for-loop|0 - local.get $0 + local.get $2 local.get $7 i32.lt_s if - local.get $5 - local.get $0 + local.get $4 + local.get $2 i32.const 3 i32.shl i32.add local.get $6 - local.get $0 + local.get $2 i32.const 2 i32.shl i32.add @@ -46259,10 +46304,10 @@ i64.const 0 end i64.store - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end @@ -46271,66 +46316,66 @@ i32.const 68 i32.const 14032 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 - local.get $1 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $0 local.get $1 - local.get $3 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 3 i32.const 68 i32.const 14144 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $1 + i32.store offset=16 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $0 + local.set $1 i32.const 11196 i32.load i32.const 2 i32.add - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 16 i32.add - local.set $3 + local.set $2 i32.const 11188 i32.load - local.set $5 + local.set $4 i32.const 11196 i32.load local.set $6 - loop $for-loop|00 - local.get $0 + loop $for-loop|04 + local.get $1 local.get $6 i32.lt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl local.tee $7 i32.add - local.get $5 + local.get $4 local.get $7 i32.add f64.load @@ -46346,11 +46391,11 @@ i64.const 0 end i64.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|00 + local.set $1 + br $for-loop|04 end end i32.const 10 @@ -46358,35 +46403,35 @@ i32.const 68 i32.const 14256 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $1 + i32.store offset=16 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $1 - local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $0 + local.get $3 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - local.get $1 - local.get $4 + local.get $0 + local.get $5 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 10 i32.const 3 i32.const 68 i32.const 14368 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 - local.get $1 - local.get $2 + local.get $0 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -46506,6 +46551,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -46534,38 +46580,38 @@ local.get $3 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $0 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $0 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 $0 + local.tee $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $2 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $2 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $2 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -46613,26 +46659,28 @@ i32.load local.set $7 loop $for-loop|0 - local.get $2 + local.get $1 local.get $7 i32.lt_s if - local.get $5 - local.get $2 + local.get $1 i32.const 2 i32.shl local.tee $8 - i32.add local.get $6 - local.get $8 i32.add i32.load + local.set $9 + local.get $5 + local.get $8 + i32.add + local.get $9 f32.convert_i32_s f32.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|0 end end @@ -46641,12 +46689,12 @@ i32.const 61 i32.const 14480 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $3 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -46660,16 +46708,16 @@ i32.const 61 i32.const 14592 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $3 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 - local.set $2 - local.get $1 + local.set $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -46686,37 +46734,37 @@ i32.const 24 i32.add local.set $5 - local.get $1 + local.get $0 i32.load offset=4 local.set $6 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|00 + local.set $0 + loop $for-loop|01 + local.get $0 local.get $1 - local.get $2 i32.gt_s if local.get $5 - local.get $2 + local.get $1 i32.const 2 i32.shl i32.add local.get $6 - local.get $2 + local.get $1 i32.const 3 i32.shl i32.add i64.load f32.convert_i64_s f32.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 - br $for-loop|00 + local.set $1 + br $for-loop|01 end end i32.const 10 @@ -46724,16 +46772,16 @@ i32.const 61 i32.const 14656 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 $3 - local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 - local.set $1 - local.get $0 + local.set $0 + local.get $2 i32.load offset=8 local.get $3 i32.load offset=8 @@ -46743,34 +46791,34 @@ br_if $folding-inner0 local.get $3 i32.load offset=4 - local.set $2 - local.get $0 + local.set $1 + local.get $2 i32.load offset=4 local.set $5 - local.get $0 + local.get $2 i32.load offset=8 - local.set $0 - loop $for-loop|01 + local.set $2 + loop $for-loop|03 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 local.get $1 + local.get $0 i32.const 2 i32.shl i32.add - local.get $1 + local.get $0 local.get $5 i32.add i32.load8_u f32.convert_i32_u f32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|01 + local.set $0 + br $for-loop|03 end end i32.const 0 @@ -46791,26 +46839,26 @@ i32.load offset=4 i32.const 16 i32.add - local.set $1 + local.set $2 local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.set $4 - loop $for-loop|02 + loop $for-loop|05 local.get $0 local.get $4 i32.lt_s if - local.get $1 + local.get $2 local.get $0 i32.const 2 i32.shl i32.add - local.get $2 + local.get $1 local.get $0 i32.const 1 i32.shl @@ -46822,14 +46870,14 @@ i32.const 1 i32.add local.set $0 - br $for-loop|02 + br $for-loop|05 end end global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 i32.const 0 - local.set $0 + local.set $2 i32.const 11276 i32.load i32.const 7 @@ -46844,34 +46892,34 @@ i32.load offset=4 i32.const 28 i32.add - local.set $1 + local.set $0 i32.const 11268 i32.load local.set $4 i32.const 11276 i32.load - local.set $2 - loop $for-loop|05 - local.get $0 + local.set $1 + loop $for-loop|09 + local.get $1 local.get $2 - i32.lt_s + i32.gt_s if - local.get $1 local.get $0 + local.get $2 i32.const 2 i32.shl i32.add - local.get $0 + local.get $2 local.get $4 i32.add i32.load8_s f32.convert_i32_s f32.store - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|05 + local.set $2 + br $for-loop|09 end end i32.const 10 @@ -46879,12 +46927,12 @@ i32.const 61 i32.const 14720 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 local.get $3 - local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -47001,6 +47049,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i64) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -47017,50 +47066,50 @@ unreachable end 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 3 call $~lib/typedarray/Int64Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $1 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $1 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + local.tee $3 i32.store offset=4 - local.get $1 + local.get $3 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $3 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $3 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $3 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -47084,7 +47133,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 @@ -47092,13 +47141,13 @@ block $folding-inner0 i32.const 11020 i32.load - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $3 + local.get $2 i32.load offset=4 local.set $5 i32.const 11012 @@ -47141,7 +47190,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $3 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer @@ -47153,13 +47202,13 @@ i32.load i32.const 3 i32.add - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $3 + local.get $2 i32.load offset=4 i32.const 24 i32.add @@ -47204,51 +47253,53 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $3 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> i32.const 0 local.set $0 - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u i32.const 6 i32.add - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $3 + local.get $2 i32.load offset=4 i32.const 48 i32.add local.set $5 - local.get $2 + local.get $1 i32.load offset=4 local.set $6 - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|06 local.get $0 - local.get $2 + local.get $1 i32.lt_s if - local.get $5 + local.get $6 local.get $0 i32.const 3 i32.shl local.tee $7 i32.add - local.get $6 + i64.load + local.set $8 + local.get $5 local.get $7 i32.add - i64.load + local.get $8 f64.convert_i64_s f64.store local.get $0 @@ -47263,52 +47314,52 @@ i32.const 62 i32.const 15056 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 - local.get $3 local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> i32.const 0 - local.set $2 - local.get $1 - i32.load offset=8 + local.set $1 local.get $3 i32.load offset=8 + local.get $2 + i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $3 + local.get $2 i32.load offset=4 local.set $0 - local.get $1 + local.get $3 i32.load offset=4 local.set $5 - local.get $1 + local.get $3 i32.load offset=8 - local.set $1 + local.set $3 loop $for-loop|08 local.get $1 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s if local.get $0 - local.get $2 + local.get $1 i32.const 3 i32.shl i32.add - local.get $2 + local.get $1 local.get $5 i32.add i32.load8_u f64.convert_i32_u f64.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|08 end end @@ -47320,17 +47371,17 @@ i32.shr_u i32.const 4 i32.add - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $3 + local.get $2 i32.load offset=4 i32.const 32 i32.add - local.set $2 + local.set $3 local.get $4 i32.load offset=4 local.set $0 @@ -47339,12 +47390,12 @@ i32.const 1 i32.shr_u local.set $4 - loop $for-loop|00 + loop $for-loop|010 local.get $1 local.get $4 i32.lt_s if - local.get $2 + local.get $3 local.get $1 i32.const 3 i32.shl @@ -47361,56 +47412,56 @@ i32.const 1 i32.add local.set $1 - br $for-loop|00 + br $for-loop|010 end end global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 i32.const 0 - local.set $1 + local.set $3 i32.const 11276 i32.load i32.const 7 i32.add - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $3 + local.get $2 i32.load offset=4 i32.const 56 i32.add - local.set $2 + local.set $1 i32.const 11268 i32.load local.set $4 i32.const 11276 i32.load local.set $0 - loop $for-loop|012 + loop $for-loop|014 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add - local.get $1 + local.get $3 local.get $4 i32.add i32.load8_s f64.convert_i32_s f64.store - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 - br $for-loop|012 + local.set $3 + br $for-loop|014 end end i32.const 10 @@ -47418,12 +47469,12 @@ i32.const 62 i32.const 15168 call $~lib/rt/__newArray - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=16 + local.get $2 local.get $3 - local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -47449,2128 +47500,30 @@ (local $7 i32) (local $8 i32) (local $9 i64) - (local $10 f32) - (local $11 f64) - (local $12 i32) - (local $13 i64) - (local $14 f32) - (local $15 f64) - (local $16 i32) + (local $10 i32) + (local $11 f32) + (local $12 f64) + (local $13 i32) + (local $14 i64) + (local $15 f32) + (local $16 f64) global.get $~lib/memory/__stack_pointer i32.const 32 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner32 - block $folding-inner16 - block $folding-inner15 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner16 - 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 - i64.const 0 - i64.store offset=24 - memory.size - i32.const 16 - i32.shl - i32.const 33012 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1284 - i32.const 1280 - i32.store - i32.const 1288 - i32.const 1280 - i32.store - i32.const 1280 - global.set $~lib/rt/itcms/pinSpace - i32.const 1316 - i32.const 1312 - i32.store - i32.const 1320 - i32.const 1312 - i32.store - i32.const 1312 - global.set $~lib/rt/itcms/toSpace - i32.const 1460 - i32.const 1456 - i32.store - i32.const 1464 - i32.const 1456 - i32.store - i32.const 1456 - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - call $std/typedarray/testInstantiate - i32.const 5 - call $std/typedarray/testInstantiate - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 95 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 96 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 97 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 98 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 99 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 100 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#subarray - local.tee $0 - i32.store - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 103 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 104 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 105 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 106 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - local.get $0 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 2 - f64.const 7 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 3 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 5 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 6 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 7 - f64.const 8 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Float64Array#subarray - local.tee $1 - i32.store - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 122 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - i32.const 16 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 123 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - i32.const 32 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 124 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $~argumentsLength - local.get $1 - call $~lib/typedarray/Float64Array#sort@varargs - drop - local.get $1 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.eq - if (result i32) - local.get $1 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.eq - else - i32.const 0 - end - if (result i32) - local.get $1 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.eq - else - i32.const 0 - end - if (result i32) - local.get $1 - i32.const 3 - call $~lib/typedarray/Float64Array#__get - f64.const 7 - f64.eq - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 126 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - local.get $0 - i32.const 0 - i32.const -32 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 2 - i32.const 256 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - if - i32.const 0 - i32.const 1568 - i32.const 135 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 136 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 255 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 137 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int8Array#constructor - local.tee $2 - i32.store - local.get $2 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $2 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $2 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - local.get $2 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int8Array#fill - i32.const 5 - i32.const 0 - i32.const 15 - i32.const 1728 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 149 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int8Array#fill - i32.const 5 - i32.const 0 - i32.const 15 - i32.const 1808 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 152 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/typedarray/Int8Array#fill - i32.const 5 - i32.const 0 - i32.const 15 - i32.const 1840 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 155 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - i32.const -2 - i32.const 2147483647 - call $~lib/typedarray/Int8Array#fill - i32.const 5 - i32.const 0 - i32.const 15 - i32.const 1872 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 158 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/typedarray/Int8Array#fill - i32.const 5 - i32.const 0 - i32.const 15 - i32.const 1904 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 161 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.tee $1 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int8Array#fill - local.get $1 - i32.load offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 165 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 166 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 167 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 0 - i32.const 15 - i32.const 1936 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 168 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 0 - i32.const 15 - i32.const 1968 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 169 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $4 - i32.store offset=8 - local.get $4 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.load offset=4 - local.set $1 - i32.const 1 - local.get $4 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $0 - local.get $0 - i32.const 1 - i32.gt_s - select - local.set $3 - i32.const 3 - local.get $0 - local.get $0 - i32.const 3 - i32.gt_s - select - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.gt_s - if - local.get $1 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const 1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2000 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $4 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 181 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.load offset=4 - local.set $0 - i32.const 0 - local.get $4 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $1 - local.get $1 - i32.const 0 - i32.gt_s - select - local.set $3 - loop $for-loop|01 - local.get $1 - local.get $3 - i32.gt_s - if - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const 0 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|01 - end - end - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2048 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $4 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 184 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.load offset=4 - local.set $1 - i32.const 0 - local.get $4 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $0 - local.get $0 - i32.const 0 - i32.gt_s - select - local.set $3 - local.get $0 - i32.const 3 - i32.sub - local.tee $0 - i32.const 0 - local.get $0 - i32.const 0 - i32.gt_s - select - local.set $0 - loop $for-loop|03 - local.get $0 - local.get $3 - i32.gt_s - if - local.get $1 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const 1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|03 - end - end - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2096 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $4 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 187 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.load offset=4 - local.set $2 - local.get $4 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $1 - i32.const 2 - i32.sub - local.tee $0 - i32.const 0 - local.get $0 - i32.const 0 - i32.gt_s - select - local.set $3 - loop $for-loop|05 - local.get $1 - local.get $3 - i32.gt_s - if - local.get $2 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const 2 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|05 - end - end - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2144 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $4 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 190 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.load offset=4 - local.set $1 - i32.const 1 - local.get $4 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $0 - local.get $0 - i32.const 1 - i32.gt_s - select - local.set $3 - i32.const 0 - local.get $0 - local.get $0 - i32.const 0 - i32.gt_s - select - local.set $0 - loop $for-loop|07 - local.get $0 - local.get $3 - i32.gt_s - if - local.get $1 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const 0 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|07 - end - end - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2192 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $4 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 193 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#subarray - local.tee $2 - i32.store offset=12 - local.get $2 - i32.load offset=4 - local.set $0 - i32.const 0 - local.get $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $1 - local.get $1 - i32.const 0 - i32.gt_s - select - local.set $3 - loop $for-loop|09 - local.get $1 - local.get $3 - i32.gt_s - if - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const 0 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|09 - end - end - local.get $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 197 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load offset=4 - local.get $2 - i32.load - i32.sub - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 198 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 199 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 2 - i32.const 16 - i32.const 2240 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 200 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2272 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $4 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 201 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 5 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - i32.const 6 - call $~lib/typedarray/Int8Array#subarray - local.tee $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 222 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 223 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 224 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 225 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - i32.const 5 - call $~lib/typedarray/Int8Array#subarray - local.tee $0 - i32.store - local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 228 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 229 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 230 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 231 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 234 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 235 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 236 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 237 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $2 - i32.store - local.get $0 - i32.const 0 - i32.const 3 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2320 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 248 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 1 - i32.const 3 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2368 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 250 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 1 - i32.const 2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2416 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 252 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 2 - i32.const 2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2464 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 254 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2512 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 256 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2560 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 258 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 1 - i32.const 2 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2608 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 260 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.const -2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2656 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 262 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.const -2 - i32.const -1 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2704 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 264 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const -4 - i32.const -3 - i32.const -2 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2752 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 266 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const -4 - i32.const -3 - i32.const -1 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2800 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 268 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const -4 - i32.const -3 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2848 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 270 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $2 - i32.store - local.get $2 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $2 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $2 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#subarray - local.tee $0 - i32.store offset=16 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 282 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 283 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 284 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int32Array#slice - local.tee $1 - i32.store offset=8 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 287 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 288 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 289 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 290 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 291 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#slice - local.tee $0 - i32.store offset=12 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 294 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 295 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 296 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 297 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $0 - i32.store offset=24 - local.get $0 - local.get $2 - i32.eq - if - i32.const 0 - i32.const 1568 - i32.const 300 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.get $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 301 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub - local.get $2 - i32.load offset=4 - local.get $2 - i32.load - i32.sub - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 302 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - local.get $2 - i32.load offset=8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 303 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - 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-inner16 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $4 - i32.store - local.get $4 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $4 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $4 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 2896 - i32.store offset=4 - local.get $4 - i32.load offset=4 - local.set $2 - local.get $4 - i32.load offset=8 - local.set $1 - loop $for-loop|011 - local.get $1 - local.get $6 - i32.gt_s - if - local.get $2 - local.get $6 - i32.add - i32.load8_s - local.set $0 - i32.const 4 - global.set $~argumentsLength - local.get $5 - local.get $0 - local.get $6 - local.get $4 - i32.const 2896 - i32.load - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|011 - end - end + 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 @@ -49589,6 +47542,2106 @@ block $folding-inner3 block $folding-inner2 block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner21 + 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 + i64.const 0 + i64.store offset=24 + memory.size + i32.const 16 + i32.shl + i32.const 33012 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1284 + i32.const 1280 + i32.store + i32.const 1288 + i32.const 1280 + i32.store + i32.const 1280 + global.set $~lib/rt/itcms/pinSpace + i32.const 1316 + i32.const 1312 + i32.store + i32.const 1320 + i32.const 1312 + i32.store + i32.const 1312 + global.set $~lib/rt/itcms/toSpace + i32.const 1460 + i32.const 1456 + i32.store + i32.const 1464 + i32.const 1456 + i32.store + i32.const 1456 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $std/typedarray/testInstantiate + i32.const 5 + call $std/typedarray/testInstantiate + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 99 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 100 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#subarray + local.tee $0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 7 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 3 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 5 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 6 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 7 + f64.const 8 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Float64Array#subarray + local.tee $1 + i32.store + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + i32.const 16 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 123 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 32 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $~argumentsLength + local.get $1 + call $~lib/typedarray/Float64Array#sort@varargs + drop + local.get $1 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + if (result i32) + local.get $1 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.eq + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const -32 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 256 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + if + i32.const 0 + i32.const 1568 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 136 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 255 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 137 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int8Array#fill + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1728 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + local.get $0 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 149 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int8Array#fill + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1808 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + local.get $0 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 152 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int8Array#fill + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1840 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + local.get $0 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 155 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + i32.const -2 + i32.const 2147483647 + call $~lib/typedarray/Int8Array#fill + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1872 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + local.get $0 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 158 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int8Array#fill + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1904 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + local.get $0 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 161 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int8Array#fill + local.get $1 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 165 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 167 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 0 + i32.const 15 + i32.const 1936 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 168 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1968 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + local.get $0 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 169 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store offset=8 + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.load offset=4 + local.set $1 + i32.const 1 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + local.get $0 + i32.const 1 + i32.gt_s + select + local.set $4 + i32.const 3 + local.get $0 + local.get $0 + i32.const 3 + i32.gt_s + select + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.gt_s + if + local.get $1 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.const 1 + i32.store + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2000 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 181 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=4 + local.set $1 + i32.const 0 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $4 + loop $for-loop|01 + local.get $0 + local.get $4 + i32.gt_s + if + local.get $1 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.const 0 + i32.store + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|01 + end + end + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2048 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 184 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=4 + local.set $1 + i32.const 0 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $4 + local.get $0 + i32.const 3 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + loop $for-loop|03 + local.get $0 + local.get $4 + i32.gt_s + if + local.get $1 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.const 1 + i32.store + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|03 + end + end + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2096 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 187 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.const 2 + i32.sub + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.set $4 + loop $for-loop|05 + local.get $0 + local.get $4 + i32.gt_s + if + local.get $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.const 2 + i32.store + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|05 + end + end + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2144 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 190 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=4 + local.set $1 + i32.const 1 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + local.get $0 + i32.const 1 + i32.gt_s + select + local.set $4 + i32.const 0 + local.get $0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + loop $for-loop|07 + local.get $0 + local.get $4 + i32.gt_s + if + local.get $1 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.const 0 + i32.store + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|07 + end + end + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2192 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 193 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $2 + i32.store offset=12 + local.get $2 + i32.load offset=4 + local.set $1 + i32.const 0 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $4 + loop $for-loop|09 + local.get $0 + local.get $4 + i32.gt_s + if + local.get $1 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.const 0 + i32.store + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|09 + end + end + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 197 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=4 + local.get $2 + i32.load + i32.sub + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 198 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 199 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 16 + i32.const 2240 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 200 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2272 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 201 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 5 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 6 + call $~lib/typedarray/Int8Array#subarray + local.tee $0 + i32.store offset=8 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 222 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 223 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 224 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 225 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 5 + call $~lib/typedarray/Int8Array#subarray + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 228 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 229 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 230 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 231 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 236 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 237 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $2 + i32.store + local.get $0 + i32.const 0 + i32.const 3 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2320 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 248 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 3 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2368 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 250 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2416 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 252 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 2 + i32.const 2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2464 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 254 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2512 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 256 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2560 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 258 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 1 + i32.const 2 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2608 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 260 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const -2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2656 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 262 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.const -2 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2704 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 264 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const -4 + i32.const -3 + i32.const -2 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2752 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 266 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const -4 + i32.const -3 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2800 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 268 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const -4 + i32.const -3 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2848 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 270 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $0 + i32.store offset=16 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 282 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 283 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 284 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#slice + local.tee $1 + i32.store offset=8 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 287 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 288 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 289 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 290 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 291 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=12 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 294 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 295 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 296 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 297 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=24 + local.get $0 + local.get $2 + i32.eq + if + i32.const 0 + i32.const 1568 + i32.const 300 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 301 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + local.get $2 + i32.load offset=4 + local.get $2 + i32.load + i32.sub + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 302 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + local.get $2 + i32.load offset=8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 303 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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-inner21 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 2896 + i32.store offset=4 + i32.const 0 + local.set $4 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + local.set $1 + loop $for-loop|011 + local.get $1 + local.get $4 + i32.gt_s + if + local.get $2 + local.get $4 + i32.add + i32.load8_s + local.set $0 + i32.const 4 + global.set $~argumentsLength + local.get $5 + local.get $0 + local.get $4 + local.get $3 + i32.const 2896 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $5 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|011 + end + end local.get $5 i32.const 255 i32.and @@ -49606,7 +49659,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49614,17 +49667,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set @@ -49632,43 +49685,43 @@ i32.const 2928 i32.store offset=4 i32.const 0 - local.set $5 + local.set $4 i32.const 0 - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 local.set $1 - loop $for-loop|013 + loop $for-loop|010 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.add i32.load8_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $3 - local.get $0 local.get $5 + local.get $0 local.get $4 + local.get $3 i32.const 2928 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $5 + local.set $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|013 + local.set $4 + br $for-loop|010 end end - local.get $3 + local.get $5 i32.const 255 i32.and i32.const 6 @@ -49685,7 +49738,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49693,17 +49746,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set @@ -49711,43 +49764,43 @@ i32.const 2960 i32.store offset=4 i32.const 0 - local.set $5 + local.set $4 i32.const 0 - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 local.set $1 - loop $for-loop|016 + loop $for-loop|013 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.add i32.load8_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $3 - local.get $0 local.get $5 + local.get $0 local.get $4 + local.get $3 i32.const 2960 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $5 + local.set $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|016 + local.set $4 + br $for-loop|013 end end - local.get $3 + local.get $5 i32.const 255 i32.and i32.const 6 @@ -49764,7 +49817,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49772,17 +49825,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set @@ -49790,24 +49843,24 @@ i32.const 2992 i32.store offset=4 i32.const 0 - local.set $6 + local.set $4 i32.const 0 local.set $5 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 - loop $for-loop|08 + loop $for-loop|014 local.get $1 - local.get $6 + local.get $4 i32.gt_s if local.get $2 - local.get $6 + local.get $4 i32.const 1 i32.shl i32.add @@ -49817,17 +49870,17 @@ global.set $~argumentsLength local.get $5 local.get $0 - local.get $6 local.get $4 + local.get $3 i32.const 2992 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $5 - local.get $6 + local.get $4 i32.const 1 i32.add - local.set $6 - br $for-loop|08 + local.set $4 + br $for-loop|014 end end local.get $5 @@ -49847,7 +49900,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49855,17 +49908,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set @@ -49873,24 +49926,24 @@ i32.const 3024 i32.store offset=4 i32.const 0 - local.set $6 + local.set $4 i32.const 0 local.set $5 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 - loop $for-loop|010 + loop $for-loop|016 local.get $1 - local.get $6 + local.get $4 i32.gt_s if local.get $2 - local.get $6 + local.get $4 i32.const 1 i32.shl i32.add @@ -49900,17 +49953,17 @@ global.set $~argumentsLength local.get $5 local.get $0 - local.get $6 local.get $4 + local.get $3 i32.const 3024 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $5 - local.get $6 + local.get $4 i32.const 1 i32.add - local.set $6 - br $for-loop|010 + local.set $4 + br $for-loop|016 end end local.get $5 @@ -49930,7 +49983,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49938,17 +49991,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set @@ -49956,24 +50009,24 @@ i32.const 3056 i32.store offset=4 i32.const 0 - local.set $6 + local.set $4 i32.const 0 local.set $5 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 - loop $for-loop|012 + loop $for-loop|018 local.get $1 - local.get $6 + local.get $4 i32.gt_s if local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.shl i32.add @@ -49983,17 +50036,17 @@ global.set $~argumentsLength local.get $5 local.get $0 - local.get $6 local.get $4 + local.get $3 i32.const 3056 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $5 - local.get $6 + local.get $4 i32.const 1 i32.add - local.set $6 - br $for-loop|012 + local.set $4 + br $for-loop|018 end end local.get $5 @@ -50011,7 +50064,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50019,17 +50072,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set @@ -50037,24 +50090,24 @@ i32.const 3088 i32.store offset=4 i32.const 0 - local.set $6 + local.set $4 i32.const 0 local.set $5 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 - loop $for-loop|014 + loop $for-loop|021 local.get $1 - local.get $6 + local.get $4 i32.gt_s if local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.shl i32.add @@ -50064,17 +50117,17 @@ global.set $~argumentsLength local.get $5 local.get $0 - local.get $6 local.get $4 + local.get $3 i32.const 3088 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $5 - local.get $6 + local.get $4 i32.const 1 i32.add - local.set $6 - br $for-loop|014 + local.set $4 + br $for-loop|021 end end local.get $5 @@ -50092,7 +50145,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50118,7 +50171,7 @@ i32.const 3120 i32.store offset=4 i32.const 0 - local.set $6 + local.set $4 local.get $2 i32.load offset=4 local.set $1 @@ -50127,13 +50180,13 @@ i32.const 3 i32.shr_u local.set $0 - loop $for-loop|01622 + loop $for-loop|023 local.get $0 - local.get $6 + local.get $4 i32.gt_s if local.get $1 - local.get $6 + local.get $4 i32.const 3 i32.shl i32.add @@ -50141,22 +50194,22 @@ local.set $9 i32.const 4 global.set $~argumentsLength - local.get $13 + local.get $14 local.get $9 - local.get $6 + local.get $4 local.get $2 i32.const 3120 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $13 - local.get $6 + local.set $14 + local.get $4 i32.const 1 i32.add - local.set $6 - br $for-loop|01622 + local.set $4 + br $for-loop|023 end end - local.get $13 + local.get $14 i64.const 6 i64.ne br_if $folding-inner1 @@ -50171,7 +50224,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50197,9 +50250,9 @@ i32.const 3152 i32.store offset=4 i32.const 0 - local.set $6 + local.set $4 i64.const 0 - local.set $13 + local.set $14 local.get $2 i32.load offset=4 local.set $1 @@ -50208,13 +50261,13 @@ i32.const 3 i32.shr_u local.set $0 - loop $for-loop|018 + loop $for-loop|025 local.get $0 - local.get $6 + local.get $4 i32.gt_s if local.get $1 - local.get $6 + local.get $4 i32.const 3 i32.shl i32.add @@ -50222,22 +50275,22 @@ local.set $9 i32.const 4 global.set $~argumentsLength - local.get $13 + local.get $14 local.get $9 - local.get $6 + local.get $4 local.get $2 i32.const 3152 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $13 - local.get $6 + local.set $14 + local.get $4 i32.const 1 i32.add - local.set $6 - br $for-loop|018 + local.set $4 + br $for-loop|025 end end - local.get $13 + local.get $14 i64.const 6 i64.ne br_if $folding-inner1 @@ -50252,7 +50305,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50278,7 +50331,7 @@ i32.const 3184 i32.store offset=4 i32.const 0 - local.set $6 + local.set $4 local.get $2 i32.load offset=4 local.set $1 @@ -50287,36 +50340,36 @@ i32.const 2 i32.shr_u local.set $0 - loop $for-loop|021 + loop $for-loop|027 local.get $0 - local.get $6 + local.get $4 i32.gt_s if local.get $1 - local.get $6 + local.get $4 i32.const 2 i32.shl i32.add f32.load - local.set $10 + local.set $11 i32.const 4 global.set $~argumentsLength - local.get $14 - local.get $10 - local.get $6 + local.get $15 + local.get $11 + local.get $4 local.get $2 i32.const 3184 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $14 - local.get $6 + local.set $15 + local.get $4 i32.const 1 i32.add - local.set $6 - br $for-loop|021 + local.set $4 + br $for-loop|027 end end - local.get $14 + local.get $15 f32.const 6 f32.ne br_if $folding-inner1 @@ -50331,7 +50384,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50357,7 +50410,7 @@ i32.const 3216 i32.store offset=4 i32.const 0 - local.set $6 + local.set $4 local.get $2 i32.load offset=4 local.set $1 @@ -50366,36 +50419,36 @@ i32.const 3 i32.shr_u local.set $0 - loop $for-loop|023 + loop $for-loop|029 local.get $0 - local.get $6 + local.get $4 i32.gt_s if local.get $1 - local.get $6 + local.get $4 i32.const 3 i32.shl i32.add f64.load - local.set $11 + local.set $12 i32.const 4 global.set $~argumentsLength - local.get $15 - local.get $11 - local.get $6 + local.get $16 + local.get $12 + local.get $4 local.get $2 i32.const 3216 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $15 - local.get $6 + local.set $16 + local.get $4 i32.const 1 i32.add - local.set $6 - br $for-loop|023 + local.set $4 + br $for-loop|029 end end - local.get $15 + local.get $16 f64.const 6 f64.ne br_if $folding-inner1 @@ -50410,7 +50463,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50461,7 +50514,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50512,7 +50565,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50563,7 +50616,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50614,7 +50667,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50665,7 +50718,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50716,7 +50769,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50767,7 +50820,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50818,7 +50871,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50869,7 +50922,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50920,7 +50973,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50971,7 +51024,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50997,7 +51050,7 @@ i32.const 3248 i32.store offset=4 i32.const 0 - local.set $6 + local.set $4 local.get $2 i32.load offset=4 local.set $1 @@ -51005,35 +51058,35 @@ i32.load offset=8 i32.const 1 i32.sub - local.set $4 - loop $for-loop|025 - local.get $4 + local.set $3 + loop $for-loop|031 + local.get $3 i32.const 0 i32.ge_s if local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_s local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $0 local.get $4 + local.get $0 + local.get $3 local.get $2 i32.const 3248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $4 + local.set $4 + local.get $3 i32.const 1 i32.sub - local.set $4 - br $for-loop|025 + local.set $3 + br $for-loop|031 end end - local.get $6 + local.get $4 i32.const 255 i32.and i32.const 6 @@ -51050,7 +51103,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51085,7 +51138,7 @@ i32.const 1 i32.sub local.set $3 - loop $for-loop|039 + loop $for-loop|033 local.get $3 i32.const 0 i32.ge_s @@ -51109,7 +51162,7 @@ i32.const 1 i32.sub local.set $3 - br $for-loop|039 + br $for-loop|033 end end local.get $4 @@ -51129,7 +51182,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51164,7 +51217,7 @@ i32.const 1 i32.sub local.set $3 - loop $for-loop|042 + loop $for-loop|036 local.get $3 i32.const 0 i32.ge_s @@ -51188,7 +51241,7 @@ i32.const 1 i32.sub local.set $3 - br $for-loop|042 + br $for-loop|036 end end local.get $4 @@ -51208,7 +51261,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51234,7 +51287,7 @@ i32.const 3344 i32.store offset=4 i32.const 0 - local.set $6 + local.set $4 local.get $2 i32.load offset=4 local.set $1 @@ -51244,14 +51297,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $4 - loop $for-loop|027 - local.get $4 + local.set $3 + loop $for-loop|038 + local.get $3 i32.const 0 i32.ge_s if local.get $1 - local.get $4 + local.get $3 i32.const 1 i32.shl i32.add @@ -51259,22 +51312,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $0 local.get $4 + local.get $0 + local.get $3 local.get $2 i32.const 3344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $4 + local.set $4 + local.get $3 i32.const 1 i32.sub - local.set $4 - br $for-loop|027 + local.set $3 + br $for-loop|038 end end - local.get $6 + local.get $4 i32.const 65535 i32.and i32.const 6 @@ -51291,7 +51344,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51317,7 +51370,7 @@ i32.const 3376 i32.store offset=4 i32.const 0 - local.set $6 + local.set $4 local.get $2 i32.load offset=4 local.set $1 @@ -51327,14 +51380,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $4 - loop $for-loop|029 - local.get $4 + local.set $3 + loop $for-loop|040 + local.get $3 i32.const 0 i32.ge_s if local.get $1 - local.get $4 + local.get $3 i32.const 1 i32.shl i32.add @@ -51342,22 +51395,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $0 local.get $4 + local.get $0 + local.get $3 local.get $2 i32.const 3376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $4 + local.set $4 + local.get $3 i32.const 1 i32.sub - local.set $4 - br $for-loop|029 + local.set $3 + br $for-loop|040 end end - local.get $6 + local.get $4 i32.const 65535 i32.and i32.const 6 @@ -51374,7 +51427,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51400,7 +51453,7 @@ i32.const 3408 i32.store offset=4 i32.const 0 - local.set $6 + local.set $4 local.get $2 i32.load offset=4 local.set $1 @@ -51410,14 +51463,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $4 - loop $for-loop|031 - local.get $4 + local.set $3 + loop $for-loop|042 + local.get $3 i32.const 0 i32.ge_s if local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.shl i32.add @@ -51425,22 +51478,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $0 local.get $4 + local.get $0 + local.get $3 local.get $2 i32.const 3408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $4 + local.set $4 + local.get $3 i32.const 1 i32.sub - local.set $4 - br $for-loop|031 + local.set $3 + br $for-loop|042 end end - local.get $6 + local.get $4 i32.const 6 i32.ne br_if $folding-inner5 @@ -51455,7 +51508,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51481,7 +51534,7 @@ i32.const 3440 i32.store offset=4 i32.const 0 - local.set $6 + local.set $4 local.get $2 i32.load offset=4 local.set $1 @@ -51491,14 +51544,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $4 - loop $for-loop|033 - local.get $4 + local.set $3 + loop $for-loop|044 + local.get $3 i32.const 0 i32.ge_s if local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.shl i32.add @@ -51506,22 +51559,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $0 local.get $4 + local.get $0 + local.get $3 local.get $2 i32.const 3440 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $4 + local.set $4 + local.get $3 i32.const 1 i32.sub - local.set $4 - br $for-loop|033 + local.set $3 + br $for-loop|044 end end - local.get $6 + local.get $4 i32.const 6 i32.ne br_if $folding-inner5 @@ -51536,7 +51589,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51562,7 +51615,7 @@ i32.const 3472 i32.store offset=4 i64.const 0 - local.set $13 + local.set $14 local.get $1 i32.load offset=4 local.set $0 @@ -51572,14 +51625,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $4 - loop $for-loop|035 - local.get $4 + local.set $3 + loop $for-loop|046 + local.get $3 i32.const 0 i32.ge_s if local.get $0 - local.get $4 + local.get $3 i32.const 3 i32.shl i32.add @@ -51587,22 +51640,22 @@ local.set $9 i32.const 4 global.set $~argumentsLength - local.get $13 + local.get $14 local.get $9 - local.get $4 + local.get $3 local.get $1 i32.const 3472 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $13 - local.get $4 + local.set $14 + local.get $3 i32.const 1 i32.sub - local.set $4 - br $for-loop|035 + local.set $3 + br $for-loop|046 end end - local.get $13 + local.get $14 i64.const 6 i64.ne br_if $folding-inner5 @@ -51617,7 +51670,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51643,7 +51696,7 @@ i32.const 3504 i32.store offset=4 i64.const 0 - local.set $13 + local.set $14 local.get $1 i32.load offset=4 local.set $0 @@ -51653,14 +51706,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $4 - loop $for-loop|037 - local.get $4 + local.set $3 + loop $for-loop|048 + local.get $3 i32.const 0 i32.ge_s if local.get $0 - local.get $4 + local.get $3 i32.const 3 i32.shl i32.add @@ -51668,22 +51721,22 @@ local.set $9 i32.const 4 global.set $~argumentsLength - local.get $13 + local.get $14 local.get $9 - local.get $4 + local.get $3 local.get $1 i32.const 3504 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $13 - local.get $4 + local.set $14 + local.get $3 i32.const 1 i32.sub - local.set $4 - br $for-loop|037 + local.set $3 + br $for-loop|048 end end - local.get $13 + local.get $14 i64.const 6 i64.ne br_if $folding-inner5 @@ -51698,7 +51751,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51724,7 +51777,7 @@ i32.const 3536 i32.store offset=4 f32.const 0 - local.set $14 + local.set $15 local.get $1 i32.load offset=4 local.set $0 @@ -51734,37 +51787,37 @@ i32.shr_u i32.const 1 i32.sub - local.set $4 - loop $for-loop|03950 - local.get $4 + local.set $3 + loop $for-loop|050 + local.get $3 i32.const 0 i32.ge_s if local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.shl i32.add f32.load - local.set $10 + local.set $11 i32.const 4 global.set $~argumentsLength - local.get $14 - local.get $10 - local.get $4 + local.get $15 + local.get $11 + local.get $3 local.get $1 i32.const 3536 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $14 - local.get $4 + local.set $15 + local.get $3 i32.const 1 i32.sub - local.set $4 - br $for-loop|03950 + local.set $3 + br $for-loop|050 end end - local.get $14 + local.get $15 f32.const 6 f32.ne br_if $folding-inner5 @@ -51779,7 +51832,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51805,7 +51858,7 @@ i32.const 3568 i32.store offset=4 f64.const 0 - local.set $15 + local.set $16 local.get $1 i32.load offset=4 local.set $0 @@ -51815,37 +51868,37 @@ i32.shr_u i32.const 1 i32.sub - local.set $4 - loop $for-loop|041 - local.get $4 + local.set $3 + loop $for-loop|052 + local.get $3 i32.const 0 i32.ge_s if local.get $0 - local.get $4 + local.get $3 i32.const 3 i32.shl i32.add f64.load - local.set $11 + local.set $12 i32.const 4 global.set $~argumentsLength - local.get $15 - local.get $11 - local.get $4 + local.get $16 + local.get $12 + local.get $3 local.get $1 i32.const 3568 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $15 - local.get $4 + local.set $16 + local.get $3 i32.const 1 i32.sub - local.set $4 - br $for-loop|041 + local.set $3 + br $for-loop|052 end end - local.get $15 + local.get $16 f64.const 6 f64.ne br_if $folding-inner5 @@ -51860,7 +51913,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51871,115 +51924,115 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $6 + local.get $7 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $6 + local.get $7 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 3600 i32.store offset=4 - local.get $2 + local.get $3 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-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $6 - i32.load offset=4 - local.set $1 - local.get $6 + local.get $7 i32.load offset=8 - local.set $4 + local.set $5 + local.get $7 + i32.load offset=4 + local.set $2 local.get $0 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=4 loop $for-loop|02 - local.get $4 - local.get $7 + local.get $5 + local.get $6 i32.gt_s if - local.get $1 - local.get $7 + local.get $2 + local.get $6 i32.add i32.load8_s - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $7 + local.get $4 + local.get $6 i32.add - local.get $0 - local.get $7 + local.get $1 local.get $6 + local.get $7 i32.const 3600 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|02 end end - local.get $5 - local.get $3 + local.get $0 + local.get $4 i32.store - local.get $5 - local.get $3 + local.get $0 + local.get $4 call $~lib/rt/itcms/__link - local.get $5 - local.get $3 + local.get $0 + local.get $4 i32.store offset=4 + local.get $0 local.get $5 - local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 + local.get $3 + local.get $0 i32.store offset=8 - local.get $5 + local.get $0 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne br_if $folding-inner18 - local.get $5 + local.get $0 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 4 i32.ne br_if $folding-inner19 - local.get $5 + local.get $0 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 9 @@ -51990,7 +52043,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51998,7 +52051,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52009,115 +52062,115 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $7 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $7 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 3632 i32.store offset=4 - local.get $2 + local.get $3 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-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $6 - i32.load offset=4 - local.set $1 - local.get $6 + local.get $7 i32.load offset=8 - local.set $4 + local.set $5 + local.get $7 + i32.load offset=4 + local.set $2 local.get $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=4 loop $for-loop|04 - local.get $4 - local.get $7 + local.get $5 + local.get $6 i32.gt_s if - local.get $1 - local.get $7 + local.get $2 + local.get $6 i32.add i32.load8_u - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $7 + local.get $4 + local.get $6 i32.add - local.get $0 - local.get $7 + local.get $1 local.get $6 + local.get $7 i32.const 3632 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|04 end end - local.get $5 - local.get $3 + local.get $0 + local.get $4 i32.store - local.get $5 - local.get $3 + local.get $0 + local.get $4 call $~lib/rt/itcms/__link - local.get $5 - local.get $3 + local.get $0 + local.get $4 i32.store offset=4 + local.get $0 local.get $5 - local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 + local.get $3 + local.get $0 i32.store offset=8 - local.get $5 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne br_if $folding-inner18 - local.get $5 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 4 i32.ne br_if $folding-inner19 - local.get $5 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 9 @@ -52128,7 +52181,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52136,7 +52189,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52147,115 +52200,115 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $6 + local.get $7 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $6 + local.get $7 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 3664 i32.store offset=4 - local.get $2 + local.get $3 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-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $6 - i32.load offset=4 - local.set $1 - local.get $6 + local.get $7 i32.load offset=8 - local.set $4 + local.set $5 + local.get $7 + i32.load offset=4 + local.set $2 local.get $0 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=4 loop $for-loop|06 - local.get $4 - local.get $7 + local.get $5 + local.get $6 i32.gt_s if - local.get $1 - local.get $7 + local.get $2 + local.get $6 i32.add i32.load8_u - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $7 + local.get $4 + local.get $6 i32.add - local.get $0 - local.get $7 + local.get $1 local.get $6 + local.get $7 i32.const 3664 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|06 end end - local.get $5 - local.get $3 + local.get $0 + local.get $4 i32.store - local.get $5 - local.get $3 + local.get $0 + local.get $4 call $~lib/rt/itcms/__link - local.get $5 - local.get $3 + local.get $0 + local.get $4 i32.store offset=4 + local.get $0 local.get $5 - local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 + local.get $3 + local.get $0 i32.store offset=8 - local.get $5 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne br_if $folding-inner18 - local.get $5 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 i32.ne br_if $folding-inner19 - local.get $5 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 9 @@ -52265,6 +52318,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52272,7 +52327,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52298,51 +52353,51 @@ i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 3696 i32.store offset=4 - local.get $6 + local.get $4 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-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $8 - i32.load offset=4 - local.set $4 - local.get $8 i32.load offset=8 i32.const 1 i32.shr_u + local.set $5 + local.get $8 + i32.load offset=4 local.set $3 local.get $0 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.const 1 i32.shl local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $7 i32.store offset=4 - loop $for-loop|015 - local.get $3 - local.get $12 + loop $for-loop|08 + local.get $5 + local.get $6 i32.gt_s if - local.get $4 - local.get $12 + local.get $3 + local.get $6 i32.const 1 i32.shl local.tee $1 @@ -52352,54 +52407,54 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $7 i32.add local.get $0 - local.get $12 + local.get $6 local.get $8 i32.const 3696 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 - local.get $12 + local.get $6 i32.const 1 i32.add - local.set $12 - br $for-loop|015 + local.set $6 + br $for-loop|08 end end + local.get $10 local.get $7 - local.get $5 i32.store + local.get $10 local.get $7 - local.get $5 call $~lib/rt/itcms/__link + local.get $10 local.get $7 - local.get $5 i32.store offset=4 - local.get $7 + local.get $10 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 $6 - local.get $7 + local.get $4 + local.get $10 i32.store offset=8 - local.get $7 + local.get $10 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne br_if $folding-inner18 - local.get $7 + local.get $10 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 4 i32.ne br_if $folding-inner19 - local.get $7 + local.get $10 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 9 @@ -52410,7 +52465,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $12 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52418,7 +52473,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52444,51 +52499,51 @@ i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 3728 i32.store offset=4 - local.get $6 + local.get $4 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-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $8 - i32.load offset=4 - local.set $4 - local.get $8 i32.load offset=8 i32.const 1 i32.shr_u + local.set $5 + local.get $8 + i32.load offset=4 local.set $3 local.get $0 i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.const 1 i32.shl local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $7 i32.store offset=4 - loop $for-loop|017 - local.get $3 - local.get $12 + loop $for-loop|012 + local.get $5 + local.get $6 i32.gt_s if - local.get $4 - local.get $12 + local.get $3 + local.get $6 i32.const 1 i32.shl local.tee $1 @@ -52498,54 +52553,54 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $7 i32.add local.get $0 - local.get $12 + local.get $6 local.get $8 i32.const 3728 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 - local.get $12 + local.get $6 i32.const 1 i32.add - local.set $12 - br $for-loop|017 + local.set $6 + br $for-loop|012 end end + local.get $10 local.get $7 - local.get $5 i32.store + local.get $10 local.get $7 - local.get $5 call $~lib/rt/itcms/__link + local.get $10 local.get $7 - local.get $5 i32.store offset=4 - local.get $7 + local.get $10 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 $6 - local.get $7 + local.get $4 + local.get $10 i32.store offset=8 - local.get $7 + local.get $10 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne br_if $folding-inner18 - local.get $7 + local.get $10 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 4 i32.ne br_if $folding-inner19 - local.get $7 + local.get $10 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 9 @@ -52556,7 +52611,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $12 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52564,7 +52619,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52590,51 +52645,51 @@ i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 3760 i32.store offset=4 - local.get $6 + local.get $4 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-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $8 - i32.load offset=4 - local.set $4 - local.get $8 i32.load offset=8 i32.const 2 i32.shr_u + local.set $5 + local.get $8 + i32.load offset=4 local.set $3 local.get $0 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.const 2 i32.shl local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $7 i32.store offset=4 - loop $for-loop|019 - local.get $3 - local.get $12 + loop $for-loop|015 + local.get $5 + local.get $6 i32.gt_s if - local.get $4 - local.get $12 + local.get $3 + local.get $6 i32.const 2 i32.shl local.tee $1 @@ -52644,54 +52699,54 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $7 i32.add local.get $0 - local.get $12 + local.get $6 local.get $8 i32.const 3760 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $12 + local.get $6 i32.const 1 i32.add - local.set $12 - br $for-loop|019 + local.set $6 + br $for-loop|015 end end + local.get $10 local.get $7 - local.get $5 i32.store + local.get $10 local.get $7 - local.get $5 call $~lib/rt/itcms/__link + local.get $10 local.get $7 - local.get $5 i32.store offset=4 - local.get $7 + local.get $10 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 $6 - local.get $7 + local.get $4 + local.get $10 i32.store offset=8 - local.get $7 + local.get $10 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne br_if $folding-inner18 - local.get $7 + local.get $10 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 4 i32.ne br_if $folding-inner19 - local.get $7 + local.get $10 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 9 @@ -52702,7 +52757,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $12 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52710,7 +52765,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52736,51 +52791,51 @@ i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 3792 i32.store offset=4 - local.get $6 + local.get $4 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-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $8 - i32.load offset=4 - local.set $4 - local.get $8 i32.load offset=8 i32.const 2 i32.shr_u + local.set $5 + local.get $8 + i32.load offset=4 local.set $3 local.get $0 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.const 2 i32.shl local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $7 i32.store offset=4 - loop $for-loop|022 - local.get $3 - local.get $12 + loop $for-loop|017 + local.get $5 + local.get $6 i32.gt_s if - local.get $4 - local.get $12 + local.get $3 + local.get $6 i32.const 2 i32.shl local.tee $1 @@ -52790,54 +52845,54 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $7 i32.add local.get $0 - local.get $12 + local.get $6 local.get $8 i32.const 3792 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $12 + local.get $6 i32.const 1 i32.add - local.set $12 - br $for-loop|022 + local.set $6 + br $for-loop|017 end end + local.get $10 local.get $7 - local.get $5 i32.store + local.get $10 local.get $7 - local.get $5 call $~lib/rt/itcms/__link + local.get $10 local.get $7 - local.get $5 i32.store offset=4 - local.get $7 + local.get $10 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 $6 - local.get $7 + local.get $4 + local.get $10 i32.store offset=8 - local.get $7 + local.get $10 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne br_if $folding-inner18 - local.get $7 + local.get $10 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 4 i32.ne br_if $folding-inner19 - local.get $7 + local.get $10 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 9 @@ -52856,7 +52911,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52867,44 +52922,44 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $6 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $6 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 3824 i32.store offset=4 - local.get $3 + local.get $5 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-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $5 - i32.load offset=4 - local.set $2 - local.get $5 + local.get $6 i32.load offset=8 i32.const 3 i32.shr_u - local.set $4 + local.set $3 + local.get $6 + i32.load offset=4 + local.set $2 local.get $0 i32.const 12 i32.const 10 @@ -52912,16 +52967,16 @@ local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 3 i32.shl local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $4 i32.store offset=4 - loop $for-loop|024 - local.get $4 + loop $for-loop|019 + local.get $3 local.get $7 i32.gt_s if @@ -52936,11 +52991,11 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $6 + local.get $4 i32.add local.get $9 local.get $7 - local.get $5 + local.get $6 i32.const 3824 i32.load call_indirect $0 (type $i64_i32_i32_=>_i64) @@ -52949,17 +53004,17 @@ i32.const 1 i32.add local.set $7 - br $for-loop|024 + br $for-loop|019 end end local.get $8 - local.get $6 + local.get $4 i32.store local.get $8 - local.get $6 + local.get $4 call $~lib/rt/itcms/__link local.get $8 - local.get $6 + local.get $4 i32.store offset=4 local.get $8 local.get $1 @@ -52968,7 +53023,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 local.get $8 i32.store offset=8 local.get $8 @@ -53002,7 +53057,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53013,44 +53068,44 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $5 + local.get $6 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $5 + local.get $6 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 3856 i32.store offset=4 - local.get $3 + local.get $5 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-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $5 - i32.load offset=4 - local.set $2 - local.get $5 + local.get $6 i32.load offset=8 i32.const 3 i32.shr_u - local.set $4 + local.set $3 + local.get $6 + i32.load offset=4 + local.set $2 local.get $0 i32.const 12 i32.const 11 @@ -53058,16 +53113,16 @@ local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 3 i32.shl local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $4 i32.store offset=4 - loop $for-loop|026 - local.get $4 + loop $for-loop|022 + local.get $3 local.get $7 i32.gt_s if @@ -53082,11 +53137,11 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $6 + local.get $4 i32.add local.get $9 local.get $7 - local.get $5 + local.get $6 i32.const 3856 i32.load call_indirect $0 (type $i64_i32_i32_=>_i64) @@ -53095,17 +53150,17 @@ i32.const 1 i32.add local.set $7 - br $for-loop|026 + br $for-loop|022 end end local.get $8 - local.get $6 + local.get $4 i32.store local.get $8 - local.get $6 + local.get $4 call $~lib/rt/itcms/__link local.get $8 - local.get $6 + local.get $4 i32.store offset=4 local.get $8 local.get $1 @@ -53114,7 +53169,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 local.get $8 i32.store offset=8 local.get $8 @@ -53148,7 +53203,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53159,44 +53214,44 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $5 + local.get $6 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $5 + local.get $6 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 3888 i32.store offset=4 - local.get $3 + local.get $5 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-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $5 - i32.load offset=4 - local.set $2 - local.get $5 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 + local.set $3 + local.get $6 + i32.load offset=4 + local.set $2 local.get $0 i32.const 12 i32.const 12 @@ -53204,16 +53259,16 @@ local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 2 i32.shl local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $4 i32.store offset=4 - loop $for-loop|028 - local.get $4 + loop $for-loop|024 + local.get $3 local.get $7 i32.gt_s if @@ -53224,15 +53279,15 @@ local.tee $0 i32.add f32.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $6 + local.get $4 i32.add - local.get $10 + local.get $11 local.get $7 - local.get $5 + local.get $6 i32.const 3888 i32.load call_indirect $0 (type $f32_i32_i32_=>_f32) @@ -53241,17 +53296,17 @@ i32.const 1 i32.add local.set $7 - br $for-loop|028 + br $for-loop|024 end end local.get $8 - local.get $6 + local.get $4 i32.store local.get $8 - local.get $6 + local.get $4 call $~lib/rt/itcms/__link local.get $8 - local.get $6 + local.get $4 i32.store offset=4 local.get $8 local.get $1 @@ -53260,7 +53315,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 local.get $8 i32.store offset=8 local.get $8 @@ -53294,7 +53349,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53305,44 +53360,44 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $5 + local.get $6 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $5 + local.get $6 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 3920 i32.store offset=4 - local.get $3 + local.get $5 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-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $5 - i32.load offset=4 - local.set $2 - local.get $5 + local.get $6 i32.load offset=8 i32.const 3 i32.shr_u - local.set $4 + local.set $3 + local.get $6 + i32.load offset=4 + local.set $2 local.get $0 i32.const 12 i32.const 13 @@ -53350,16 +53405,16 @@ local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 3 i32.shl local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $4 i32.store offset=4 - loop $for-loop|030 - local.get $4 + loop $for-loop|026 + local.get $3 local.get $7 i32.gt_s if @@ -53370,15 +53425,15 @@ local.tee $0 i32.add f64.load - local.set $11 + local.set $12 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $6 + local.get $4 i32.add - local.get $11 + local.get $12 local.get $7 - local.get $5 + local.get $6 i32.const 3920 i32.load call_indirect $0 (type $f64_i32_i32_=>_f64) @@ -53387,17 +53442,17 @@ i32.const 1 i32.add local.set $7 - br $for-loop|030 + br $for-loop|026 end end local.get $8 - local.get $6 + local.get $4 i32.store local.get $8 - local.get $6 + local.get $4 call $~lib/rt/itcms/__link local.get $8 - local.get $6 + local.get $4 i32.store offset=4 local.get $8 local.get $1 @@ -53406,7 +53461,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 local.get $8 i32.store offset=8 local.get $8 @@ -53449,7 +53504,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53457,17 +53512,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 6 call $~lib/typedarray/Int8Array#__set @@ -53475,21 +53530,21 @@ i32.const 4304 i32.store offset=4 i32.const 0 - local.set $5 + local.set $4 block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $3 + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 local.set $1 - loop $for-loop|053 + loop $for-loop|045 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.add i32.load8_s local.set $0 @@ -53497,18 +53552,18 @@ global.set $~argumentsLength i32.const 1 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 4304 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|053 + local.set $4 + br $for-loop|045 end end i32.const 0 @@ -53519,21 +53574,21 @@ i32.const 4336 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.055 (result i32) - local.get $3 + local.set $4 + block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.047 (result i32) + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 local.set $1 - loop $for-loop|056 + loop $for-loop|049 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.add i32.load8_s local.set $0 @@ -53541,18 +53596,18 @@ global.set $~argumentsLength i32.const 1 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 4336 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.055 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.047 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|056 + local.set $4 + br $for-loop|049 end end i32.const 0 @@ -53569,7 +53624,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53577,17 +53632,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8Array#__set @@ -53595,21 +53650,21 @@ i32.const 4368 i32.store offset=4 i32.const 0 - local.set $5 + local.set $4 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $3 + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 local.set $1 - loop $for-loop|058 + loop $for-loop|051 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.add i32.load8_u local.set $0 @@ -53617,18 +53672,18 @@ global.set $~argumentsLength i32.const 1 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 4368 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|058 + local.set $4 + br $for-loop|051 end end i32.const 0 @@ -53639,21 +53694,21 @@ i32.const 4400 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.060 (result i32) - local.get $3 + local.set $4 + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.053 (result i32) + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 local.set $1 - loop $for-loop|061 + loop $for-loop|054 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.add i32.load8_u local.set $0 @@ -53661,18 +53716,18 @@ global.set $~argumentsLength i32.const 1 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 4400 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.060 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.053 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|061 + local.set $4 + br $for-loop|054 end end i32.const 0 @@ -53689,7 +53744,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53697,17 +53752,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $5 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $5 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#__set @@ -53715,21 +53770,21 @@ i32.const 4432 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.064 (result i32) - local.get $3 + local.set $4 + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.057 (result i32) + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 local.set $1 - loop $for-loop|065 + loop $for-loop|058 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.add i32.load8_u local.set $0 @@ -53737,18 +53792,18 @@ global.set $~argumentsLength i32.const 1 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 4432 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.064 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.057 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|065 + local.set $4 + br $for-loop|058 end end i32.const 0 @@ -53759,21 +53814,21 @@ i32.const 4464 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.067 (result i32) - local.get $3 + local.set $4 + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.060 (result i32) + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 local.set $1 - loop $for-loop|068 + loop $for-loop|061 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.add i32.load8_u local.set $0 @@ -53781,18 +53836,18 @@ global.set $~argumentsLength i32.const 1 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 4464 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.067 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.060 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|068 + local.set $4 + br $for-loop|061 end end i32.const 0 @@ -53809,7 +53864,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53817,17 +53872,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 6 call $~lib/typedarray/Int16Array#__set @@ -53835,23 +53890,23 @@ i32.const 4496 i32.store offset=4 i32.const 0 - local.set $5 + local.set $4 block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $3 + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 - loop $for-loop|070 + loop $for-loop|063 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.const 1 i32.shl i32.add @@ -53861,18 +53916,18 @@ global.set $~argumentsLength i32.const 1 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 4496 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|070 + local.set $4 + br $for-loop|063 end end i32.const 0 @@ -53883,23 +53938,23 @@ i32.const 4528 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.072 (result i32) - local.get $3 + local.set $4 + block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.065 (result i32) + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 - loop $for-loop|073 + loop $for-loop|066 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.const 1 i32.shl i32.add @@ -53909,18 +53964,18 @@ global.set $~argumentsLength i32.const 1 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 4528 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.072 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.065 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|073 + local.set $4 + br $for-loop|066 end end i32.const 0 @@ -53937,7 +53992,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53945,17 +54000,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 6 call $~lib/typedarray/Uint16Array#__set @@ -53963,23 +54018,23 @@ i32.const 4560 i32.store offset=4 i32.const 0 - local.set $5 + local.set $4 block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $3 + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 - loop $for-loop|075 + loop $for-loop|068 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.const 1 i32.shl i32.add @@ -53989,18 +54044,18 @@ global.set $~argumentsLength i32.const 1 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 4560 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|075 + local.set $4 + br $for-loop|068 end end i32.const 0 @@ -54011,23 +54066,23 @@ i32.const 4592 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.077 (result i32) - local.get $3 + local.set $4 + block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.070 (result i32) + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 - loop $for-loop|078 + loop $for-loop|071 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.const 1 i32.shl i32.add @@ -54037,18 +54092,18 @@ global.set $~argumentsLength i32.const 1 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 4592 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.077 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.070 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|078 + local.set $4 + br $for-loop|071 end end i32.const 0 @@ -54065,7 +54120,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54073,17 +54128,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 6 call $~lib/typedarray/Int32Array#__set @@ -54091,23 +54146,23 @@ i32.const 4624 i32.store offset=4 i32.const 0 - local.set $5 + local.set $4 block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $3 + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 - loop $for-loop|080 + loop $for-loop|073 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -54117,18 +54172,18 @@ global.set $~argumentsLength i32.const 1 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 4624 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|080 + local.set $4 + br $for-loop|073 end end i32.const 0 @@ -54139,23 +54194,23 @@ i32.const 4656 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.082 (result i32) - local.get $3 + local.set $4 + block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.075 (result i32) + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 - loop $for-loop|083 + loop $for-loop|076 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -54165,18 +54220,18 @@ global.set $~argumentsLength i32.const 1 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 4656 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.082 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.075 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|083 + local.set $4 + br $for-loop|076 end end i32.const 0 @@ -54193,7 +54248,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54201,17 +54256,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 6 call $~lib/typedarray/Uint32Array#__set @@ -54219,23 +54274,23 @@ i32.const 4688 i32.store offset=4 i32.const 0 - local.set $5 + local.set $4 block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $3 + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 - loop $for-loop|085 + loop $for-loop|078 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -54245,18 +54300,18 @@ global.set $~argumentsLength i32.const 1 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 4688 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|085 + local.set $4 + br $for-loop|078 end end i32.const 0 @@ -54267,23 +54322,23 @@ i32.const 4720 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.087 (result i32) - local.get $3 + local.set $4 + block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.080 (result i32) + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 - loop $for-loop|088 + loop $for-loop|081 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -54293,18 +54348,18 @@ global.set $~argumentsLength i32.const 1 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 4720 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.087 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.080 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|088 + local.set $4 + br $for-loop|081 end end i32.const 0 @@ -54321,7 +54376,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54329,17 +54384,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 6 call $~lib/typedarray/Int64Array#__set @@ -54347,23 +54402,23 @@ i32.const 4752 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|090 + loop $for-loop|083 local.get $0 - local.get $3 + local.get $5 i32.gt_s if local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl i32.add @@ -54373,18 +54428,18 @@ global.set $~argumentsLength i32.const 1 local.get $9 + local.get $5 local.get $3 - 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 $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|090 + local.set $5 + br $for-loop|083 end end i32.const 0 @@ -54395,23 +54450,23 @@ i32.const 4784 i32.store offset=4 i32.const 0 - local.set $3 - block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.092 (result i32) - local.get $4 + local.set $5 + block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.085 (result i32) + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|093 + loop $for-loop|086 local.get $0 - local.get $3 + local.get $5 i32.gt_s if local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl i32.add @@ -54421,18 +54476,18 @@ global.set $~argumentsLength i32.const 1 local.get $9 + local.get $5 local.get $3 - 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.092 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.085 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|093 + local.set $5 + br $for-loop|086 end end i32.const 0 @@ -54449,7 +54504,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54457,17 +54512,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 6 call $~lib/typedarray/Uint64Array#__set @@ -54475,23 +54530,23 @@ i32.const 4816 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|095 + loop $for-loop|088 local.get $0 - local.get $3 + local.get $5 i32.gt_s if local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl i32.add @@ -54501,18 +54556,18 @@ global.set $~argumentsLength i32.const 1 local.get $9 + local.get $5 local.get $3 - 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 $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|095 + local.set $5 + br $for-loop|088 end end i32.const 0 @@ -54523,23 +54578,23 @@ i32.const 4848 i32.store offset=4 i32.const 0 - local.set $3 - block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.097 (result i32) - local.get $4 + local.set $5 + block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.090 (result i32) + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|098 + loop $for-loop|091 local.get $0 - local.get $3 + local.get $5 i32.gt_s if local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl i32.add @@ -54549,18 +54604,18 @@ global.set $~argumentsLength i32.const 1 local.get $9 + local.get $5 local.get $3 - 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.097 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.090 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|098 + local.set $5 + br $for-loop|091 end end i32.const 0 @@ -54577,7 +54632,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54585,17 +54640,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 1 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 2 f32.const 6 call $~lib/typedarray/Float32Array#__set @@ -54603,44 +54658,44 @@ i32.const 4880 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 - loop $for-loop|0100 + loop $for-loop|093 local.get $0 - local.get $3 + local.get $5 i32.gt_s if local.get $1 - local.get $3 + local.get $5 i32.const 2 i32.shl i32.add f32.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $10 + local.get $11 + local.get $5 local.get $3 - 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 $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|0100 + local.set $5 + br $for-loop|093 end end i32.const 0 @@ -54651,44 +54706,44 @@ i32.const 4912 i32.store offset=4 i32.const 0 - local.set $3 - block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0102 (result i32) - local.get $4 + local.set $5 + block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.095 (result i32) + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 - loop $for-loop|0103 + loop $for-loop|096 local.get $0 - local.get $3 + local.get $5 i32.gt_s if local.get $1 - local.get $3 + local.get $5 i32.const 2 i32.shl i32.add f32.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $10 + local.get $11 + local.get $5 local.get $3 - 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.0102 + br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.095 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|0103 + local.set $5 + br $for-loop|096 end end i32.const 0 @@ -54705,7 +54760,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54713,17 +54768,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 1 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 2 f64.const 6 call $~lib/typedarray/Float64Array#__set @@ -54731,44 +54786,44 @@ i32.const 4944 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|0105 + loop $for-loop|098 local.get $0 - local.get $3 + local.get $5 i32.gt_s if local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl i32.add f64.load - local.set $11 + local.set $12 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $11 + local.get $12 + local.get $5 local.get $3 - 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 $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|0105 + local.set $5 + br $for-loop|098 end end i32.const 0 @@ -54779,44 +54834,44 @@ i32.const 4976 i32.store offset=4 i32.const 0 - local.set $3 - block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0107 (result i32) - local.get $4 + local.set $5 + block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0100 (result i32) + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|0108 + loop $for-loop|0101 local.get $0 - local.get $3 + local.get $5 i32.gt_s if local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl i32.add f64.load - local.set $11 + local.set $12 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $11 + local.get $12 + local.get $5 local.get $3 - 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.0107 + br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0100 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|0108 + local.set $5 + br $for-loop|0101 end end i32.const 0 @@ -54833,7 +54888,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54841,17 +54896,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set @@ -54860,26 +54915,26 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $3 + local.get $5 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $5 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - loop $for-loop|0110 + loop $for-loop|0103 local.get $1 local.get $2 i32.lt_s if local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $5 i32.const 5008 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54888,7 +54943,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0110 + br $for-loop|0103 end end i32.const -1 @@ -54903,35 +54958,35 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $3 + local.get $5 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $5 i32.load offset=8 local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0112 - loop $for-loop|0113 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0105 + loop $for-loop|0106 local.get $1 local.get $2 i32.lt_s if local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $5 i32.const 5040 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0112 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0105 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0113 + br $for-loop|0106 end end i32.const -1 @@ -54952,7 +55007,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54960,17 +55015,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set @@ -54979,26 +55034,26 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $3 + local.get $5 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $5 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - loop $for-loop|0115 + loop $for-loop|0108 local.get $1 local.get $2 i32.lt_s if local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $5 i32.const 5072 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55007,7 +55062,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0115 + br $for-loop|0108 end end i32.const -1 @@ -55022,35 +55077,35 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $3 + local.get $5 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $5 i32.load offset=8 local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0117 - loop $for-loop|0118 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0110 + loop $for-loop|0111 local.get $1 local.get $2 i32.lt_s if local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $5 i32.const 5104 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0117 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0110 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0118 + br $for-loop|0111 end end i32.const -1 @@ -55071,7 +55126,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55079,17 +55134,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set @@ -55098,35 +55153,35 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $3 + local.get $5 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $5 i32.load offset=8 local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0121 - loop $for-loop|0122 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0114 + loop $for-loop|0115 local.get $1 local.get $2 i32.lt_s if local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $5 i32.const 5136 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0121 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0114 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0122 + br $for-loop|0115 end end i32.const -1 @@ -55141,35 +55196,35 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $3 + local.get $5 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $5 i32.load offset=8 local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0124 - loop $for-loop|0125 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0117 + loop $for-loop|0118 local.get $1 local.get $2 i32.lt_s if local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $5 i32.const 5168 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0124 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0117 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0125 + br $for-loop|0118 end end i32.const -1 @@ -55190,7 +55245,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55198,17 +55253,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set @@ -55217,21 +55272,21 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $3 + local.get $5 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - loop $for-loop|0127 + loop $for-loop|0120 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $1 i32.const 1 i32.shl @@ -55240,7 +55295,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $5 i32.const 5200 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55249,7 +55304,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0127 + br $for-loop|0120 end end i32.const -1 @@ -55264,21 +55319,21 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $3 + local.get $5 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0129 - loop $for-loop|0130 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0122 + loop $for-loop|0123 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $1 i32.const 1 i32.shl @@ -55287,16 +55342,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $5 i32.const 5232 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0129 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0122 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0130 + br $for-loop|0123 end end i32.const -1 @@ -55317,7 +55372,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55325,17 +55380,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set @@ -55344,21 +55399,21 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $3 + local.get $5 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - loop $for-loop|0132 + loop $for-loop|0125 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $1 i32.const 1 i32.shl @@ -55367,7 +55422,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $5 i32.const 5264 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55376,7 +55431,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0132 + br $for-loop|0125 end end i32.const -1 @@ -55391,21 +55446,21 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $3 + local.get $5 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0134 - loop $for-loop|0135 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0127 + loop $for-loop|0128 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $1 i32.const 1 i32.shl @@ -55414,16 +55469,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $5 i32.const 5296 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0134 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0127 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0135 + br $for-loop|0128 end end i32.const -1 @@ -55444,7 +55499,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55452,17 +55507,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set @@ -55471,21 +55526,21 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $3 + local.get $5 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - loop $for-loop|0137 + loop $for-loop|0130 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -55494,7 +55549,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $5 i32.const 5328 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55503,7 +55558,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0137 + br $for-loop|0130 end end i32.const -1 @@ -55518,21 +55573,21 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $3 + local.get $5 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0139 - loop $for-loop|0140 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0132 + loop $for-loop|0133 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -55541,16 +55596,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $5 i32.const 5360 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0139 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0132 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0140 + br $for-loop|0133 end end i32.const -1 @@ -55571,7 +55626,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55579,17 +55634,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set @@ -55598,21 +55653,21 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $3 + local.get $5 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - loop $for-loop|0142 + loop $for-loop|0135 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -55621,7 +55676,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $5 i32.const 5392 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55630,7 +55685,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0142 + br $for-loop|0135 end end i32.const -1 @@ -55645,21 +55700,21 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $3 + local.get $5 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0144 - loop $for-loop|0145 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0137 + loop $for-loop|0138 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -55668,16 +55723,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $5 i32.const 5424 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0144 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0137 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0145 + br $for-loop|0138 end end i32.const -1 @@ -55698,7 +55753,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55706,17 +55761,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set @@ -55725,16 +55780,16 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - loop $for-loop|0147 + loop $for-loop|0140 local.get $0 local.get $1 i32.gt_s @@ -55748,7 +55803,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5456 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -55757,7 +55812,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0147 + br $for-loop|0140 end end i32.const -1 @@ -55772,16 +55827,16 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0149 - loop $for-loop|0150 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0142 + loop $for-loop|0143 local.get $0 local.get $1 i32.gt_s @@ -55795,16 +55850,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5488 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0149 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0142 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0150 + br $for-loop|0143 end end i32.const -1 @@ -55825,7 +55880,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55833,17 +55888,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set @@ -55852,16 +55907,16 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - loop $for-loop|0152 + loop $for-loop|0145 local.get $0 local.get $1 i32.gt_s @@ -55875,7 +55930,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5520 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -55884,7 +55939,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0152 + br $for-loop|0145 end end i32.const -1 @@ -55899,16 +55954,16 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0154 - loop $for-loop|0155 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0147 + loop $for-loop|0148 local.get $0 local.get $1 i32.gt_s @@ -55922,16 +55977,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5552 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0154 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0147 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0155 + br $for-loop|0148 end end i32.const -1 @@ -55952,7 +56007,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55960,17 +56015,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set @@ -55979,16 +56034,16 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - loop $for-loop|0157 + loop $for-loop|0150 local.get $0 local.get $1 i32.gt_s @@ -56002,7 +56057,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5584 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) @@ -56011,7 +56066,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0157 + br $for-loop|0150 end end i32.const -1 @@ -56026,16 +56081,16 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0159 - loop $for-loop|0160 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0152 + loop $for-loop|0153 local.get $0 local.get $1 i32.gt_s @@ -56049,16 +56104,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5616 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0159 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0152 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0160 + br $for-loop|0153 end end i32.const -1 @@ -56079,7 +56134,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56087,17 +56142,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set @@ -56106,16 +56161,16 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - loop $for-loop|0162 + loop $for-loop|0155 local.get $0 local.get $1 i32.gt_s @@ -56129,7 +56184,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5648 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) @@ -56138,7 +56193,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0162 + br $for-loop|0155 end end i32.const -1 @@ -56153,16 +56208,16 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0164 - loop $for-loop|0165 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0157 + loop $for-loop|0158 local.get $0 local.get $1 i32.gt_s @@ -56176,16 +56231,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5680 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0164 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0157 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0165 + br $for-loop|0158 end end i32.const -1 @@ -56206,7 +56261,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56214,33 +56269,33 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 5712 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.sub local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - loop $for-loop|0167 + loop $for-loop|0160 local.get $1 i32.const 0 i32.ge_s @@ -56252,7 +56307,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5712 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56261,7 +56316,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|0167 + br $for-loop|0160 end end i32.const -1 @@ -56274,16 +56329,16 @@ global.get $~lib/memory/__stack_pointer i32.const 5744 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.sub local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0169 - loop $for-loop|0170 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0162 + loop $for-loop|0163 local.get $1 i32.const 0 i32.ge_s @@ -56295,16 +56350,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5744 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0169 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0162 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|0170 + br $for-loop|0163 end end i32.const -1 @@ -56325,7 +56380,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56333,33 +56388,33 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 5776 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.sub local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - loop $for-loop|0172 + loop $for-loop|0165 local.get $1 i32.const 0 i32.ge_s @@ -56371,7 +56426,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5776 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56380,7 +56435,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|0172 + br $for-loop|0165 end end i32.const -1 @@ -56393,16 +56448,16 @@ global.get $~lib/memory/__stack_pointer i32.const 5808 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.sub local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0174 - loop $for-loop|0175 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0167 + loop $for-loop|0168 local.get $1 i32.const 0 i32.ge_s @@ -56414,16 +56469,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5808 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0174 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0167 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|0175 + br $for-loop|0168 end end i32.const -1 @@ -56444,7 +56499,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56452,33 +56507,33 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer i32.const 5840 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.sub local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0178 - loop $for-loop|0179 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0171 + loop $for-loop|0172 local.get $1 i32.const 0 i32.ge_s @@ -56490,16 +56545,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5840 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0178 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0171 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|0179 + br $for-loop|0172 end end i32.const -1 @@ -56512,16 +56567,16 @@ global.get $~lib/memory/__stack_pointer i32.const 5872 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.sub local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0181 - loop $for-loop|0182 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0174 + loop $for-loop|0175 local.get $1 i32.const 0 i32.ge_s @@ -56533,16 +56588,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5872 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0181 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0174 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|0182 + br $for-loop|0175 end end i32.const -1 @@ -56563,7 +56618,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56571,27 +56626,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 5904 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -56599,7 +56654,7 @@ i32.sub local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - loop $for-loop|0184 + loop $for-loop|0177 local.get $1 i32.const 0 i32.ge_s @@ -56613,7 +56668,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5904 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56622,7 +56677,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|0184 + br $for-loop|0177 end end i32.const -1 @@ -56635,18 +56690,18 @@ global.get $~lib/memory/__stack_pointer i32.const 5936 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u i32.const 1 i32.sub local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0186 - loop $for-loop|0187 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0179 + loop $for-loop|0180 local.get $1 i32.const 0 i32.ge_s @@ -56660,16 +56715,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5936 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0186 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0179 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|0187 + br $for-loop|0180 end end i32.const -1 @@ -56690,7 +56745,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56698,27 +56753,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer i32.const 5968 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -56726,7 +56781,7 @@ i32.sub local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - loop $for-loop|0189 + loop $for-loop|0182 local.get $1 i32.const 0 i32.ge_s @@ -56740,7 +56795,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5968 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56749,7 +56804,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|0189 + br $for-loop|0182 end end i32.const -1 @@ -56762,18 +56817,18 @@ global.get $~lib/memory/__stack_pointer i32.const 6000 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u i32.const 1 i32.sub local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0191 - loop $for-loop|0192 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0184 + loop $for-loop|0185 local.get $1 i32.const 0 i32.ge_s @@ -56787,16 +56842,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 6000 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0191 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0184 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|0192 + br $for-loop|0185 end end i32.const -1 @@ -56817,7 +56872,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56825,27 +56880,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer i32.const 6032 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -56853,7 +56908,7 @@ i32.sub local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - loop $for-loop|0194 + loop $for-loop|0187 local.get $1 i32.const 0 i32.ge_s @@ -56867,7 +56922,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 6032 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56876,7 +56931,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|0194 + br $for-loop|0187 end end i32.const -1 @@ -56889,18 +56944,18 @@ global.get $~lib/memory/__stack_pointer i32.const 6064 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0196 - loop $for-loop|0197 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0189 + loop $for-loop|0190 local.get $1 i32.const 0 i32.ge_s @@ -56914,16 +56969,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 6064 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0196 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0189 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|0197 + br $for-loop|0190 end end i32.const -1 @@ -56944,7 +56999,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56952,27 +57007,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 6096 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -56980,7 +57035,7 @@ i32.sub local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - loop $for-loop|0199 + loop $for-loop|0192 local.get $1 i32.const 0 i32.ge_s @@ -56994,7 +57049,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 6096 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -57003,7 +57058,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|0199 + br $for-loop|0192 end end i32.const -1 @@ -57016,18 +57071,18 @@ global.get $~lib/memory/__stack_pointer i32.const 6128 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0201 - loop $for-loop|0202 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0194 + loop $for-loop|0195 local.get $1 i32.const 0 i32.ge_s @@ -57041,16 +57096,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 6128 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0201 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0194 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|0202 + br $for-loop|0195 end end i32.const -1 @@ -57071,7 +57126,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57107,7 +57162,7 @@ i32.sub local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - loop $for-loop|0204 + loop $for-loop|0197 local.get $1 i32.const 0 i32.ge_s @@ -57130,7 +57185,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|0204 + br $for-loop|0197 end end i32.const -1 @@ -57153,8 +57208,8 @@ i32.const 1 i32.sub local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0206 - loop $for-loop|0207 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0199 + loop $for-loop|0200 local.get $1 i32.const 0 i32.ge_s @@ -57172,12 +57227,12 @@ i32.const 6192 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0206 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0199 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|0207 + br $for-loop|0200 end end i32.const -1 @@ -57198,7 +57253,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57234,7 +57289,7 @@ i32.sub local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - loop $for-loop|0209 + loop $for-loop|0202 local.get $1 i32.const 0 i32.ge_s @@ -57257,7 +57312,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|0209 + br $for-loop|0202 end end i32.const -1 @@ -57280,8 +57335,8 @@ i32.const 1 i32.sub local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0211 - loop $for-loop|0212 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0204 + loop $for-loop|0205 local.get $1 i32.const 0 i32.ge_s @@ -57299,12 +57354,12 @@ i32.const 6256 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0211 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0204 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|0212 + br $for-loop|0205 end end i32.const -1 @@ -57325,7 +57380,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57361,7 +57416,7 @@ i32.sub local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - loop $for-loop|0214 + loop $for-loop|0207 local.get $1 i32.const 0 i32.ge_s @@ -57384,7 +57439,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|0214 + br $for-loop|0207 end end i32.const -1 @@ -57407,8 +57462,8 @@ i32.const 1 i32.sub local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0216 - loop $for-loop|0217 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0209 + loop $for-loop|0210 local.get $1 i32.const 0 i32.ge_s @@ -57426,12 +57481,12 @@ i32.const 6320 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0216 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0209 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|0217 + br $for-loop|0210 end end i32.const -1 @@ -57452,7 +57507,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57488,7 +57543,7 @@ i32.sub local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - loop $for-loop|0219 + loop $for-loop|0212 local.get $1 i32.const 0 i32.ge_s @@ -57511,7 +57566,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|0219 + br $for-loop|0212 end end i32.const -1 @@ -57534,8 +57589,8 @@ i32.const 1 i32.sub local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0221 - loop $for-loop|0222 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0214 + loop $for-loop|0215 local.get $1 i32.const 0 i32.ge_s @@ -57553,12 +57608,12 @@ i32.const 6384 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0221 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0214 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|0222 + br $for-loop|0215 end end i32.const -1 @@ -57579,7 +57634,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57587,17 +57642,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 6 call $~lib/typedarray/Int8Array#__set @@ -57605,21 +57660,21 @@ i32.const 6416 i32.store offset=4 i32.const 0 - local.set $5 + local.set $4 block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $3 + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 local.set $1 - loop $for-loop|0224 + loop $for-loop|0217 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.add i32.load8_s local.set $0 @@ -57627,19 +57682,19 @@ global.set $~argumentsLength i32.const 0 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 6416 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|0224 + local.set $4 + br $for-loop|0217 end end i32.const 1 @@ -57650,21 +57705,21 @@ i32.const 6448 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0226 (result i32) - local.get $3 + local.set $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0219 (result i32) + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 local.set $1 - loop $for-loop|0227 + loop $for-loop|0220 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.add i32.load8_s local.set $0 @@ -57672,19 +57727,19 @@ global.set $~argumentsLength i32.const 0 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 6448 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0226 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0219 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|0227 + local.set $4 + br $for-loop|0220 end end i32.const 1 @@ -57701,7 +57756,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57709,17 +57764,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8Array#__set @@ -57727,21 +57782,21 @@ i32.const 6480 i32.store offset=4 i32.const 0 - local.set $5 + local.set $4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $3 + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 local.set $1 - loop $for-loop|0229 + loop $for-loop|0222 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.add i32.load8_u local.set $0 @@ -57749,19 +57804,19 @@ global.set $~argumentsLength i32.const 0 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 6480 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|0229 + local.set $4 + br $for-loop|0222 end end i32.const 1 @@ -57772,21 +57827,21 @@ i32.const 6512 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0231 (result i32) - local.get $3 + local.set $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0224 (result i32) + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 local.set $1 - loop $for-loop|0232 + loop $for-loop|0225 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.add i32.load8_u local.set $0 @@ -57794,19 +57849,19 @@ global.set $~argumentsLength i32.const 0 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 6512 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0231 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0224 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|0232 + local.set $4 + br $for-loop|0225 end end i32.const 1 @@ -57823,7 +57878,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57831,17 +57886,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $5 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $5 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#__set @@ -57849,21 +57904,21 @@ i32.const 6544 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0235 (result i32) - local.get $3 + local.set $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0228 (result i32) + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 local.set $1 - loop $for-loop|0236 + loop $for-loop|0229 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.add i32.load8_u local.set $0 @@ -57871,19 +57926,19 @@ global.set $~argumentsLength i32.const 0 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 6544 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0235 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0228 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|0236 + local.set $4 + br $for-loop|0229 end end i32.const 1 @@ -57894,21 +57949,21 @@ i32.const 6576 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0238 (result i32) - local.get $3 + local.set $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0231 (result i32) + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 local.set $1 - loop $for-loop|0239 + loop $for-loop|0232 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.add i32.load8_u local.set $0 @@ -57916,19 +57971,19 @@ global.set $~argumentsLength i32.const 0 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 6576 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0238 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0231 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|0239 + local.set $4 + br $for-loop|0232 end end i32.const 1 @@ -57945,7 +58000,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57953,17 +58008,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 6 call $~lib/typedarray/Int16Array#__set @@ -57971,23 +58026,23 @@ i32.const 6608 i32.store offset=4 i32.const 0 - local.set $5 + local.set $4 block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $3 + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 - loop $for-loop|0241 + loop $for-loop|0234 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.const 1 i32.shl i32.add @@ -57997,19 +58052,19 @@ global.set $~argumentsLength i32.const 0 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 6608 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|0241 + local.set $4 + br $for-loop|0234 end end i32.const 1 @@ -58020,23 +58075,23 @@ i32.const 6640 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0243 (result i32) - local.get $3 + local.set $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0236 (result i32) + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 - loop $for-loop|0244 + loop $for-loop|0237 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.const 1 i32.shl i32.add @@ -58046,19 +58101,19 @@ global.set $~argumentsLength i32.const 0 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 6640 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0243 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0236 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|0244 + local.set $4 + br $for-loop|0237 end end i32.const 1 @@ -58075,7 +58130,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58083,17 +58138,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 6 call $~lib/typedarray/Uint16Array#__set @@ -58101,23 +58156,23 @@ i32.const 6672 i32.store offset=4 i32.const 0 - local.set $5 + local.set $4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $3 + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 - loop $for-loop|0246 + loop $for-loop|0239 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.const 1 i32.shl i32.add @@ -58127,19 +58182,19 @@ global.set $~argumentsLength i32.const 0 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 6672 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|0246 + local.set $4 + br $for-loop|0239 end end i32.const 1 @@ -58150,23 +58205,23 @@ i32.const 6704 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0248 (result i32) - local.get $3 + local.set $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0241 (result i32) + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 - loop $for-loop|0249 + loop $for-loop|0242 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.const 1 i32.shl i32.add @@ -58176,19 +58231,19 @@ global.set $~argumentsLength i32.const 0 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 6704 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0248 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0241 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|0249 + local.set $4 + br $for-loop|0242 end end i32.const 1 @@ -58205,7 +58260,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58213,17 +58268,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 6 call $~lib/typedarray/Int32Array#__set @@ -58231,23 +58286,23 @@ i32.const 6736 i32.store offset=4 i32.const 0 - local.set $5 + local.set $4 block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $3 + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 - loop $for-loop|0251 + loop $for-loop|0244 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -58257,19 +58312,19 @@ global.set $~argumentsLength i32.const 0 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 6736 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|0251 + local.set $4 + br $for-loop|0244 end end i32.const 1 @@ -58280,23 +58335,23 @@ i32.const 6768 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0253 (result i32) - local.get $3 + local.set $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0246 (result i32) + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 - loop $for-loop|0254 + loop $for-loop|0247 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -58306,19 +58361,19 @@ global.set $~argumentsLength i32.const 0 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 6768 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0253 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0246 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|0254 + local.set $4 + br $for-loop|0247 end end i32.const 1 @@ -58335,7 +58390,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58343,17 +58398,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 0 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $5 i32.const 1 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $5 i32.const 2 i32.const 6 call $~lib/typedarray/Uint32Array#__set @@ -58361,23 +58416,23 @@ i32.const 6800 i32.store offset=4 i32.const 0 - local.set $5 + local.set $4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $3 + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 - loop $for-loop|0256 + loop $for-loop|0249 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -58387,19 +58442,19 @@ global.set $~argumentsLength i32.const 0 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 6800 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|0256 + local.set $4 + br $for-loop|0249 end end i32.const 1 @@ -58410,23 +58465,23 @@ i32.const 6832 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0258 (result i32) - local.get $3 + local.set $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0251 (result i32) + local.get $5 i32.load offset=4 local.set $2 - local.get $3 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 - loop $for-loop|0259 + loop $for-loop|0252 local.get $1 - local.get $5 + local.get $4 i32.gt_s if local.get $2 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -58436,19 +58491,19 @@ global.set $~argumentsLength i32.const 0 local.get $0 + local.get $4 local.get $5 - local.get $3 i32.const 6832 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0258 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0251 drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|0259 + local.set $4 + br $for-loop|0252 end end i32.const 1 @@ -58465,7 +58520,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58473,17 +58528,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 6 call $~lib/typedarray/Int64Array#__set @@ -58491,23 +58546,23 @@ i32.const 6864 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|0261 + loop $for-loop|0254 local.get $0 - local.get $3 + local.get $5 i32.gt_s if local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl i32.add @@ -58517,19 +58572,19 @@ global.set $~argumentsLength i32.const 0 local.get $9 + local.get $5 local.get $3 - 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 $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|0261 + local.set $5 + br $for-loop|0254 end end i32.const 1 @@ -58540,23 +58595,23 @@ i32.const 6896 i32.store offset=4 i32.const 0 - local.set $3 - block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0263 (result i32) - local.get $4 + local.set $5 + block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0256 (result i32) + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|0264 + loop $for-loop|0257 local.get $0 - local.get $3 + local.get $5 i32.gt_s if local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl i32.add @@ -58566,19 +58621,19 @@ global.set $~argumentsLength i32.const 0 local.get $9 + local.get $5 local.get $3 - 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.0263 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0256 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|0264 + local.set $5 + br $for-loop|0257 end end i32.const 1 @@ -58595,7 +58650,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58603,17 +58658,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 6 call $~lib/typedarray/Uint64Array#__set @@ -58621,23 +58676,23 @@ i32.const 6928 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|0266 + loop $for-loop|0259 local.get $0 - local.get $3 + local.get $5 i32.gt_s if local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl i32.add @@ -58647,19 +58702,19 @@ global.set $~argumentsLength i32.const 0 local.get $9 + local.get $5 local.get $3 - 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 $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|0266 + local.set $5 + br $for-loop|0259 end end i32.const 1 @@ -58670,23 +58725,23 @@ i32.const 6960 i32.store offset=4 i32.const 0 - local.set $3 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0268 (result i32) - local.get $4 + local.set $5 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0261 (result i32) + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|0269 + loop $for-loop|0262 local.get $0 - local.get $3 + local.get $5 i32.gt_s if local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl i32.add @@ -58696,19 +58751,19 @@ global.set $~argumentsLength i32.const 0 local.get $9 + local.get $5 local.get $3 - 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.0268 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0261 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|0269 + local.set $5 + br $for-loop|0262 end end i32.const 1 @@ -58725,7 +58780,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58733,17 +58788,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 1 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 2 f32.const 6 call $~lib/typedarray/Float32Array#__set @@ -58751,45 +58806,45 @@ i32.const 6992 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 - loop $for-loop|0271 + loop $for-loop|0264 local.get $0 - local.get $3 + local.get $5 i32.gt_s if local.get $1 - local.get $3 + local.get $5 i32.const 2 i32.shl i32.add f32.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $10 + local.get $11 + local.get $5 local.get $3 - 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 $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|0271 + local.set $5 + br $for-loop|0264 end end i32.const 1 @@ -58800,45 +58855,45 @@ i32.const 7024 i32.store offset=4 i32.const 0 - local.set $3 - block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0273 (result i32) - local.get $4 + local.set $5 + block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0266 (result i32) + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 - loop $for-loop|0274 + loop $for-loop|0267 local.get $0 - local.get $3 + local.get $5 i32.gt_s if local.get $1 - local.get $3 + local.get $5 i32.const 2 i32.shl i32.add f32.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $10 + local.get $11 + local.get $5 local.get $3 - 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.0273 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0266 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|0274 + local.set $5 + br $for-loop|0267 end end i32.const 1 @@ -58855,7 +58910,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58863,17 +58918,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 1 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 2 f64.const 6 call $~lib/typedarray/Float64Array#__set @@ -58881,45 +58936,45 @@ i32.const 7056 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|0276 + loop $for-loop|0269 local.get $0 - local.get $3 + local.get $5 i32.gt_s if local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl i32.add f64.load - local.set $11 + local.set $12 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $11 + local.get $12 + local.get $5 local.get $3 - 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 $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|0276 + local.set $5 + br $for-loop|0269 end end i32.const 1 @@ -58930,45 +58985,45 @@ i32.const 7088 i32.store offset=4 i32.const 0 - local.set $3 - block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0278 (result i32) - local.get $4 + local.set $5 + block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0271 (result i32) + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|0279 + loop $for-loop|0272 local.get $0 - local.get $3 + local.get $5 i32.gt_s if local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl i32.add f64.load - local.set $11 + local.set $12 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $11 + local.get $12 + local.get $5 local.get $3 - 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.0278 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0271 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|0279 + local.set $5 + br $for-loop|0272 end end i32.const 1 @@ -58985,7 +59040,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58998,14 +59053,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -59015,7 +59070,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -59025,7 +59080,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -59036,34 +59091,34 @@ i32.const 7200 i32.store offset=8 i32.const 0 - local.set $3 - local.get $4 + local.set $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 local.set $1 - loop $for-loop|043 + loop $for-loop|054274 local.get $1 - local.get $3 + local.get $4 i32.gt_s if local.get $2 - local.get $3 + local.get $4 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $3 local.get $4 + local.get $3 i32.const 7200 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|043 + local.set $4 + br $for-loop|054274 end end global.get $std/typedarray/forEachCallCount @@ -59081,7 +59136,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59094,14 +59149,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -59112,7 +59167,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -59123,7 +59178,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -59135,34 +59190,34 @@ i32.const 7232 i32.store offset=8 i32.const 0 - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 local.set $1 - loop $for-loop|0282 + loop $for-loop|0276 local.get $1 - local.get $3 + local.get $5 i32.gt_s if local.get $2 - local.get $3 + local.get $5 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength + local.get $5 local.get $3 - local.get $4 i32.const 7232 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|0282 + local.set $5 + br $for-loop|0276 end end global.get $std/typedarray/forEachCallCount @@ -59180,7 +59235,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59193,14 +59248,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -59211,7 +59266,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -59222,7 +59277,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -59234,34 +59289,34 @@ i32.const 7264 i32.store offset=8 i32.const 0 - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 local.set $1 - loop $for-loop|0285 + loop $for-loop|0279 local.get $1 - local.get $3 + local.get $5 i32.gt_s if local.get $2 - local.get $3 + local.get $5 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength + local.get $5 local.get $3 - local.get $4 i32.const 7264 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|0285 + local.set $5 + br $for-loop|0279 end end global.get $std/typedarray/forEachCallCount @@ -59279,7 +59334,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59292,14 +59347,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -59309,7 +59364,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -59319,7 +59374,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -59330,38 +59385,38 @@ i32.const 7296 i32.store offset=8 i32.const 0 - local.set $3 - local.get $4 + local.set $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 - loop $for-loop|045 + loop $for-loop|056 local.get $1 - local.get $3 + local.get $4 i32.gt_s if local.get $2 - local.get $3 + local.get $4 i32.const 1 i32.shl i32.add i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $3 local.get $4 + local.get $3 i32.const 7296 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|045 + local.set $4 + br $for-loop|056 end end global.get $std/typedarray/forEachCallCount @@ -59379,7 +59434,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59392,14 +59447,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -59410,7 +59465,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -59421,7 +59476,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -59433,38 +59488,38 @@ i32.const 7328 i32.store offset=8 i32.const 0 - local.set $3 - local.get $4 + local.set $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 - loop $for-loop|047 + loop $for-loop|058282 local.get $1 - local.get $3 + local.get $4 i32.gt_s if local.get $2 - local.get $3 + local.get $4 i32.const 1 i32.shl i32.add i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $3 local.get $4 + local.get $3 i32.const 7328 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|047 + local.set $4 + br $for-loop|058282 end end global.get $std/typedarray/forEachCallCount @@ -59482,7 +59537,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59495,14 +59550,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -59511,7 +59566,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -59520,7 +59575,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -59530,38 +59585,38 @@ i32.const 7360 i32.store offset=8 i32.const 0 - local.set $3 - local.get $4 + local.set $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 - loop $for-loop|049 + loop $for-loop|060 local.get $1 - local.get $3 + local.get $4 i32.gt_s if local.get $2 - local.get $3 + local.get $4 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $3 local.get $4 + local.get $3 i32.const 7360 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|049 + local.set $4 + br $for-loop|060 end end global.get $std/typedarray/forEachCallCount @@ -59579,7 +59634,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59592,14 +59647,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -59608,7 +59663,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -59617,7 +59672,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -59627,38 +59682,38 @@ i32.const 7392 i32.store offset=8 i32.const 0 - local.set $3 - local.get $4 + local.set $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 - loop $for-loop|051 + loop $for-loop|062 local.get $1 - local.get $3 + local.get $4 i32.gt_s if local.get $2 - local.get $3 + local.get $4 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $3 local.get $4 + local.get $3 i32.const 7392 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|051 + local.set $4 + br $for-loop|062 end end global.get $std/typedarray/forEachCallCount @@ -59676,7 +59731,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59727,7 +59782,7 @@ i32.const 7424 i32.store offset=8 i32.const 0 - local.set $3 + local.set $4 local.get $2 i32.load offset=4 local.set $1 @@ -59736,29 +59791,29 @@ i32.const 3 i32.shr_u local.set $0 - loop $for-loop|053291 + loop $for-loop|064 local.get $0 - local.get $3 + local.get $4 i32.gt_s if local.get $1 - local.get $3 + local.get $4 i32.const 3 i32.shl i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $2 i32.const 7424 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|053291 + local.set $4 + br $for-loop|064 end end global.get $std/typedarray/forEachCallCount @@ -59776,7 +59831,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59827,7 +59882,7 @@ i32.const 7456 i32.store offset=8 i32.const 0 - local.set $3 + local.set $4 local.get $2 i32.load offset=4 local.set $1 @@ -59836,29 +59891,29 @@ i32.const 3 i32.shr_u local.set $0 - loop $for-loop|055 + loop $for-loop|066287 local.get $0 - local.get $3 + local.get $4 i32.gt_s if local.get $1 - local.get $3 + local.get $4 i32.const 3 i32.shl i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $2 i32.const 7456 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|055 + local.set $4 + br $for-loop|066287 end end global.get $std/typedarray/forEachCallCount @@ -59876,7 +59931,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59927,7 +59982,7 @@ i32.const 7488 i32.store offset=8 i32.const 0 - local.set $3 + local.set $4 local.get $2 i32.load offset=4 local.set $1 @@ -59936,29 +59991,29 @@ i32.const 2 i32.shr_u local.set $0 - loop $for-loop|057 + loop $for-loop|068289 local.get $0 - local.get $3 + local.get $4 i32.gt_s if local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.shl i32.add f32.load i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $2 i32.const 7488 i32.load call_indirect $0 (type $f32_i32_i32_=>_none) - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|057 + local.set $4 + br $for-loop|068289 end end global.get $std/typedarray/forEachCallCount @@ -59976,7 +60031,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60027,7 +60082,7 @@ i32.const 7520 i32.store offset=8 i32.const 0 - local.set $3 + local.set $4 local.get $2 i32.load offset=4 local.set $1 @@ -60036,29 +60091,29 @@ i32.const 3 i32.shr_u local.set $0 - loop $for-loop|059 + loop $for-loop|070 local.get $0 - local.get $3 + local.get $4 i32.gt_s if local.get $1 - local.get $3 + local.get $4 i32.const 3 i32.shl i32.add f64.load i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $2 i32.const 7520 i32.load call_indirect $0 (type $f64_i32_i32_=>_none) - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|059 + local.set $4 + br $for-loop|070 end end global.get $std/typedarray/forEachCallCount @@ -60094,9 +60149,9 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $5 i32.store offset=12 - local.get $3 + local.get $5 i32.const 0 f64.const nan:0x8000000000000 call $~lib/typedarray/Float64Array#__set @@ -60105,22 +60160,22 @@ i32.const -1 local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $3 + local.get $5 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $3 + local.get $5 i32.load offset=4 local.set $2 loop $while-continue|0 local.get $1 - local.get $4 + local.get $3 i32.lt_s if local.get $2 @@ -60154,11 +60209,11 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $4 block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) i32.const 0 - local.set $6 - i32.const 0 - local.get $3 + local.get $5 i32.load offset=8 i32.const 3 i32.shr_u @@ -60169,36 +60224,36 @@ i32.eqz br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $3 + local.get $5 i32.load offset=4 local.set $0 - loop $while-continue|0295 + loop $while-continue|0291 local.get $1 - local.get $6 + local.get $4 i32.gt_s if i32.const 1 i32.const 1 local.get $0 - local.get $6 + local.get $4 i32.const 3 i32.shl i32.add f64.load - local.tee $11 - local.get $11 + local.tee $12 + local.get $12 f64.ne - local.get $11 + local.get $12 f64.const nan:0x8000000000000 f64.eq select br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $6 + local.get $4 i32.const 1 i32.add - local.set $6 - br $while-continue|0295 + local.set $4 + br $while-continue|0291 end end i32.const 0 @@ -60215,9 +60270,9 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $5 i32.store offset=24 - local.get $3 + local.get $5 i32.const 0 f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set @@ -60226,22 +60281,22 @@ i32.const -1 local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $3 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $3 + local.get $5 i32.load offset=4 local.set $2 - loop $while-continue|0296 + loop $while-continue|0292 local.get $1 - local.get $4 + local.get $3 i32.lt_s if local.get $2 @@ -60258,7 +60313,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|0296 + br $while-continue|0292 end end i32.const -1 @@ -60275,11 +60330,11 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $4 block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) i32.const 0 - local.set $6 - i32.const 0 - local.get $3 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u @@ -60290,36 +60345,36 @@ i32.eqz br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $3 + local.get $5 i32.load offset=4 local.set $0 - loop $while-continue|062 + loop $while-continue|073 local.get $1 - local.get $6 + local.get $4 i32.gt_s if i32.const 1 i32.const 1 local.get $0 - local.get $6 + local.get $4 i32.const 2 i32.shl i32.add f32.load - local.tee $10 - local.get $10 + local.tee $11 + local.get $11 f32.ne - local.get $10 + local.get $11 f32.const nan:0x400000 f32.eq select br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $6 + local.get $4 i32.const 1 i32.add - local.set $6 - br $while-continue|062 + local.set $4 + br $while-continue|073 end end i32.const 0 @@ -60340,7 +60395,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60398,7 +60453,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -60436,7 +60491,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60513,7 +60568,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60590,7 +60645,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60648,7 +60703,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -60686,7 +60741,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60744,7 +60799,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -60782,7 +60837,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60840,7 +60895,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -60878,7 +60933,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60936,7 +60991,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -60974,7 +61029,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61032,7 +61087,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -61070,7 +61125,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61128,7 +61183,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -61166,7 +61221,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61224,7 +61279,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -61262,7 +61317,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61320,7 +61375,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -61406,7 +61461,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61423,16 +61478,16 @@ local.get $0 i32.const 10940 i32.load - local.tee $4 + local.tee $3 call $~lib/typedarray/Int8Array#constructor - local.tee $6 + local.tee $4 i32.store offset=4 - loop $for-loop|00 + loop $for-loop|037 local.get $2 - local.get $4 + local.get $3 i32.lt_s if - local.get $6 + local.get $4 local.get $2 i32.const 10928 local.get $2 @@ -61443,32 +61498,32 @@ i32.const 1 i32.add local.set $2 - br $for-loop|00 + br $for-loop|037 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $6 + local.get $4 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub - local.get $6 + local.get $4 i32.load offset=8 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 + local.tee $5 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -61480,12 +61535,12 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 i32.store - local.get $3 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -61497,16 +61552,16 @@ local.tee $1 i32.store local.get $1 - local.get $3 + local.get $5 i32.store local.get $1 - local.get $3 + local.get $5 call $~lib/rt/itcms/__link local.get $1 local.get $0 i32.store offset=8 local.get $1 - local.get $3 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -61519,17 +61574,17 @@ local.set $2 loop $for-loop|1 local.get $2 - local.get $4 + local.get $3 i32.lt_s if - local.get $6 + local.get $4 local.get $2 call $~lib/typedarray/Int8Array#__get local.get $1 local.get $2 call $~lib/typedarray/Int8Array#__get i32.ne - br_if $folding-inner15 + br_if $folding-inner26 local.get $2 i32.const 1 i32.add @@ -61550,7 +61605,115 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 + 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 10928 + i32.store + local.get $0 + i32.const 10940 + i32.load + local.tee $2 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store offset=4 + loop $for-loop|039 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 10928 + 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|039 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $3 + i32.load + local.tee $0 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $3 + i32.load offset=4 + local.get $3 + i32.load + i32.sub + local.get $3 + i32.load offset=8 + local.get $3 + i32.load offset=4 + local.get $3 + i32.load + i32.sub + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=12 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $0 + i32.store offset=16 + i32.const 0 + local.set $1 + loop $for-loop|140 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $1 + call $~lib/typedarray/Uint8Array#__get + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8Array#__get + i32.ne + br_if $folding-inner26 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|140 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $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 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61567,28 +61730,28 @@ local.get $0 i32.const 10940 i32.load - local.tee $2 - call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $4 i32.store offset=4 - loop $for-loop|040 - local.get $1 + loop $for-loop|043 local.get $2 + local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $2 i32.const 10928 - local.get $1 + local.get $2 call $~lib/array/Array#__get i32.const 255 i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|040 + local.set $2 + br $for-loop|043 end end global.get $~lib/memory/__stack_pointer @@ -61613,115 +61776,7 @@ i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=12 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $0 - i32.store offset=16 - i32.const 0 - local.set $1 - loop $for-loop|11 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $4 - local.get $1 - call $~lib/typedarray/Uint8Array#__get - local.get $0 - local.get $1 - call $~lib/typedarray/Uint8Array#__get - i32.ne - br_if $folding-inner15 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|11 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $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 - br_if $folding-inner16 - 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 10928 - i32.store - local.get $0 - i32.const 10940 - i32.load - local.tee $4 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $6 - i32.store offset=4 - loop $for-loop|020 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $6 - local.get $2 - i32.const 10928 - local.get $2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|020 - end - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $6 - i32.load - local.tee $0 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $6 - i32.load offset=4 - local.get $6 - i32.load - i32.sub - local.get $6 - i32.load offset=8 - local.get $6 - i32.load offset=4 - local.get $6 - i32.load - i32.sub - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 + local.tee $5 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -61733,12 +61788,12 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 i32.store - local.get $3 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -61750,16 +61805,16 @@ local.tee $1 i32.store local.get $1 - local.get $3 + local.get $5 i32.store local.get $1 - local.get $3 + local.get $5 call $~lib/rt/itcms/__link local.get $1 local.get $0 i32.store offset=8 local.get $1 - local.get $3 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -61770,24 +61825,24 @@ i32.store offset=16 i32.const 0 local.set $2 - loop $for-loop|121 + loop $for-loop|144 local.get $2 - local.get $4 + local.get $3 i32.lt_s if - local.get $6 + local.get $4 local.get $2 call $~lib/typedarray/Uint8ClampedArray#__get local.get $1 local.get $2 call $~lib/typedarray/Uint8ClampedArray#__get i32.ne - br_if $folding-inner15 + br_if $folding-inner26 local.get $2 i32.const 1 i32.add local.set $2 - br $for-loop|121 + br $for-loop|144 end end global.get $~lib/memory/__stack_pointer @@ -61803,7 +61858,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61822,14 +61877,14 @@ i32.load local.tee $2 call $~lib/typedarray/Int16Array#constructor - local.tee $6 + local.tee $4 i32.store offset=4 - loop $for-loop|032 + loop $for-loop|047 local.get $1 local.get $2 i32.lt_s if - local.get $6 + local.get $4 local.get $1 i32.const 10928 local.get $1 @@ -61840,32 +61895,32 @@ i32.const 1 i32.add local.set $1 - br $for-loop|032 + br $for-loop|047 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $6 + local.get $4 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub - local.get $6 + local.get $4 i32.load offset=8 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -61877,63 +61932,63 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 local.tee $0 i32.const 1 i32.and - br_if $folding-inner32 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $5 i32.store + local.get $5 local.get $3 - local.get $4 i32.store + local.get $5 local.get $3 - local.get $4 call $~lib/rt/itcms/__link - local.get $3 + local.get $5 local.get $0 i32.store offset=8 + local.get $5 local.get $3 - local.get $4 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 $3 + local.get $5 i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|133 + loop $for-loop|148 local.get $1 local.get $2 i32.lt_s if - local.get $6 + local.get $4 local.get $1 call $~lib/typedarray/Int16Array#__get - local.get $3 + local.get $5 local.get $1 call $~lib/typedarray/Int16Array#__get i32.ne - br_if $folding-inner15 + br_if $folding-inner26 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|133 + br $for-loop|148 end end global.get $~lib/memory/__stack_pointer @@ -61949,7 +62004,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61968,14 +62023,14 @@ i32.load local.tee $2 call $~lib/typedarray/Uint16Array#constructor - local.tee $6 + local.tee $4 i32.store offset=4 - loop $for-loop|036 + loop $for-loop|053 local.get $1 local.get $2 i32.lt_s if - local.get $6 + local.get $4 local.get $1 i32.const 10928 local.get $1 @@ -61987,32 +62042,32 @@ i32.const 1 i32.add local.set $1 - br $for-loop|036 + br $for-loop|053 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $6 + local.get $4 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub - local.get $6 + local.get $4 i32.load offset=8 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -62024,63 +62079,63 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 local.tee $0 i32.const 1 i32.and - br_if $folding-inner32 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $5 i32.store + local.get $5 local.get $3 - local.get $4 i32.store + local.get $5 local.get $3 - local.get $4 call $~lib/rt/itcms/__link - local.get $3 + local.get $5 local.get $0 i32.store offset=8 + local.get $5 local.get $3 - local.get $4 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 $3 + local.get $5 i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|137 + loop $for-loop|154 local.get $1 local.get $2 i32.lt_s if - local.get $6 + local.get $4 local.get $1 call $~lib/typedarray/Uint16Array#__get - local.get $3 + local.get $5 local.get $1 call $~lib/typedarray/Uint16Array#__get i32.ne - br_if $folding-inner15 + br_if $folding-inner26 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|137 + br $for-loop|154 end end global.get $~lib/memory/__stack_pointer @@ -62096,7 +62151,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62115,14 +62170,14 @@ i32.load local.tee $2 call $~lib/typedarray/Int32Array#constructor - local.tee $6 + local.tee $4 i32.store offset=4 - loop $for-loop|044 + loop $for-loop|057 local.get $1 local.get $2 i32.lt_s if - local.get $6 + local.get $4 local.get $1 i32.const 10928 local.get $1 @@ -62132,32 +62187,32 @@ i32.const 1 i32.add local.set $1 - br $for-loop|044 + br $for-loop|057 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $6 + local.get $4 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub - local.get $6 + local.get $4 i32.load offset=8 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -62169,63 +62224,63 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 local.tee $0 i32.const 3 i32.and - br_if $folding-inner32 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $5 i32.store + local.get $5 local.get $3 - local.get $4 i32.store + local.get $5 local.get $3 - local.get $4 call $~lib/rt/itcms/__link - local.get $3 + local.get $5 local.get $0 i32.store offset=8 + local.get $5 local.get $3 - local.get $4 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 $3 + local.get $5 i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|145 + loop $for-loop|158 local.get $1 local.get $2 i32.lt_s if - local.get $6 + local.get $4 local.get $1 call $~lib/typedarray/Int32Array#__get - local.get $3 + local.get $5 local.get $1 call $~lib/typedarray/Int32Array#__get i32.ne - br_if $folding-inner15 + br_if $folding-inner26 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|145 + br $for-loop|158 end end global.get $~lib/memory/__stack_pointer @@ -62241,7 +62296,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62260,14 +62315,14 @@ i32.load local.tee $2 call $~lib/typedarray/Uint32Array#constructor - local.tee $6 + local.tee $4 i32.store offset=4 - loop $for-loop|048 + loop $for-loop|065 local.get $1 local.get $2 i32.lt_s if - local.get $6 + local.get $4 local.get $1 i32.const 10928 local.get $1 @@ -62277,32 +62332,32 @@ i32.const 1 i32.add local.set $1 - br $for-loop|048 + br $for-loop|065 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $6 + local.get $4 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub - local.get $6 + local.get $4 i32.load offset=8 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -62314,63 +62369,63 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 local.tee $0 i32.const 3 i32.and - br_if $folding-inner32 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $5 i32.store + local.get $5 local.get $3 - local.get $4 i32.store + local.get $5 local.get $3 - local.get $4 call $~lib/rt/itcms/__link - local.get $3 + local.get $5 local.get $0 i32.store offset=8 + local.get $5 local.get $3 - local.get $4 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 $3 + local.get $5 i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|149 + loop $for-loop|166 local.get $1 local.get $2 i32.lt_s if - local.get $6 + local.get $4 local.get $1 call $~lib/typedarray/Uint32Array#__get - local.get $3 + local.get $5 local.get $1 call $~lib/typedarray/Uint32Array#__get i32.ne - br_if $folding-inner15 + br_if $folding-inner26 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|149 + br $for-loop|166 end end global.get $~lib/memory/__stack_pointer @@ -62386,7 +62441,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62405,14 +62460,14 @@ i32.load local.tee $2 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $4 i32.store offset=4 - loop $for-loop|052 + loop $for-loop|069 local.get $1 local.get $2 i32.lt_s if - local.get $6 + local.get $4 local.get $1 i32.const 10928 local.get $1 @@ -62423,32 +62478,32 @@ i32.const 1 i32.add local.set $1 - br $for-loop|052 + br $for-loop|069 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $6 + local.get $4 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub - local.get $6 + local.get $4 i32.load offset=8 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -62460,63 +62515,63 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 local.tee $0 i32.const 7 i32.and - br_if $folding-inner32 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $5 i32.store + local.get $5 local.get $3 - local.get $4 i32.store + local.get $5 local.get $3 - local.get $4 call $~lib/rt/itcms/__link - local.get $3 + local.get $5 local.get $0 i32.store offset=8 + local.get $5 local.get $3 - local.get $4 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 $3 + local.get $5 i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|153 + loop $for-loop|170 local.get $1 local.get $2 i32.lt_s if - local.get $6 + local.get $4 local.get $1 call $~lib/typedarray/Int64Array#__get - local.get $3 + local.get $5 local.get $1 call $~lib/typedarray/Int64Array#__get i64.ne - br_if $folding-inner15 + br_if $folding-inner26 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|153 + br $for-loop|170 end end global.get $~lib/memory/__stack_pointer @@ -62532,7 +62587,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62551,14 +62606,14 @@ i32.load local.tee $2 call $~lib/typedarray/Uint64Array#constructor - local.tee $6 + local.tee $4 i32.store offset=4 - loop $for-loop|060 + loop $for-loop|072 local.get $1 local.get $2 i32.lt_s if - local.get $6 + local.get $4 local.get $1 i32.const 10928 local.get $1 @@ -62569,32 +62624,32 @@ i32.const 1 i32.add local.set $1 - br $for-loop|060 + br $for-loop|072 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $6 + local.get $4 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub - local.get $6 + local.get $4 i32.load offset=8 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -62606,63 +62661,63 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 local.tee $0 i32.const 7 i32.and - br_if $folding-inner32 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $5 i32.store + local.get $5 local.get $3 - local.get $4 i32.store + local.get $5 local.get $3 - local.get $4 call $~lib/rt/itcms/__link - local.get $3 + local.get $5 local.get $0 i32.store offset=8 + local.get $5 local.get $3 - local.get $4 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 $3 + local.get $5 i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|161 + loop $for-loop|173 local.get $1 local.get $2 i32.lt_s if - local.get $6 + local.get $4 local.get $1 call $~lib/typedarray/Uint64Array#__get - local.get $3 + local.get $5 local.get $1 call $~lib/typedarray/Uint64Array#__get i64.ne - br_if $folding-inner15 + br_if $folding-inner26 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|161 + br $for-loop|173 end end global.get $~lib/memory/__stack_pointer @@ -62678,7 +62733,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62697,14 +62752,14 @@ i32.load local.tee $2 call $~lib/typedarray/Float32Array#constructor - local.tee $6 + local.tee $4 i32.store offset=4 - loop $for-loop|063 + loop $for-loop|075 local.get $1 local.get $2 i32.lt_s if - local.get $6 + local.get $4 local.get $1 i32.const 10928 local.get $1 @@ -62715,32 +62770,32 @@ i32.const 1 i32.add local.set $1 - br $for-loop|063 + br $for-loop|075 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $6 + local.get $4 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub - local.get $6 + local.get $4 i32.load offset=8 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -62752,63 +62807,63 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 local.tee $0 i32.const 3 i32.and - br_if $folding-inner32 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $5 i32.store + local.get $5 local.get $3 - local.get $4 i32.store + local.get $5 local.get $3 - local.get $4 call $~lib/rt/itcms/__link - local.get $3 + local.get $5 local.get $0 i32.store offset=8 + local.get $5 local.get $3 - local.get $4 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 $3 + local.get $5 i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|164 + loop $for-loop|176 local.get $1 local.get $2 i32.lt_s if - local.get $6 + local.get $4 local.get $1 call $~lib/typedarray/Float32Array#__get - local.get $3 + local.get $5 local.get $1 call $~lib/typedarray/Float32Array#__get f32.ne - br_if $folding-inner15 + br_if $folding-inner26 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|164 + br $for-loop|176 end end global.get $~lib/memory/__stack_pointer @@ -62824,7 +62879,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62843,14 +62898,14 @@ i32.load local.tee $2 call $~lib/typedarray/Float64Array#constructor - local.tee $6 + local.tee $4 i32.store offset=4 - loop $for-loop|066 + loop $for-loop|079 local.get $1 local.get $2 i32.lt_s if - local.get $6 + local.get $4 local.get $1 i32.const 10928 local.get $1 @@ -62861,32 +62916,32 @@ i32.const 1 i32.add local.set $1 - br $for-loop|066 + br $for-loop|079 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $6 + local.get $4 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub - local.get $6 + local.get $4 i32.load offset=8 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -62898,63 +62953,63 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 local.tee $0 i32.const 7 i32.and - br_if $folding-inner32 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $5 i32.store + local.get $5 local.get $3 - local.get $4 i32.store + local.get $5 local.get $3 - local.get $4 call $~lib/rt/itcms/__link - local.get $3 + local.get $5 local.get $0 i32.store offset=8 + local.get $5 local.get $3 - local.get $4 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 $3 + local.get $5 i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|167 + loop $for-loop|180 local.get $1 local.get $2 i32.lt_s if - local.get $6 + local.get $4 local.get $1 call $~lib/typedarray/Float64Array#__get - local.get $3 + local.get $5 local.get $1 call $~lib/typedarray/Float64Array#__get f64.ne - br_if $folding-inner15 + br_if $folding-inner26 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|167 + br $for-loop|180 end end global.get $~lib/memory/__stack_pointer @@ -62975,62 +63030,62 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $8 + local.tee $6 i32.store offset=24 global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $0 + local.tee $1 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 f32.const 400 call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $1 i32.const 1 f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $1 i32.const 2 f32.const inf call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $7 i32.store offset=8 - local.get $5 + local.get $7 i32.const 0 i64.const -10 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $7 i32.const 1 i64.const 100 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $7 i32.const 2 i64.const 10 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $7 i32.const 3 i64.const 300 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 2 call $~lib/typedarray/Int32Array#constructor - local.tee $6 + local.tee $0 i32.store offset=16 - local.get $6 + local.get $0 i32.const 0 i32.const 300 call $~lib/typedarray/Int32Array#__set - local.get $6 + local.get $0 i32.const 1 i32.const -1 call $~lib/typedarray/Int32Array#__set - local.get $8 + local.get $6 i32.load offset=8 - local.get $0 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u @@ -63038,42 +63093,42 @@ i32.add i32.lt_s br_if $folding-inner17 - local.get $8 + local.get $6 i32.load offset=4 i32.const 1 i32.add - local.set $4 - local.get $0 + local.set $5 + local.get $1 i32.load offset=4 - local.set $2 - local.get $0 + local.set $3 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|0299 - local.get $1 - local.get $16 + local.set $2 + loop $for-loop|077 + local.get $2 + local.get $13 i32.gt_s if - local.get $4 - local.get $16 + local.get $5 + local.get $13 i32.add - local.get $2 - local.get $16 + local.get $3 + local.get $13 i32.const 2 i32.shl i32.add f32.load - local.tee $10 - local.get $10 + local.tee $11 + local.get $11 f32.sub f32.const 0 f32.eq if (result i32) f32.const 0 f32.const 255 - local.get $10 + local.get $11 f32.min f32.max i32.trunc_f32_u @@ -63081,75 +63136,75 @@ i32.const 0 end i32.store8 - local.get $16 + local.get $13 i32.const 1 i32.add - local.set $16 - br $for-loop|0299 + local.set $13 + br $for-loop|077 end end - local.get $8 - local.get $5 + local.get $6 + local.get $7 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> i32.const 0 - local.set $5 - local.get $8 - i32.load offset=8 + local.set $13 local.get $6 i32.load offset=8 + local.get $0 + i32.load offset=8 i32.const 2 i32.shr_u i32.const 8 i32.add i32.lt_s br_if $folding-inner17 - local.get $8 + local.get $6 i32.load offset=4 i32.const 8 i32.add local.set $2 - local.get $6 + local.get $0 i32.load offset=4 local.set $1 - local.get $6 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 - loop $for-loop|0300 + loop $for-loop|081295 local.get $0 - local.get $5 + local.get $13 i32.gt_s if local.get $2 - local.get $5 + local.get $13 i32.add local.get $1 - local.get $5 + local.get $13 i32.const 2 i32.shl i32.add i32.load - local.tee $4 + local.tee $3 i32.const 31 i32.shr_s i32.const -1 i32.xor - local.get $4 + local.get $3 i32.const 255 - local.get $4 + local.get $3 i32.sub i32.const 31 i32.shr_s i32.or i32.and i32.store8 - local.get $5 + local.get $13 i32.const 1 i32.add - local.set $5 - br $for-loop|0300 + local.set $13 + br $for-loop|081295 end end i32.const 10 @@ -63161,7 +63216,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $8 + local.get $6 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer @@ -63188,27 +63243,27 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Int16Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 i32.const -10 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $4 i32.const 1 i32.const 100 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $4 i32.const 2 i32.const 10 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $4 i32.const 3 i32.const 300 call $~lib/typedarray/Int16Array#__set i32.const 0 - local.set $5 - local.get $8 + local.set $13 + local.get $6 i32.load offset=8 local.get $0 i32.load offset=8 @@ -63216,47 +63271,49 @@ i32.shr_u i32.lt_s br_if $folding-inner17 - local.get $8 + local.get $6 i32.load offset=4 - local.set $4 + local.set $5 local.get $0 i32.load offset=4 - local.set $2 + local.set $3 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|0301 - local.get $1 - local.get $5 + local.set $2 + loop $for-loop|085 + local.get $2 + local.get $13 i32.gt_s if - local.get $4 - local.get $5 - i32.add - i32.const 255 - local.get $2 - local.get $5 + local.get $3 + local.get $13 i32.const 2 i32.shl i32.add i32.load - local.tee $0 - local.get $0 + local.tee $1 i32.const 255 i32.gt_u + local.set $0 + local.get $5 + local.get $13 + i32.add + i32.const 255 + local.get $1 + local.get $0 select i32.store8 - local.get $5 + local.get $13 i32.const 1 i32.add - local.set $5 - br $for-loop|0301 + local.set $13 + br $for-loop|085 end end - local.get $8 - local.get $3 + local.get $6 + local.get $4 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> i32.const 10 @@ -63268,7 +63325,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $8 + local.get $6 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> i32.const 0 @@ -63280,7 +63337,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63315,7 +63372,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -63351,19 +63408,19 @@ call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner26 + br_if $folding-inner28 local.get $2 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 2 i32.ne - br_if $folding-inner27 + br_if $folding-inner29 local.get $2 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 15376 i32.store offset=8 @@ -63378,19 +63435,19 @@ call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne - br_if $folding-inner29 + br_if $folding-inner31 local.get $2 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 2 i32.ne - br_if $folding-inner30 + br_if $folding-inner32 local.get $2 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner31 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63404,7 +63461,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63439,15 +63496,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of143 - block $0of144 - block $outOfRange45 + block $1of183 + block $0of184 + block $outOfRange85 global.get $~argumentsLength - br_table $0of144 $1of143 $outOfRange45 + br_table $0of184 $1of183 $outOfRange85 end unreachable end @@ -63475,19 +63532,19 @@ call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner26 + br_if $folding-inner28 local.get $2 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 2 i32.ne - br_if $folding-inner27 + br_if $folding-inner29 local.get $2 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 3 i32.ne - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 15440 i32.store offset=8 @@ -63502,19 +63559,19 @@ call $~lib/typedarray/Uint8Array#__get i32.const 3 i32.ne - br_if $folding-inner29 + br_if $folding-inner31 local.get $2 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 2 i32.ne - br_if $folding-inner30 + br_if $folding-inner32 local.get $2 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner31 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63528,7 +63585,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63563,15 +63620,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of147 - block $0of148 - block $outOfRange49 + block $1of187 + block $0of188 + block $outOfRange89 global.get $~argumentsLength - br_table $0of148 $1of147 $outOfRange49 + br_table $0of188 $1of187 $outOfRange89 end unreachable end @@ -63599,19 +63656,19 @@ call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner26 + br_if $folding-inner28 local.get $2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 i32.ne - br_if $folding-inner27 + br_if $folding-inner29 local.get $2 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 i32.ne - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 15504 i32.store offset=8 @@ -63626,19 +63683,19 @@ call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 i32.ne - br_if $folding-inner29 + br_if $folding-inner31 local.get $2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 i32.ne - br_if $folding-inner30 + br_if $folding-inner32 local.get $2 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner31 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63652,7 +63709,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63687,15 +63744,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of151 - block $0of152 - block $outOfRange53 + block $1of191 + block $0of192 + block $outOfRange93 global.get $~argumentsLength - br_table $0of152 $1of151 $outOfRange53 + br_table $0of192 $1of191 $outOfRange93 end unreachable end @@ -63725,19 +63782,19 @@ call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner26 + br_if $folding-inner28 local.get $2 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 2 i32.ne - br_if $folding-inner27 + br_if $folding-inner29 local.get $2 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 3 i32.ne - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 15568 i32.store offset=8 @@ -63754,19 +63811,19 @@ call $~lib/typedarray/Int16Array#__get i32.const 3 i32.ne - br_if $folding-inner29 + br_if $folding-inner31 local.get $2 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 2 i32.ne - br_if $folding-inner30 + br_if $folding-inner32 local.get $2 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner31 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63780,7 +63837,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63815,15 +63872,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of155 - block $0of156 - block $outOfRange57 + block $1of195 + block $0of196 + block $outOfRange97 global.get $~argumentsLength - br_table $0of156 $1of155 $outOfRange57 + br_table $0of196 $1of195 $outOfRange97 end unreachable end @@ -63853,19 +63910,19 @@ call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner26 + br_if $folding-inner28 local.get $2 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 2 i32.ne - br_if $folding-inner27 + br_if $folding-inner29 local.get $2 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 3 i32.ne - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 15632 i32.store offset=8 @@ -63882,19 +63939,19 @@ call $~lib/typedarray/Uint16Array#__get i32.const 3 i32.ne - br_if $folding-inner29 + br_if $folding-inner31 local.get $2 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 2 i32.ne - br_if $folding-inner30 + br_if $folding-inner32 local.get $2 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner31 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63908,7 +63965,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63943,15 +64000,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of159 - block $0of160 - block $outOfRange61 + block $1of199 + block $0of1100 + block $outOfRange101 global.get $~argumentsLength - br_table $0of160 $1of159 $outOfRange61 + br_table $0of1100 $1of199 $outOfRange101 end unreachable end @@ -63981,19 +64038,19 @@ call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner26 + br_if $folding-inner28 local.get $2 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne - br_if $folding-inner27 + br_if $folding-inner29 local.get $2 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 3 i32.ne - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 15696 i32.store offset=8 @@ -64010,19 +64067,19 @@ call $~lib/typedarray/Int32Array#__get i32.const 3 i32.ne - br_if $folding-inner29 + br_if $folding-inner31 local.get $2 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne - br_if $folding-inner30 + br_if $folding-inner32 local.get $2 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner31 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -64036,7 +64093,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -64071,15 +64128,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of163 - block $0of164 - block $outOfRange65 + block $1of1103 + block $0of1104 + block $outOfRange105 global.get $~argumentsLength - br_table $0of164 $1of163 $outOfRange65 + br_table $0of1104 $1of1103 $outOfRange105 end unreachable end @@ -64109,19 +64166,19 @@ call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner26 + br_if $folding-inner28 local.get $2 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 2 i32.ne - br_if $folding-inner27 + br_if $folding-inner29 local.get $2 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 3 i32.ne - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 15760 i32.store offset=8 @@ -64138,19 +64195,19 @@ call $~lib/typedarray/Uint32Array#__get i32.const 3 i32.ne - br_if $folding-inner29 + br_if $folding-inner31 local.get $2 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 2 i32.ne - br_if $folding-inner30 + br_if $folding-inner32 local.get $2 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner31 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -64164,7 +64221,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -64199,15 +64256,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of167 - block $0of168 - block $outOfRange69 + block $1of1107 + block $0of1108 + block $outOfRange109 global.get $~argumentsLength - br_table $0of168 $1of167 $outOfRange69 + br_table $0of1108 $1of1107 $outOfRange109 end unreachable end @@ -64237,19 +64294,19 @@ call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner26 + br_if $folding-inner28 local.get $2 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 2 i64.ne - br_if $folding-inner27 + br_if $folding-inner29 local.get $2 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 3 i64.ne - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 15824 i32.store offset=8 @@ -64266,19 +64323,19 @@ call $~lib/typedarray/Int64Array#__get i64.const 3 i64.ne - br_if $folding-inner29 + br_if $folding-inner31 local.get $2 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 2 i64.ne - br_if $folding-inner30 + br_if $folding-inner32 local.get $2 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner31 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -64292,7 +64349,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -64327,15 +64384,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of171 - block $0of172 - block $outOfRange73 + block $1of1111 + block $0of1112 + block $outOfRange113 global.get $~argumentsLength - br_table $0of172 $1of171 $outOfRange73 + br_table $0of1112 $1of1111 $outOfRange113 end unreachable end @@ -64365,19 +64422,19 @@ call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner26 + br_if $folding-inner28 local.get $2 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 2 i64.ne - br_if $folding-inner27 + br_if $folding-inner29 local.get $2 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 3 i64.ne - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 15888 i32.store offset=8 @@ -64394,19 +64451,19 @@ call $~lib/typedarray/Uint64Array#__get i64.const 3 i64.ne - br_if $folding-inner29 + br_if $folding-inner31 local.get $2 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 2 i64.ne - br_if $folding-inner30 + br_if $folding-inner32 local.get $2 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner31 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -64420,7 +64477,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -64455,15 +64512,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of175 - block $0of176 - block $outOfRange77 + block $1of1115 + block $0of1116 + block $outOfRange117 global.get $~argumentsLength - br_table $0of176 $1of175 $outOfRange77 + br_table $0of1116 $1of1115 $outOfRange117 end unreachable end @@ -64493,19 +64550,19 @@ call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne - br_if $folding-inner26 + br_if $folding-inner28 local.get $2 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 2 f32.ne - br_if $folding-inner27 + br_if $folding-inner29 local.get $2 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 3 f32.ne - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 15952 i32.store offset=8 @@ -64522,19 +64579,19 @@ call $~lib/typedarray/Float32Array#__get f32.const 3 f32.ne - br_if $folding-inner29 + br_if $folding-inner31 local.get $2 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 2 f32.ne - br_if $folding-inner30 + br_if $folding-inner32 local.get $2 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne - br_if $folding-inner31 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -64546,7 +64603,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -64583,19 +64640,19 @@ call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne - br_if $folding-inner26 + br_if $folding-inner28 local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 2 f64.ne - br_if $folding-inner27 + br_if $folding-inner29 local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 3 f64.ne - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 15984 i32.store offset=8 @@ -64612,19 +64669,19 @@ call $~lib/typedarray/Float64Array#__get f64.const 3 f64.ne - br_if $folding-inner29 + br_if $folding-inner31 local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 2 f64.ne - br_if $folding-inner30 + br_if $folding-inner32 local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne - br_if $folding-inner31 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -64635,12 +64692,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|063 + loop $while-continue|086 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|063 + br $while-continue|086 end end end @@ -64796,94 +64853,94 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 675 - i32.const 5 + 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 676 + i32.const 675 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 672 + i32.const 676 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 673 + i32.const 672 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 878 - i32.const 3 + i32.const 673 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 879 - i32.const 3 + i32.const 730 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 880 - i32.const 3 + i32.const 1056 + i32.const 1632 + i32.const 1877 + i32.const 9 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 882 + i32.const 878 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 883 + i32.const 879 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 884 + i32.const 880 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 730 - i32.const 5 + i32.const 882 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 883 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1056 - i32.const 1632 - i32.const 1877 - i32.const 9 + i32.const 0 + i32.const 1568 + i32.const 884 + i32.const 3 call $~lib/builtins/abort unreachable ) @@ -65992,9 +66049,11 @@ i32.add local.tee $1 i32.const 0 + i32.gt_s + local.set $2 local.get $1 i32.const 0 - i32.gt_s + local.get $2 select else local.get $1 @@ -66081,9 +66140,11 @@ i32.add local.tee $1 i32.const 0 + i32.gt_s + local.set $2 local.get $1 i32.const 0 - i32.gt_s + local.get $2 select else local.get $1 @@ -66172,9 +66233,11 @@ i32.add local.tee $1 i32.const 0 + i32.gt_s + local.set $2 local.get $1 i32.const 0 - i32.gt_s + local.get $2 select else local.get $1 @@ -66267,9 +66330,11 @@ i32.add local.tee $1 i32.const 0 + i32.gt_s + local.set $2 local.get $1 i32.const 0 - i32.gt_s + local.get $2 select else local.get $1 @@ -66362,9 +66427,11 @@ i32.add local.tee $1 i32.const 0 + i32.gt_s + local.set $2 local.get $1 i32.const 0 - i32.gt_s + local.get $2 select else local.get $1 @@ -66457,9 +66524,11 @@ i32.add local.tee $1 i32.const 0 + i32.gt_s + local.set $2 local.get $1 i32.const 0 - i32.gt_s + local.get $2 select else local.get $1 @@ -66552,9 +66621,11 @@ i32.add local.tee $1 i32.const 0 + i32.gt_s + local.set $2 local.get $1 i32.const 0 - i32.gt_s + local.get $2 select else local.get $1 @@ -66647,9 +66718,11 @@ i32.add local.tee $1 i32.const 0 + i32.gt_s + local.set $2 local.get $1 i32.const 0 - i32.gt_s + local.get $2 select else local.get $1 @@ -66836,18 +66909,12 @@ global.get $~lib/memory/__stack_pointer 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_s - select local.tee $3 local.get $1 i32.const 0 @@ -66855,31 +66922,39 @@ i32.const 0 i32.gt_s select + local.tee $2 + i32.gt_s + local.set $4 + i32.const 0 + local.get $3 + local.get $3 + i32.const 0 + i32.gt_s + select local.tee $1 local.get $2 - local.get $1 - local.get $2 - i32.lt_s + local.get $3 + local.get $4 select - local.tee $1 + local.tee $2 local.get $1 - local.get $3 - i32.lt_s + local.get $2 + i32.gt_s select i32.const 1 i32.shl local.tee $4 - local.get $3 local.get $1 + local.get $2 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select i32.const 1 i32.shl local.tee $1 i32.sub - local.tee $3 + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -66891,7 +66966,7 @@ end i32.const 0 local.get $4 - local.get $2 + local.get $3 i32.const 1 i32.shl i32.eq @@ -66906,22 +66981,22 @@ return end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 local.get $0 local.get $1 i32.add - local.get $3 + 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 $3 ) (func $~lib/util/number/utoa32 (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 b37d772288..87b1772367 100644 --- a/tests/compiler/std/uri.optimized.wat +++ b/tests/compiler/std/uri.optimized.wat @@ -288,16 +288,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 4336 i32.load i32.gt_u @@ -309,7 +309,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 4340 @@ -325,26 +325,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1793,38 +1793,38 @@ i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $1 local.get $3 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -3307,7 +3307,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -3321,18 +3321,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -3340,20 +3337,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -3366,33 +3363,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end diff --git a/tests/compiler/super-inline.optimized.wat b/tests/compiler/super-inline.optimized.wat index b33c391db1..cb3b6ee8af 100644 --- a/tests/compiler/super-inline.optimized.wat +++ b/tests/compiler/super-inline.optimized.wat @@ -181,16 +181,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -202,7 +202,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -218,26 +218,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index c72f01d654..b688a7181a 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -8,7 +8,7 @@ (type $f64_=>_i32 (func (param f64) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) - (type $i64_i32_i64_i32_i64_i32_=>_i32 (func (param i64 i32 i64 i32 i64 i32) (result i32))) + (type $i64_i64_i32_i64_i32_=>_i32 (func (param i64 i64 i32 i64 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -154,7 +154,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -168,18 +168,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -187,20 +184,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -213,33 +210,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end @@ -1894,38 +1891,38 @@ i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $1 local.get $3 - local.get $1 + local.get $0 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -2888,7 +2885,6 @@ local.get $2 i32.store local.get $2 - local.tee $1 if local.get $0 i32.eqz @@ -2901,10 +2897,10 @@ unreachable end global.get $~lib/rt/itcms/white - local.get $1 + local.get $2 i32.const 20 i32.sub - local.tee $1 + local.tee $2 i32.load offset=4 i32.const 3 i32.and @@ -2917,7 +2913,7 @@ i32.load offset=4 i32.const 3 i32.and - local.tee $2 + local.tee $1 global.get $~lib/rt/itcms/white i32.eqz i32.eq @@ -2929,12 +2925,12 @@ i32.const 1 i32.eq i32.const 0 - local.get $2 + local.get $1 i32.const 3 i32.eq select if - local.get $1 + local.get $2 call $~lib/rt/itcms/Object#makeGray end end @@ -2954,7 +2950,7 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2971,17 +2967,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $5 i64.const 0 i64.store - local.get $6 + local.get $5 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinStringArray - local.get $5 + local.get $3 i32.const 1 i32.sub - local.tee $6 + local.tee $5 i32.const 0 i32.lt_s if @@ -2990,19 +2986,19 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1184 - local.set $2 + local.set $3 br $__inlined_func$~lib/util/string/joinStringArray end - local.get $6 + local.get $5 i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.load local.tee $0 i32.store - local.get $2 + local.get $3 i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -3010,27 +3006,27 @@ i32.const 1184 local.get $0 select - local.set $2 + local.set $3 br $__inlined_func$~lib/util/string/joinStringArray end loop $for-loop|0 local.get $3 - local.get $5 - i32.lt_s + local.get $4 + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $4 + local.tee $6 i32.store offset=4 - local.get $4 + local.get $6 if local.get $2 - local.get $4 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -3039,95 +3035,95 @@ i32.add local.set $2 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer local.get $2 - local.get $6 + local.get $5 i32.const 1180 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $6 i32.mul i32.add i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=8 i32.const 0 - local.set $3 + local.set $4 loop $for-loop|1 - local.get $3 - local.get $6 + local.get $4 + local.get $5 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $4 + local.tee $2 i32.store offset=4 - local.get $4 + local.get $2 if - local.get $2 + local.get $3 local.get $1 i32.const 1 i32.shl i32.add - local.get $4 - local.get $4 + local.get $2 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $1 - local.get $4 + local.get $2 i32.add local.set $1 end - local.get $5 + local.get $6 if - local.get $2 + local.get $3 local.get $1 i32.const 1 i32.shl i32.add i32.const 1184 - local.get $5 + local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $1 - local.get $5 + local.get $6 i32.add local.set $1 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer local.get $0 - local.get $6 + local.get $5 i32.const 2 i32.shl i32.add @@ -3136,7 +3132,7 @@ i32.store offset=4 local.get $0 if - local.get $2 + local.get $3 local.get $1 i32.const 1 i32.shl @@ -3157,7 +3153,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $2 + local.get $3 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3263,87 +3259,206 @@ i32.store16 end ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i32) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) - (local $6 i64) - (local $7 i32) - (local $8 i64) - (local $9 i32) - (local $10 i64) - (local $11 i64) - local.get $2 - local.get $0 - i64.sub - local.set $8 - local.get $2 - i64.const 1 - i32.const 0 - local.get $3 + (func $~lib/number/I32#toString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $9 - i64.extend_i32_s - local.tee $0 - i64.shl - local.tee $10 - i64.const 1 - i64.sub - local.tee $11 - i64.and - local.set $6 - local.get $2 - local.get $0 - i64.shr_u - i32.wrap_i64 - local.tee $1 - local.set $3 - local.get $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5580 + i32.lt_s + if + i32.const 21984 + i32.const 22032 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2032 + local.set $0 + br $__inlined_func$~lib/util/number/itoa32 end - else - local.get $3 - i32.const 10000000 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + i32.sub + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + local.tee $1 + select + local.tee $2 + local.tee $0 + i32.const 100000 i32.lt_u if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 + 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 $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 + 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 + 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 $8 i32) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + local.get $1 + local.get $0 + i64.sub + local.set $9 + local.get $1 + i64.const 1 + i32.const 0 + local.get $2 + i32.sub + local.tee $10 + i64.extend_i32_s + local.tee $0 + i64.shl + local.tee $11 + i64.const 1 + i64.sub + local.tee $12 + i64.and + local.set $6 + local.get $1 + local.get $0 + i64.shr_u + i32.wrap_i64 + local.tee $2 + local.set $5 + local.get $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $5 + i32.const 100 + i32.lt_u + if (result i32) + local.get $5 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $5 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $5 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $5 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $5 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $5 + i32.const 100000000 i32.ge_u i32.add end end - local.set $7 + local.set $8 loop $while-continue|0 - local.get $7 + local.get $8 i32.const 0 i32.gt_s if @@ -3359,277 +3474,277 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $7 + local.get $8 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 $1 + local.get $2 i32.const 1000000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 1000000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 1000 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 1000 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 100 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 100 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 + local.get $2 i32.const 10 i32.div_u - local.set $3 - local.get $1 + local.set $5 + local.get $2 i32.const 10 i32.rem_u - local.set $1 + local.set $2 br $break|1 end - local.get $1 - local.set $3 + local.get $2 + local.set $5 i32.const 0 - local.set $1 + local.set $2 br $break|1 end i32.const 0 - local.set $3 + local.set $5 end - local.get $3 + local.get $4 local.get $5 i32.or if - local.get $5 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 i32.const 1 i32.shl i32.const 3920 i32.add - local.get $3 + local.get $5 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 end - local.get $7 + local.get $8 i32.const 1 i32.sub - local.set $7 + local.set $8 local.get $6 - local.get $1 + local.get $2 i64.extend_i32_u - local.get $9 + local.get $10 i64.extend_i32_s i64.shl i64.add local.tee $0 - local.get $4 + local.get $3 i64.le_u if - local.get $7 + local.get $8 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $7 + local.get $8 i32.const 2 i32.shl i32.const 4848 i32.add i64.load32_u - local.get $9 + local.get $10 i64.extend_i32_s i64.shl - local.set $2 - local.get $5 + local.set $1 + local.get $4 i32.const 1 i32.shl i32.const 3918 i32.add - local.tee $7 + local.tee $8 i32.load16_u - local.set $3 + local.set $5 loop $while-continue|3 - local.get $2 - local.get $4 + local.get $1 + local.get $3 local.get $0 i64.sub i64.le_u i32.const 0 local.get $0 - local.get $8 + local.get $9 i64.lt_u select if (result i32) i32.const 1 - local.get $8 + local.get $9 local.get $0 i64.sub local.get $0 - local.get $2 + local.get $1 i64.add local.tee $6 - local.get $8 + local.get $9 i64.sub i64.gt_u local.get $6 - local.get $8 + local.get $9 i64.lt_u select else i32.const 0 end if - local.get $3 + local.get $5 i32.const 1 i32.sub - local.set $3 + local.set $5 local.get $0 - local.get $2 + local.get $1 i64.add local.set $0 br $while-continue|3 end end - local.get $7 - local.get $3 - i32.store16 + local.get $8 local.get $5 + i32.store16 + local.get $4 return end br $while-continue|0 end end - local.get $9 - i64.extend_i32_s - local.set $0 loop $while-continue|4 - local.get $4 + local.get $3 i64.const 10 i64.mul - local.set $4 + local.set $3 local.get $6 i64.const 10 i64.mul - local.tee $2 - local.get $0 + local.tee $0 + local.get $10 + i64.extend_i32_s i64.shr_u - local.tee $6 - local.get $5 + local.tee $1 + local.get $4 i64.extend_i32_s i64.or i64.const 0 i64.ne if - local.get $5 + local.get $4 + local.tee $2 + i32.const 1 + i32.add + local.set $4 + local.get $2 i32.const 1 i32.shl i32.const 3920 i32.add - local.get $6 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 end - local.get $7 + local.get $8 i32.const 1 i32.sub - local.set $7 - local.get $4 - local.get $2 - local.get $11 + local.set $8 + local.get $3 + local.get $0 + local.get $12 i64.and local.tee $6 i64.le_u br_if $while-continue|4 end - local.get $7 + local.get $8 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K local.get $6 local.set $0 - local.get $8 + local.get $9 i32.const 0 - local.get $7 + local.get $8 i32.sub i32.const 2 i32.shl @@ -3637,39 +3752,39 @@ i32.add i64.load32_u i64.mul - local.set $2 - local.get $5 + local.set $1 + local.get $4 i32.const 1 i32.shl i32.const 3918 i32.add - local.tee $7 + local.tee $8 i32.load16_u - local.set $3 + local.set $5 loop $while-continue|6 - local.get $10 - local.get $4 + local.get $11 + local.get $3 local.get $0 i64.sub i64.le_u i32.const 0 local.get $0 - local.get $2 + local.get $1 i64.lt_u select if (result i32) i32.const 1 - local.get $2 + local.get $1 local.get $0 i64.sub local.get $0 - local.get $10 + local.get $11 i64.add local.tee $6 - local.get $2 + local.get $1 i64.sub i64.gt_u - local.get $2 + local.get $1 local.get $6 i64.gt_u select @@ -3677,21 +3792,21 @@ i32.const 0 end if - local.get $3 + local.get $5 i32.const 1 i32.sub - local.set $3 + local.set $5 local.get $0 - local.get $10 + local.get $11 i64.add local.set $0 br $while-continue|6 end end - local.get $7 - local.get $3 - i32.store16 + local.get $8 local.get $5 + i32.store16 + local.get $4 ) (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -4036,20 +4151,24 @@ (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) (local $1 i64) (local $2 i64) - (local $3 i64) + (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i64) + (local $5 i64) + (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) + (local $8 i64) + (local $9 i64) (local $10 i64) (local $11 i64) - (local $12 i64) + (local $12 f64) + (local $13 i64) + (local $14 i64) + (local $15 i64) + (local $16 i64) local.get $0 f64.const 0 f64.lt - local.tee $8 + local.tee $6 if (result f64) i32.const 3920 i32.const 45 @@ -4060,73 +4179,73 @@ local.get $0 end i64.reinterpret_f64 - local.tee $2 + local.tee $1 i64.const 9218868437227405312 i64.and i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $7 + local.tee $4 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl + local.set $2 + local.get $4 + i32.const 1 + local.get $4 + select + i32.const 1075 + i32.sub + local.tee $4 + i32.const 1 + i32.sub local.get $2 + local.get $1 i64.const 4503599627370495 i64.and i64.add - local.tee $1 + local.tee $2 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $2 + local.tee $1 i64.clz i32.wrap_i64 - local.set $4 - local.get $2 - local.get $4 + local.tee $3 + i32.sub + local.set $7 + local.get $1 + local.get $3 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $7 - i32.const 1 - local.get $7 - select - i32.const 1075 - i32.sub - local.tee $7 - i32.const 1 - i32.sub - local.get $4 - i32.sub - local.set $4 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $5 + local.tee $3 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $7 - local.get $5 - i32.sub local.get $4 + local.get $3 + i32.sub + local.get $7 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $4 + local.get $7 global.set $~lib/util/number/_exp - i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $4 + local.tee $7 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -4135,28 +4254,31 @@ f64.add local.tee $0 i32.trunc_f64_s - local.tee $5 - local.get $0 - local.get $5 + local.tee $3 f64.convert_i32_s + local.set $12 + i32.const 348 + local.get $3 + local.get $0 + local.get $12 f64.ne i32.add i32.const 3 i32.shr_s i32.const 1 i32.add - local.tee $5 + local.tee $3 i32.const 3 i32.shl - local.tee $9 + local.tee $4 i32.sub global.set $~lib/util/number/_K - local.get $9 + local.get $4 i32.const 3976 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $5 + local.get $3 i32.const 1 i32.shl i32.const 4672 @@ -4164,68 +4286,81 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $3 - i64.const 32 - i64.shr_u - local.set $2 - local.get $3 + local.tee $13 i64.const 4294967295 i64.and - local.tee $3 + local.tee $1 + local.get $2 + local.get $2 + i64.clz + i64.shl + local.tee $8 + i64.const 4294967295 + i64.and + local.tee $14 + i64.mul + local.set $9 global.get $~lib/util/number/_frc_plus - local.tee $6 + local.tee $5 + i64.const 4294967295 + i64.and + local.set $2 + local.get $1 + local.get $5 i64.const 32 i64.shr_u - local.tee $11 + local.tee $15 i64.mul - local.get $3 - local.get $6 + local.get $1 + local.get $2 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $5 + global.get $~lib/util/number/_frc_minus + local.tee $10 i64.const 4294967295 i64.and - local.tee $12 + local.set $11 + local.get $1 + local.get $8 + i64.const 32 + i64.shr_u + local.tee $16 i64.mul + local.get $9 i64.const 32 i64.shr_u i64.add - local.set $6 - local.get $8 - i32.const 1 - i32.shl - i32.const 3920 - i32.add - local.get $2 - local.get $1 + local.set $8 local.get $1 - i64.clz - i32.wrap_i64 - local.tee $5 - i64.extend_i32_s - i64.shl - local.tee $1 + local.get $10 i64.const 32 i64.shr_u local.tee $10 i64.mul - local.get $3 - local.get $10 - i64.mul - local.get $3 local.get $1 - i64.const 4294967295 - i64.and - local.tee $1 + local.get $11 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $10 + local.set $9 + local.get $13 + i64.const 32 + i64.shr_u + local.tee $1 + local.get $15 + i64.mul + local.get $5 i64.const 32 i64.shr_u i64.add local.get $1 local.get $2 i64.mul - local.get $10 + local.get $5 i64.const 4294967295 i64.and i64.add @@ -4234,25 +4369,20 @@ i64.const 32 i64.shr_u i64.add - global.get $~lib/util/number/_exp_pow - local.tee $9 - local.get $7 - local.get $5 - i32.sub - i32.add - i32.const -64 - i32.sub - local.get $2 - local.get $11 + i64.const 1 + i64.sub + local.tee $2 + local.get $1 + local.get $10 i64.mul - local.get $6 + local.get $9 i64.const 32 i64.shr_u i64.add - local.get $2 - local.get $12 + local.get $1 + local.get $11 i64.mul - local.get $6 + local.get $9 i64.const 4294967295 i64.and i64.add @@ -4262,41 +4392,25 @@ i64.shr_u i64.add i64.const 1 + i64.add i64.sub - local.tee $1 - local.get $4 - local.get $9 - i32.add - i32.const -64 - i32.sub - local.get $1 - local.get $2 - global.get $~lib/util/number/_frc_minus - local.tee $1 - i64.const 32 - i64.shr_u - local.tee $6 - i64.mul - local.get $3 + local.set $5 local.get $6 - i64.mul - local.get $3 + i32.const 1 + i32.shl + i32.const 3920 + i32.add local.get $1 - i64.const 4294967295 - i64.and - local.tee $3 + local.get $16 i64.mul + local.get $8 i64.const 32 i64.shr_u i64.add - local.tee $1 - i64.const 32 - i64.shr_u - i64.add - local.get $2 - local.get $3 - i64.mul local.get $1 + local.get $14 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -4305,16 +4419,20 @@ i64.const 32 i64.shr_u i64.add - i64.const 1 - i64.add - i64.sub - local.get $8 + local.get $2 + global.get $~lib/util/number/_exp_pow + local.get $7 + i32.add + i32.const -64 + i32.sub + local.get $5 + local.get $6 call $~lib/util/number/genDigits - local.get $8 + local.get $6 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $8 + local.get $6 i32.add ) (func $~lib/number/F64#toString (param $0 f64) (result i32) @@ -4570,7 +4688,7 @@ i32.const 0 i32.store offset=16 i32.const 1 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -4592,13 +4710,13 @@ unreachable end i32.const 1 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 2 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -4630,7 +4748,7 @@ i32.const 3680 i32.store offset=8 i32.const 1 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -4643,7 +4761,7 @@ i32.const 3680 i32.store offset=8 i32.const 2 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -5077,7 +5195,7 @@ i32.const 1088 i32.store i32.const 2 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -5117,7 +5235,7 @@ i32.const 5104 i32.store offset=12 i32.const 2 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -5172,7 +5290,7 @@ unreachable end i32.const 2 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 @@ -5231,7 +5349,7 @@ unreachable end i32.const 2 - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -5290,7 +5408,7 @@ i32.store local.get $0 i32.load - call $~lib/util/number/itoa32 + call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -5376,120 +5494,6 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/util/number/itoa32 (param $0 i32) (result i32) - (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 - global.get $~lib/memory/__stack_pointer - i32.const 5580 - i32.lt_s - if - i32.const 21984 - i32.const 22032 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 2032 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - local.tee $1 - select - 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 $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 $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 - 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 - ) (func $templateliteral/Ref#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/throw.optimized.wat b/tests/compiler/throw.optimized.wat index f27d104813..5d422720c6 100644 --- a/tests/compiler/throw.optimized.wat +++ b/tests/compiler/throw.optimized.wat @@ -128,17 +128,18 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18140 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -152,7 +153,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -164,11 +165,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $2 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 @@ -177,16 +178,18 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 + local.tee $0 i32.const 1728 i32.load i32.gt_u @@ -198,7 +201,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1732 @@ -213,28 +216,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 - local.set $1 + local.set $2 + local.get $1 local.get $0 - local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $2 i32.store offset=8 + local.get $2 local.get $1 - local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -851,13 +854,15 @@ global.get $~lib/rt/tlsf/ROOT i32.eqz if + i32.const 0 + local.set $0 memory.size - local.tee $0 + local.tee $1 i32.const 1 i32.lt_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -875,11 +880,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18144 @@ -887,14 +892,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -904,17 +909,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -1145,8 +1150,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -1156,27 +1159,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 1056 i32.store loop $while-continue|0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.tee $0 + local.tee $1 i32.const 10 i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store offset=4 - local.get $0 + local.get $1 i32.const 10 i32.gt_s if diff --git a/tests/compiler/typeof.optimized.wat b/tests/compiler/typeof.optimized.wat index 2887713ff9..c0791a44c8 100644 --- a/tests/compiler/typeof.optimized.wat +++ b/tests/compiler/typeof.optimized.wat @@ -2,10 +2,10 @@ (type $none_=>_none (func)) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (result 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))) + (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -80,7 +80,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -94,18 +94,15 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - local.set $2 - local.get $1 - local.set $3 - local.get $2 + local.tee $3 i32.const 7 i32.and - local.get $3 + local.get $1 i32.const 7 i32.and i32.or i32.const 1 - local.get $4 + local.get $2 local.tee $0 i32.const 4 i32.ge_u @@ -113,20 +110,20 @@ i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $1 + 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 8 + i32.add + local.set $1 local.get $0 i32.const 4 i32.sub @@ -139,33 +136,33 @@ end loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $2 - i32.load16_u - local.tee $1 local.get $3 i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u local.tee $4 i32.ne if - local.get $1 + local.get $2 local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 br $while-continue|1 end end @@ -180,8 +177,10 @@ call $~lib/rt/itcms/__visit global.get $typeof/c local.tee $0 + local.set $1 + local.get $0 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end i32.const 1552 @@ -315,16 +314,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1792 i32.load i32.gt_u @@ -336,7 +335,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1796 @@ -352,26 +351,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1298,240 +1297,6 @@ end end ) - (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-continue|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-continue|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 $1 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 4 - memory.size - local.tee $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - local.get $1 - i32.load offset=1568 - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.set $2 - local.get $0 - local.get $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 $1 - local.get $0 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $1 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1696 - 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 1696 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $2 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $0 - i32.const 32 - i32.add - local.tee $2 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $2 - i32.const -2 - i32.and - i32.store - local.get $0 - i32.const 4 - i32.add - local.tee $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $0 - i32.const 4 - 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 $1 - local.get $0 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - 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 $0 - i32.const 20 - i32.add - ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid block $typeof/SomeClass @@ -1578,6 +1343,10 @@ ) (func $start:typeof (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1973,11 +1742,238 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 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-continue|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-continue|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 $1 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 4 + memory.size + local.tee $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $1 + i32.load offset=1568 + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $0 + local.get $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 $1 + local.get $0 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $1 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1696 + 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 1696 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $2 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $2 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $1 + local.get $2 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $2 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.tee $1 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.get $1 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 4 + i32.store offset=12 local.get $0 - call $~lib/rt/itcms/__new + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $2 + i32.load offset=8 + local.set $1 + local.get $0 + local.get $2 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + 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 $3 + local.get $0 + i32.const 20 + i32.add local.tee $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/wasi/abort.optimized.wat b/tests/compiler/wasi/abort.optimized.wat index 31a2c156cb..1aeb19a782 100644 --- a/tests/compiler/wasi/abort.optimized.wat +++ b/tests/compiler/wasi/abort.optimized.wat @@ -32,43 +32,42 @@ unreachable end local.get $0 - local.tee $3 local.get $1 i32.const 1 i32.shl i32.add local.set $4 local.get $2 - local.set $0 + local.set $1 loop $while-continue|0 - local.get $3 + local.get $0 local.get $4 i32.lt_u if - local.get $3 + local.get $0 i32.load16_u - local.tee $1 + local.tee $3 i32.const 128 i32.lt_u if (result i32) - local.get $0 local.get $1 + local.get $3 i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add else - local.get $1 + local.get $3 i32.const 2048 i32.lt_u if (result i32) - local.get $0 local.get $1 + local.get $3 i32.const 6 i32.shr_u i32.const 192 i32.or - local.get $1 + local.get $3 i32.const 63 i32.and i32.const 128 @@ -77,28 +76,28 @@ i32.shl i32.or i32.store16 - local.get $0 + local.get $1 i32.const 2 i32.add else - local.get $1 + local.get $3 i32.const 63488 i32.and i32.const 55296 i32.eq if local.get $4 - local.get $3 + local.get $0 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $1 + local.get $3 i32.const 56320 i32.lt_u select if - local.get $3 + local.get $0 i32.load16_u offset=2 local.tee $5 i32.const 64512 @@ -106,8 +105,8 @@ i32.const 56320 i32.eq if - local.get $0 local.get $1 + local.get $3 i32.const 1023 i32.and i32.const 10 @@ -118,14 +117,14 @@ i32.const 1023 i32.and i32.or - local.tee $1 + local.tee $3 i32.const 63 i32.and i32.const 128 i32.or i32.const 24 i32.shl - local.get $1 + local.get $3 i32.const 6 i32.shr_u i32.const 63 @@ -135,7 +134,7 @@ i32.const 16 i32.shl i32.or - local.get $1 + local.get $3 i32.const 12 i32.shr_u i32.const 63 @@ -145,32 +144,32 @@ i32.const 8 i32.shl i32.or - local.get $1 + local.get $3 i32.const 18 i32.shr_u i32.const 240 i32.or i32.or i32.store - local.get $0 + local.get $1 i32.const 4 i32.add - local.set $0 - local.get $3 + local.set $1 + local.get $0 i32.const 4 i32.add - local.set $3 + local.set $0 br $while-continue|0 end end end - local.get $0 local.get $1 + local.get $3 i32.const 12 i32.shr_u i32.const 224 i32.or - local.get $1 + local.get $3 i32.const 6 i32.shr_u i32.const 63 @@ -181,27 +180,27 @@ i32.shl i32.or i32.store16 - local.get $0 local.get $1 + local.get $3 i32.const 63 i32.and i32.const 128 i32.or i32.store8 offset=2 - local.get $0 + local.get $1 i32.const 3 i32.add end end - local.set $0 - local.get $3 + local.set $1 + local.get $0 i32.const 2 i32.add - local.set $3 + local.set $0 br $while-continue|0 end end - local.get $0 + local.get $1 local.get $2 i32.sub ) @@ -243,16 +242,14 @@ local.set $3 i32.const 3 global.set $~argumentsLength - i32.const 1216 - local.get $3 local.get $0 i32.const 4 i32.add local.tee $0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.set $3 - local.get $0 + i32.const 1216 local.get $3 + local.get $0 + call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.add local.tee $0 i32.const 40 diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index c2588b9f7f..9ec677e79b 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -8,7 +8,7 @@ (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $i32_i64_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i64 i32 i64 i32) (result i32))) (type $i32_f64_f64_f64_f64_f64_=>_none (func (param i32 f64 f64 f64 f64 f64))) (import "wasi_snapshot_preview1" "fd_write" (func $~lib/bindings/wasi_snapshot_preview1/fd_write (param i32 i32 i32 i32) (result i32))) (import "wasi_snapshot_preview1" "proc_exit" (func $~lib/bindings/wasi_snapshot_preview1/proc_exit (param i32))) @@ -53,43 +53,42 @@ unreachable end local.get $0 - local.tee $3 local.get $1 i32.const 1 i32.shl i32.add local.set $4 local.get $2 - local.set $0 + local.set $1 loop $while-continue|0 - local.get $3 + local.get $0 local.get $4 i32.lt_u if - local.get $3 + local.get $0 i32.load16_u - local.tee $1 + local.tee $3 i32.const 128 i32.lt_u if (result i32) - local.get $0 local.get $1 + local.get $3 i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add else - local.get $1 + local.get $3 i32.const 2048 i32.lt_u if (result i32) - local.get $0 local.get $1 + local.get $3 i32.const 6 i32.shr_u i32.const 192 i32.or - local.get $1 + local.get $3 i32.const 63 i32.and i32.const 128 @@ -98,28 +97,28 @@ i32.shl i32.or i32.store16 - local.get $0 + local.get $1 i32.const 2 i32.add else - local.get $1 + local.get $3 i32.const 63488 i32.and i32.const 55296 i32.eq if local.get $4 - local.get $3 + local.get $0 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $1 + local.get $3 i32.const 56320 i32.lt_u select if - local.get $3 + local.get $0 i32.load16_u offset=2 local.tee $5 i32.const 64512 @@ -127,8 +126,8 @@ i32.const 56320 i32.eq if - local.get $0 local.get $1 + local.get $3 i32.const 1023 i32.and i32.const 10 @@ -139,14 +138,14 @@ i32.const 1023 i32.and i32.or - local.tee $1 + local.tee $3 i32.const 63 i32.and i32.const 128 i32.or i32.const 24 i32.shl - local.get $1 + local.get $3 i32.const 6 i32.shr_u i32.const 63 @@ -156,7 +155,7 @@ i32.const 16 i32.shl i32.or - local.get $1 + local.get $3 i32.const 12 i32.shr_u i32.const 63 @@ -166,32 +165,32 @@ i32.const 8 i32.shl i32.or - local.get $1 + local.get $3 i32.const 18 i32.shr_u i32.const 240 i32.or i32.or i32.store - local.get $0 + local.get $1 i32.const 4 i32.add - local.set $0 - local.get $3 + local.set $1 + local.get $0 i32.const 4 i32.add - local.set $3 + local.set $0 br $while-continue|0 end end end - local.get $0 local.get $1 + local.get $3 i32.const 12 i32.shr_u i32.const 224 i32.or - local.get $1 + local.get $3 i32.const 6 i32.shr_u i32.const 63 @@ -202,27 +201,27 @@ i32.shl i32.or i32.store16 - local.get $0 local.get $1 + local.get $3 i32.const 63 i32.and i32.const 128 i32.or i32.store8 offset=2 - local.get $0 + local.get $1 i32.const 3 i32.add end end - local.set $0 - local.get $3 + local.set $1 + local.get $0 i32.const 2 i32.add - local.set $3 + local.set $0 br $while-continue|0 end end - local.get $0 + local.get $1 local.get $2 i32.sub ) @@ -1171,87 +1170,89 @@ end end ) - (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (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) (local $7 i64) (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i64) + (local $9 i32) + (local $10 i64) + (local $11 i32) (local $12 i64) - local.get $3 + (local $13 i64) + local.get $2 local.get $1 i64.sub - local.set $9 - local.get $3 + local.set $10 + local.get $2 i64.const 1 i32.const 0 - local.get $4 + local.get $3 i32.sub - local.tee $10 + local.tee $11 i64.extend_i32_s local.tee $1 i64.shl - local.tee $11 + local.tee $12 i64.const 1 i64.sub - local.tee $12 + local.tee $13 i64.and local.set $7 - local.get $3 + local.get $2 local.get $1 i64.shr_u i32.wrap_i64 - local.tee $2 - local.set $4 - local.get $2 + local.tee $6 + local.set $3 + local.get $6 i32.const 100000 i32.lt_u if (result i32) - local.get $4 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $4 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $4 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $4 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $4 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $4 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $4 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $4 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end - local.set $8 + local.set $9 loop $while-continue|0 - local.get $8 + local.get $9 i32.const 0 i32.gt_s if @@ -1267,279 +1268,279 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $8 + local.get $9 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 $6 i32.const 1000000000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 1000000000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 100000000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 100000000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 10000000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 10000000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 1000000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 1000000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 100000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 100000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 10000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 10000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 1000 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 1000 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 100 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 100 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 + local.get $6 i32.const 10 i32.div_u - local.set $4 - local.get $2 + local.set $3 + local.get $6 i32.const 10 i32.rem_u - local.set $2 + local.set $6 br $break|1 end - local.get $2 - local.set $4 + local.get $6 + local.set $3 i32.const 0 - local.set $2 + local.set $6 br $break|1 end i32.const 0 - local.set $4 + local.set $3 end - local.get $4 - local.get $6 + local.get $3 + local.get $5 i32.or if + local.get $5 + local.tee $8 + i32.const 1 + i32.add + local.set $5 local.get $0 - local.get $6 + local.get $8 i32.const 1 i32.shl i32.add - local.get $4 + local.get $3 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $6 - i32.const 1 - i32.add - local.set $6 end - local.get $8 + local.get $9 i32.const 1 i32.sub - local.set $8 + local.set $9 local.get $7 - local.get $2 + local.get $6 i64.extend_i32_u - local.get $10 + local.get $11 i64.extend_i32_s i64.shl i64.add local.tee $1 - local.get $5 + local.get $4 i64.le_u if - local.get $8 + local.get $9 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $8 + local.get $9 i32.const 2 i32.shl i32.const 2200 i32.add i64.load32_u - local.get $10 + local.get $11 i64.extend_i32_s i64.shl - local.set $3 + local.set $2 local.get $0 - local.get $6 + local.get $5 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.tee $2 + local.tee $6 i32.load16_u - local.set $4 + local.set $3 loop $while-continue|3 - local.get $3 - local.get $5 + local.get $2 + local.get $4 local.get $1 i64.sub i64.le_u i32.const 0 local.get $1 - local.get $9 + local.get $10 i64.lt_u select if (result i32) i32.const 1 - local.get $9 + local.get $10 local.get $1 i64.sub local.get $1 - local.get $3 + local.get $2 i64.add local.tee $7 - local.get $9 + local.get $10 i64.sub i64.gt_u local.get $7 - local.get $9 + local.get $10 i64.lt_u select else i32.const 0 end if - local.get $4 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 local.get $1 - local.get $3 + local.get $2 i64.add local.set $1 br $while-continue|3 end end - local.get $2 - local.get $4 - i32.store16 local.get $6 + local.get $3 + i32.store16 + local.get $5 return end br $while-continue|0 end end - local.get $10 - i64.extend_i32_s - local.set $1 loop $while-continue|4 - local.get $5 + local.get $4 i64.const 10 i64.mul - local.set $5 + local.set $4 local.get $7 i64.const 10 i64.mul - local.tee $3 - local.get $1 + local.tee $1 + local.get $11 + i64.extend_i32_s i64.shr_u - local.tee $7 - local.get $6 + local.tee $2 + local.get $5 i64.extend_i32_s i64.or i64.const 0 i64.ne if + local.get $5 + local.tee $3 + i32.const 1 + i32.add + local.set $5 local.get $0 - local.get $6 + local.get $3 i32.const 1 i32.shl i32.add - local.get $7 + local.get $2 i32.wrap_i64 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $6 - i32.const 1 - i32.add - local.set $6 end - local.get $8 + local.get $9 i32.const 1 i32.sub - local.set $8 - local.get $5 - local.get $3 - local.get $12 + local.set $9 + local.get $4 + local.get $1 + local.get $13 i64.and local.tee $7 i64.le_u br_if $while-continue|4 end - local.get $8 + local.get $9 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K local.get $7 local.set $1 - local.get $9 + local.get $10 i32.const 0 - local.get $8 + local.get $9 i32.sub i32.const 2 i32.shl @@ -1547,41 +1548,41 @@ i32.add i64.load32_u i64.mul - local.set $3 + local.set $2 local.get $0 - local.get $6 + local.get $5 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.tee $2 + local.tee $6 i32.load16_u - local.set $4 + local.set $3 loop $while-continue|6 - local.get $11 - local.get $5 + local.get $12 + local.get $4 local.get $1 i64.sub i64.le_u i32.const 0 local.get $1 - local.get $3 + local.get $2 i64.lt_u select if (result i32) i32.const 1 - local.get $3 + local.get $2 local.get $1 i64.sub local.get $1 - local.get $11 + local.get $12 i64.add local.tee $7 - local.get $3 + local.get $2 i64.sub i64.gt_u - local.get $3 + local.get $2 local.get $7 i64.gt_u select @@ -1589,21 +1590,21 @@ i32.const 0 end if - local.get $4 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 local.get $1 - local.get $11 + local.get $12 i64.add local.set $1 br $while-continue|6 end end - local.get $2 - local.get $4 - i32.store16 local.get $6 + local.get $3 + i32.store16 + local.get $5 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3001,16 +3002,15 @@ (local $3 i64) (local $4 i64) (local $5 i32) - (local $6 i64) + (local $6 i32) (local $7 i64) - (local $8 i32) + (local $8 i64) (local $9 i32) (local $10 i32) - (local $11 i32) local.get $1 f64.const 0 f64.lt - local.tee $10 + local.tee $9 if (result f64) local.get $0 i32.const 45 @@ -3027,7 +3027,7 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $9 + local.tee $5 i32.const 0 i32.ne i64.extend_i32_u @@ -3046,47 +3046,47 @@ local.get $2 i64.clz i32.wrap_i64 - local.tee $8 + local.tee $6 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $9 + local.get $5 i32.const 1 - local.get $9 + local.get $5 select i32.const 1075 i32.sub - local.tee $9 + local.tee $10 i32.const 1 i32.sub - local.get $8 + local.get $6 i32.sub - local.set $8 + local.set $5 local.get $3 local.get $3 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $5 + local.tee $6 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $9 - local.get $5 + local.get $10 + local.get $6 i32.sub - local.get $8 + local.get $5 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $8 + local.get $5 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $8 + local.tee $5 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -3095,9 +3095,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $5 + local.tee $6 local.get $1 - local.get $5 + local.get $6 f64.convert_i32_s f64.ne i32.add @@ -3105,18 +3105,18 @@ i32.shr_s i32.const 1 i32.add - local.tee $5 + local.tee $6 i32.const 3 i32.shl - local.tee $11 + local.tee $10 i32.sub global.set $~lib/util/number/_K - local.get $11 + local.get $10 i32.const 1328 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $5 + local.get $6 i32.const 1 i32.shl i32.const 2024 @@ -3124,22 +3124,22 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $6 + local.tee $7 i64.const 4294967295 i64.and local.set $2 - local.get $6 + local.get $7 i64.const 32 i64.shr_u - local.tee $6 + local.tee $7 global.get $~lib/util/number/_frc_plus local.tee $4 i64.const 32 i64.shr_u - local.tee $7 + local.tee $8 i64.mul local.get $2 - local.get $7 + local.get $8 i64.mul local.get $2 local.get $4 @@ -3150,14 +3150,14 @@ i64.const 32 i64.shr_u i64.add - local.tee $7 + local.tee $8 i64.const 32 i64.shr_u i64.add local.get $4 - local.get $6 - i64.mul local.get $7 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -3170,26 +3170,23 @@ i64.sub local.set $4 local.get $0 - local.get $10 + local.get $9 i32.const 1 i32.shl i32.add local.get $0 - local.get $6 + local.get $7 local.get $3 local.get $3 i64.clz - i32.wrap_i64 - local.tee $0 - i64.extend_i32_s i64.shl local.tee $3 i64.const 32 i64.shr_u - local.tee $7 + local.tee $8 i64.mul local.get $2 - local.get $7 + local.get $8 i64.mul local.get $2 local.get $3 @@ -3200,14 +3197,14 @@ i64.const 32 i64.shr_u i64.add - local.tee $7 + local.tee $8 i64.const 32 i64.shr_u i64.add local.get $3 - local.get $6 - i64.mul local.get $7 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -3216,22 +3213,14 @@ i64.const 32 i64.shr_u i64.add - global.get $~lib/util/number/_exp_pow - local.tee $5 - local.get $9 - local.get $0 - i32.sub - i32.add - i32.const -64 - i32.sub local.get $4 + global.get $~lib/util/number/_exp_pow local.get $5 - local.get $8 i32.add i32.const -64 i32.sub local.get $4 - local.get $6 + local.get $7 global.get $~lib/util/number/_frc_minus local.tee $3 i64.const 32 @@ -3255,7 +3244,7 @@ i64.shr_u i64.add local.get $2 - local.get $6 + local.get $7 i64.mul local.get $3 i64.const 4294967295 @@ -3269,13 +3258,13 @@ i64.const 1 i64.add i64.sub - local.get $10 + local.get $9 call $~lib/util/number/genDigits - local.get $10 + local.get $9 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $10 + local.get $9 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -3355,82 +3344,82 @@ (local $9 i32) (local $10 i32) i32.const 1056 - local.set $9 + local.set $6 i32.const 1052 i32.load i32.const 1056 i32.add local.set $8 loop $while-continue|0 + local.get $6 local.get $8 - local.get $9 - i32.gt_u + i32.lt_u if - local.get $9 + local.get $6 i32.load16_u - local.tee $10 + local.tee $9 i32.const 128 i32.lt_u if (result i32) - local.get $6 + local.get $7 i32.const 1 i32.add else - local.get $10 + local.get $9 i32.const 2048 i32.lt_u if (result i32) - local.get $6 + local.get $7 i32.const 2 i32.add else local.get $8 - local.get $9 + local.get $6 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $10 + local.get $9 i32.const 64512 i32.and i32.const 55296 i32.eq select if - local.get $9 + local.get $6 i32.load16_u offset=2 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $6 + local.get $7 i32.const 4 i32.add - local.set $6 - local.get $9 + local.set $7 + local.get $6 i32.const 4 i32.add - local.set $9 + local.set $6 br $while-continue|0 end end - local.get $6 + local.get $7 i32.const 3 i32.add end end - local.set $6 - local.get $9 + local.set $7 + local.get $6 i32.const 2 i32.add - local.set $9 + local.set $6 br $while-continue|0 end end - local.get $6 + local.get $7 i32.const 56 - local.get $6 + local.get $7 i32.const 56 i32.gt_s select @@ -3443,7 +3432,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $10 local.get $6 i32.const 1073741820 i32.gt_u @@ -3455,7 +3443,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $10 + local.tee $8 local.get $6 i32.const 12 i32.le_u @@ -3470,19 +3458,19 @@ i32.const 4 i32.sub end - local.tee $6 - call $~lib/rt/tlsf/searchBlock local.tee $7 + call $~lib/rt/tlsf/searchBlock + local.tee $6 i32.eqz if - local.get $6 + local.get $7 i32.const 536870910 i32.lt_u if (result i32) - local.get $6 + local.get $7 i32.const 1 i32.const 27 - local.get $6 + local.get $7 i32.clz i32.sub i32.shl @@ -3490,16 +3478,16 @@ i32.sub i32.add else - local.get $6 + local.get $7 end i32.const 4 memory.size - local.tee $9 + local.tee $6 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $10 + local.get $8 i32.load offset=1568 i32.ne i32.shl @@ -3510,18 +3498,18 @@ i32.and i32.const 16 i32.shr_u - local.set $8 + local.set $9 + local.get $6 local.get $9 - local.get $8 - local.get $8 + local.get $6 local.get $9 - i32.lt_s + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $8 + local.get $9 memory.grow i32.const 0 i32.lt_s @@ -3529,18 +3517,18 @@ unreachable end end - local.get $10 - local.get $9 + local.get $8 + local.get $6 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $10 - local.get $6 + local.get $8 + local.get $7 call $~lib/rt/tlsf/searchBlock - local.tee $7 + local.tee $6 i32.eqz if i32.const 0 @@ -3551,8 +3539,8 @@ unreachable end end - local.get $6 local.get $7 + local.get $6 i32.load i32.const -4 i32.and @@ -3565,13 +3553,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $10 - local.get $7 + local.get $8 + local.get $6 call $~lib/rt/tlsf/removeBlock - local.get $7 + local.get $6 i32.load local.set $9 - local.get $6 + local.get $7 i32.const 4 i32.add i32.const 15 @@ -3587,51 +3575,51 @@ local.get $9 i32.const -4 i32.and - local.get $6 + local.get $7 i32.sub - local.tee $8 + local.tee $10 i32.const 16 i32.ge_u if - local.get $7 local.get $6 + local.get $7 local.get $9 i32.const 2 i32.and i32.or i32.store - local.get $6 local.get $7 + local.get $6 i32.const 4 i32.add i32.add - local.tee $6 - local.get $8 + local.tee $7 + local.get $10 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $10 - local.get $6 + local.get $8 + local.get $7 call $~lib/rt/tlsf/insertBlock else - local.get $7 + local.get $6 local.get $9 i32.const -2 i32.and i32.store - local.get $7 + local.get $6 i32.const 4 i32.add - local.tee $6 - local.get $7 + local.tee $7 + local.get $6 i32.load i32.const -4 i32.and i32.add - local.get $6 local.get $7 + local.get $6 i32.load i32.const -4 i32.and @@ -3641,20 +3629,20 @@ i32.and i32.store end - local.get $7 + local.get $6 i32.const 4 i32.add local.tee $7 i32.const 8 i32.add - local.tee $10 + local.tee $8 i32.const 4 i32.add - local.set $9 + local.set $6 local.get $7 - local.get $9 + local.get $6 i32.store - local.get $9 + local.get $6 i64.const 9071406388179572 i64.store local.get $7 @@ -3663,46 +3651,46 @@ i32.const 2 local.get $7 i32.const 1 - local.get $10 + local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop i32.const 1052 i32.load i32.const 1 i32.shr_u - local.set $6 + local.set $9 i32.const 3 global.set $~argumentsLength local.get $7 i32.const 1056 - local.get $6 local.get $9 + local.get $6 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.store offset=4 i32.const 2 local.get $7 i32.const 1 - local.get $10 + local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 if (result i32) - local.get $9 + local.get $6 i32.const 32 i32.store8 - local.get $9 + local.get $6 i32.const 1 i32.add - local.tee $8 + local.tee $6 local.get $1 call $~lib/util/number/dtoa_buffered - local.set $6 + local.set $9 i32.const 3 global.set $~argumentsLength local.get $7 - local.get $8 local.get $6 - local.get $8 + local.get $9 + local.get $6 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add @@ -3710,23 +3698,23 @@ i32.const 2 local.get $7 i32.const 1 - local.get $10 + local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 1 i32.gt_s if - local.get $8 + local.get $6 local.get $2 call $~lib/util/number/dtoa_buffered - local.set $6 + local.set $9 i32.const 3 global.set $~argumentsLength local.get $7 - local.get $8 local.get $6 - local.get $8 + local.get $9 + local.get $6 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add @@ -3734,23 +3722,23 @@ i32.const 2 local.get $7 i32.const 1 - local.get $10 + local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 2 i32.gt_s if - local.get $8 + local.get $6 local.get $3 call $~lib/util/number/dtoa_buffered - local.set $6 + local.set $9 i32.const 3 global.set $~argumentsLength local.get $7 - local.get $8 local.get $6 - local.get $8 + local.get $9 + local.get $6 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add @@ -3758,23 +3746,23 @@ i32.const 2 local.get $7 i32.const 1 - local.get $10 + local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 3 i32.gt_s if - local.get $8 + local.get $6 local.get $4 call $~lib/util/number/dtoa_buffered - local.set $6 + local.set $9 i32.const 3 global.set $~argumentsLength local.get $7 - local.get $8 local.get $6 - local.get $8 + local.get $9 + local.get $6 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add @@ -3782,23 +3770,23 @@ i32.const 2 local.get $7 i32.const 1 - local.get $10 + local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 4 i32.gt_s if - local.get $8 + local.get $6 local.get $5 call $~lib/util/number/dtoa_buffered local.set $0 i32.const 3 global.set $~argumentsLength local.get $7 - local.get $8 + local.get $6 local.get $0 - local.get $8 + local.get $6 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add @@ -3806,18 +3794,18 @@ i32.const 2 local.get $7 i32.const 1 - local.get $10 + local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop end end end end - local.get $8 + local.get $6 i32.const 1 i32.sub else - local.get $9 + local.get $6 end i32.const 10 i32.store8 @@ -3827,7 +3815,7 @@ i32.const 2 local.get $7 i32.const 1 - local.get $10 + local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $7 @@ -3843,7 +3831,7 @@ local.get $7 i32.const 4 i32.sub - local.set $10 + local.set $0 local.get $7 i32.const 15 i32.and @@ -3853,7 +3841,7 @@ if (result i32) i32.const 1 else - local.get $10 + local.get $0 i32.load i32.const 1 i32.and @@ -3866,13 +3854,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $10 - local.get $10 + local.get $0 + local.get $0 i32.load i32.const 1 i32.or i32.store - local.get $10 + local.get $0 call $~lib/rt/tlsf/insertBlock end ) diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index e0f1361365..b0723f6ef8 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func)) - (type $none_=>_i32 (func (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_i32 (func (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 $i32_=>_i32 (func (param i32) (result i32))) @@ -169,16 +169,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1488 i32.load i32.gt_u @@ -190,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -206,26 +206,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -1152,240 +1152,6 @@ end end ) - (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-continue|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-continue|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 $1 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 4 - memory.size - local.tee $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - local.get $1 - i32.load offset=1568 - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.set $2 - local.get $0 - local.get $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 $1 - local.get $0 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $1 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1440 - 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 1440 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $2 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $0 - i32.const 32 - i32.add - local.tee $2 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $2 - i32.const -2 - i32.and - i32.store - local.get $0 - i32.const 4 - i32.add - local.tee $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $0 - i32.const 3 - 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 $1 - local.get $0 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - 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 $0 - i32.const 20 - i32.add - ) (func $start:while (local $0 i32) (local $1 i32) @@ -1915,6 +1681,10 @@ ) (func $while/Ref#constructor (result i32) (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 @@ -1931,11 +1701,238 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 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-continue|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-continue|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 $1 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 4 + memory.size + local.tee $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $1 + i32.load offset=1568 + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $0 + local.get $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 $1 + local.get $0 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $1 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1440 + 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 1440 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $2 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $2 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $1 + local.get $2 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $2 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.tee $1 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.get $1 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + i32.load + i32.const -3 + i32.and + i32.store + end local.get $0 - call $~lib/rt/itcms/__new + i32.const 3 + 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 $1 + local.get $0 + local.get $2 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + 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 $3 + local.get $0 + i32.const 20 + i32.add local.tee $0 i32.store global.get $~lib/memory/__stack_pointer From 6d684f8c942d4a3ec90af7a277f81e7bf27d4bae Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Tue, 10 Aug 2021 14:09:33 +0300 Subject: [PATCH 2/5] better --- src/module.ts | 7 +- tests/compiler/binary.optimized.wat | 8 +- tests/compiler/call-super.optimized.wat | 1040 +- tests/compiler/class-implements.optimized.wat | 113 +- .../class-overloading-cast.optimized.wat | 165 +- .../compiler/class-overloading.optimized.wat | 283 +- tests/compiler/class.optimized.wat | 293 +- tests/compiler/constructor.optimized.wat | 224 +- tests/compiler/do.optimized.wat | 125 +- .../empty-exportruntime.optimized.wat | 208 +- tests/compiler/empty-new.optimized.wat | 113 +- tests/compiler/exports.optimized.wat | 129 +- .../exportstar-rereexport.optimized.wat | 519 +- .../extends-baseaggregate.optimized.wat | 840 +- .../compiler/extends-recursive.optimized.wat | 232 +- tests/compiler/features/simd.optimized.wat | 177 +- .../field-initialization.optimized.wat | 193 +- tests/compiler/for.optimized.wat | 125 +- tests/compiler/function-call.optimized.wat | 132 +- .../function-expression.optimized.wat | 850 +- tests/compiler/getter-call.optimized.wat | 131 +- tests/compiler/heap.optimized.wat | 418 +- .../implicit-getter-setter.optimized.wat | 208 +- tests/compiler/infer-array.optimized.wat | 532 +- tests/compiler/infer-generic.optimized.wat | 620 +- tests/compiler/inlining.optimized.wat | 224 +- tests/compiler/instanceof-class.optimized.wat | 113 +- tests/compiler/issues/1095.optimized.wat | 637 +- tests/compiler/issues/1225.optimized.wat | 209 +- tests/compiler/issues/1699.optimized.wat | 708 +- tests/compiler/logical.optimized.wat | 125 +- tests/compiler/loop-flow.optimized.wat | 30 +- tests/compiler/managed-cast.optimized.wat | 141 +- tests/compiler/memcpy.optimized.wat | 308 +- tests/compiler/memset.optimized.wat | 390 +- tests/compiler/new.optimized.wat | 113 +- tests/compiler/number.optimized.wat | 591 +- tests/compiler/object-literal.optimized.wat | 609 +- .../optional-typeparameters.optimized.wat | 113 +- tests/compiler/reexport.optimized.wat | 129 +- tests/compiler/rereexport.optimized.wat | 515 +- tests/compiler/resolve-access.optimized.wat | 697 +- tests/compiler/resolve-binary.optimized.wat | 598 +- .../resolve-elementaccess.optimized.wat | 836 +- .../resolve-function-expression.optimized.wat | 901 +- tests/compiler/resolve-nested.optimized.wat | 113 +- tests/compiler/resolve-new.optimized.wat | 125 +- .../resolve-propertyaccess.optimized.wat | 283 +- tests/compiler/resolve-ternary.optimized.wat | 602 +- tests/compiler/resolve-unary.optimized.wat | 283 +- tests/compiler/rt/finalize.optimized.wat | 125 +- tests/compiler/rt/flags.optimized.wat | 4 +- tests/compiler/rt/instanceof.optimized.wat | 137 +- .../runtime-incremental-export.optimized.wat | 208 +- .../rt/runtime-minimal-export.optimized.wat | 154 +- .../rt/runtime-stub-export.optimized.wat | 49 +- tests/compiler/std-wasi/console.optimized.wat | 382 +- tests/compiler/std-wasi/crypto.optimized.wat | 1525 +- tests/compiler/std-wasi/process.optimized.wat | 962 +- tests/compiler/std/array-access.optimized.wat | 36 +- .../compiler/std/array-literal.optimized.wat | 367 +- tests/compiler/std/array.optimized.wat | 10111 ++++++------ tests/compiler/std/arraybuffer.optimized.wat | 503 +- tests/compiler/std/dataview.optimized.wat | 334 +- tests/compiler/std/date.optimized.wat | 913 +- tests/compiler/std/map.optimized.wat | 7036 ++++---- tests/compiler/std/math.optimized.wat | 5748 ++++--- tests/compiler/std/new.optimized.wat | 290 +- .../std/operator-overloading.optimized.wat | 447 +- tests/compiler/std/pointer.optimized.wat | 348 +- tests/compiler/std/set.optimized.wat | 1787 +- tests/compiler/std/static-array.optimized.wat | 1742 +- tests/compiler/std/staticarray.optimized.wat | 696 +- .../std/string-casemapping.optimized.wat | 756 +- .../std/string-encoding.optimized.wat | 1313 +- tests/compiler/std/string.optimized.wat | 892 +- tests/compiler/std/symbol.optimized.wat | 846 +- tests/compiler/std/typedarray.optimized.wat | 13710 ++++++++-------- tests/compiler/std/uri.optimized.wat | 654 +- tests/compiler/super-inline.optimized.wat | 127 +- tests/compiler/templateliteral.optimized.wat | 820 +- tests/compiler/throw.optimized.wat | 68 +- tests/compiler/typeof.optimized.wat | 153 +- tests/compiler/wasi/abort.optimized.wat | 30 +- tests/compiler/wasi/seed.optimized.wat | 36 +- tests/compiler/wasi/trace.optimized.wat | 891 +- tests/compiler/while.optimized.wat | 125 +- 87 files changed, 35147 insertions(+), 36256 deletions(-) diff --git a/src/module.ts b/src/module.ts index c3e9877a4e..d531351b7a 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2260,15 +2260,12 @@ export class Module { if (optimizeLevel >= 3) { passes.push("flatten"); passes.push("vacuum"); + passes.push("local-cse"); passes.push("simplify-locals-notee-nostructure"); passes.push("merge-locals"); - - passes.push("code-folding"); - passes.push("flatten"); - passes.push("vacuum"); - passes.push("local-cse"); passes.push("reorder-locals"); passes.push("dae-optimizing"); + passes.push("code-folding"); } passes.push("optimize-instructions"); if (optimizeLevel >= 3 || shrinkLevel >= 1) { diff --git a/tests/compiler/binary.optimized.wat b/tests/compiler/binary.optimized.wat index 5689d17f10..995c5d8b3d 100644 --- a/tests/compiler/binary.optimized.wat +++ b/tests/compiler/binary.optimized.wat @@ -164,7 +164,9 @@ global.set $binary/i i32.const 1 global.set $binary/i - i32.const 0 + global.get $binary/i + i32.const 1 + i32.xor global.set $binary/i global.get $binary/i i32.const 1 @@ -210,7 +212,9 @@ global.set $binary/I i64.const 1 global.set $binary/I - i64.const 0 + global.get $binary/I + i64.const 1 + i64.xor global.set $binary/I global.get $binary/I i64.const 1 diff --git a/tests/compiler/call-super.optimized.wat b/tests/compiler/call-super.optimized.wat index f008c16cf2..72a5867cfb 100644 --- a/tests/compiler/call-super.optimized.wat +++ b/tests/compiler/call-super.optimized.wat @@ -169,16 +169,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1488 i32.load i32.gt_u @@ -190,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1492 @@ -206,26 +206,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -334,8 +334,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -343,11 +341,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -355,25 +354,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -582,7 +582,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -590,6 +589,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -605,7 +605,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -613,6 +612,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -667,11 +667,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1440 @@ -695,11 +695,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1440 @@ -859,17 +859,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -929,15 +929,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1065,12 +1065,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1110,13 +1108,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1156,10 +1154,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1168,7 +1166,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1177,6 +1174,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1190,12 +1188,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1208,7 +1206,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1217,6 +1214,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1296,7 +1294,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $3 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1308,7 +1306,6 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $2 i32.const 12 i32.le_u @@ -1325,9 +1322,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if + memory.size + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1346,14 +1345,13 @@ local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $3 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1363,18 +1361,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1382,18 +1378,18 @@ unreachable end end - local.get $3 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1405,7 +1401,7 @@ end end local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1418,12 +1414,12 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $4 + local.get $3 i32.load - local.set $6 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1437,54 +1433,54 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const -4 i32.and local.get $2 i32.sub - local.tee $5 + local.tee $6 i32.const 16 i32.ge_u if - local.get $4 + local.get $3 local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.and i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add local.tee $2 - local.get $5 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $3 local.get $4 - local.get $6 i32.const -2 i32.and i32.store - local.get $4 + local.get $3 i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1494,37 +1490,37 @@ i32.and i32.store end - local.get $4 + local.get $3 local.get $1 i32.store offset=12 - local.get $4 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $4 - local.get $1 + local.set $1 + local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $2 - local.get $4 - local.get $2 + local.get $1 + local.get $3 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1532,22 +1528,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.const 20 i32.add - local.tee $2 - local.set $3 + local.tee $3 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $3 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1556,18 +1552,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $3 + 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 @@ -1576,10 +1572,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1588,38 +1584,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 - local.get $3 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1632,20 +1628,20 @@ i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 - local.get $5 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1668,8 +1664,8 @@ i32.sub i32.const 0 i32.store - local.get $5 - local.get $5 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1677,7 +1673,7 @@ local.tee $0 i32.add local.set $1 - local.get $3 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1710,7 +1706,7 @@ end end end - local.get $2 + local.get $3 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -1945,439 +1941,441 @@ 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 - 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-inner1 - 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 - local.tee $2 - 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.store - local.get $0 - i32.eqz - if + block $folding-inner00 global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner00 + 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-inner00 + global.get $~lib/memory/__stack_pointer 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 $2 - 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.store + 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 + local.tee $2 + 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-inner00 + global.get $~lib/memory/__stack_pointer 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 - 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 - 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-inner1 - 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 - local.tee $2 - 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.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 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 $2 + 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 + 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-inner00 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-inner00 + 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 + local.tee $2 + 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-inner00 + 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 $2 - 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-inner1 - 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-inner1 - 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 - local.tee $2 - 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.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 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.const 10 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + 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-inner00 + 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-inner00 + 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 - 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 $2 - 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 + local.tee $2 + 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-inner00 + 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-inner1 - 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-inner1 - 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 - local.tee $2 - 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.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 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 $2 + 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.const 12 + 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.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-inner00 + 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-inner00 + 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 $2 - 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 + global.get $~lib/memory/__stack_pointer + local.tee $2 + 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-inner00 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1056 - i32.const 105 - 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 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.add + global.set $~lib/memory/__stack_pointer + local.get $2 + 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 - 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 diff --git a/tests/compiler/class-implements.optimized.wat b/tests/compiler/class-implements.optimized.wat index ba0b9e3499..c5628d6b92 100644 --- a/tests/compiler/class-implements.optimized.wat +++ b/tests/compiler/class-implements.optimized.wat @@ -191,16 +191,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1504 i32.load i32.gt_u @@ -212,7 +212,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1508 @@ -228,26 +228,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -356,8 +356,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -365,11 +363,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -377,25 +376,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -604,7 +604,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -612,6 +611,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -627,7 +627,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -635,6 +634,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -689,11 +689,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -717,11 +717,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -881,17 +881,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -951,15 +951,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1087,12 +1087,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1230,20 +1228,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if - i32.const 4 memory.size - local.tee $1 + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1252,18 +1251,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1271,15 +1268,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1306,12 +1303,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1321,7 +1318,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1330,19 +1327,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1373,26 +1370,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 + local.get $2 local.get $1 - local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total diff --git a/tests/compiler/class-overloading-cast.optimized.wat b/tests/compiler/class-overloading-cast.optimized.wat index ae88e9a3f0..c8b9ce396a 100644 --- a/tests/compiler/class-overloading-cast.optimized.wat +++ b/tests/compiler/class-overloading-cast.optimized.wat @@ -205,16 +205,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1616 i32.load i32.gt_u @@ -226,7 +226,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1620 @@ -242,26 +242,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -370,8 +370,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -379,11 +377,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -391,25 +390,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -618,7 +618,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -626,6 +625,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -641,7 +641,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -649,6 +648,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -703,11 +703,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -731,11 +731,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -895,17 +895,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -965,15 +965,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1101,12 +1101,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1244,20 +1242,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if - i32.const 4 memory.size - local.tee $1 + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1266,18 +1265,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1285,15 +1282,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1320,12 +1317,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1335,7 +1332,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1344,19 +1341,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1387,26 +1384,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 + local.get $2 local.get $1 - local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1601,11 +1598,11 @@ i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1700 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -1652,7 +1649,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1700 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -1680,7 +1677,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1700 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -1708,7 +1705,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1700 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -1726,7 +1723,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1700 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -1759,23 +1756,29 @@ i32.store offset=8 local.get $0 block $__inlined_func$class-overloading-cast/A#foo@virtual (result i32) - block $folding-inner0 - local.get $1 - i32.const 8 - i32.sub - i32.load - local.tee $1 - i32.const 3 - i32.eq - br_if $folding-inner0 - local.get $1 - i32.const 5 - i32.eq - br_if $folding-inner0 - i32.const 1456 + block $default + block $case1 + local.get $1 + i32.const 8 + i32.sub + i32.load + local.tee $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 5 + i32.eq + br_if $case1 + br $default + end + i32.const 1488 + br $__inlined_func$class-overloading-cast/A#foo@virtual + end + i32.const 1488 br $__inlined_func$class-overloading-cast/A#foo@virtual end - i32.const 1488 + i32.const 1456 end local.tee $1 i32.store @@ -1855,7 +1858,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1700 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -1873,7 +1876,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1700 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store diff --git a/tests/compiler/class-overloading.optimized.wat b/tests/compiler/class-overloading.optimized.wat index b9dfac170d..e62c19da1c 100644 --- a/tests/compiler/class-overloading.optimized.wat +++ b/tests/compiler/class-overloading.optimized.wat @@ -229,16 +229,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1792 i32.load i32.gt_u @@ -250,7 +250,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1796 @@ -266,26 +266,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -394,8 +394,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -403,11 +401,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -415,25 +414,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -642,7 +642,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -650,6 +649,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -665,7 +665,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -673,6 +672,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -727,11 +727,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1424 @@ -755,11 +755,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1424 @@ -919,17 +919,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -989,15 +989,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1125,12 +1125,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1268,20 +1266,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if - i32.const 4 memory.size - local.tee $1 + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1290,18 +1289,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1309,15 +1306,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1344,12 +1341,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1359,7 +1356,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1368,19 +1365,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1411,26 +1408,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 + local.get $2 local.get $1 - local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1721,11 +1718,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1932 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1959,7 +1956,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1932 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -2225,30 +2222,30 @@ 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 + block $__inlined_func$class-overloading/A#b@virtual39 + block $default40 + block $case241 + block $case142 + block $case043 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case044 $case143 $case044 $case044 $case242 $default41 + br_table $case043 $case142 $case043 $case043 $case241 $default40 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual40 + br $__inlined_func$class-overloading/A#b@virtual39 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual40 + br $__inlined_func$class-overloading/A#b@virtual39 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual40 + br $__inlined_func$class-overloading/A#b@virtual39 end i32.const 1488 global.set $class-overloading/which @@ -2310,30 +2307,30 @@ 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 + block $__inlined_func$class-overloading/A#b@virtual48 + block $default49 + block $case250 + block $case151 + block $case052 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case053 $case152 $case053 $case053 $case251 $default50 + br_table $case052 $case151 $case052 $case052 $case250 $default49 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual49 + br $__inlined_func$class-overloading/A#b@virtual48 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual49 + br $__inlined_func$class-overloading/A#b@virtual48 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual49 + br $__inlined_func$class-overloading/A#b@virtual48 end i32.const 1488 global.set $class-overloading/which @@ -2364,30 +2361,30 @@ 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 + block $__inlined_func$class-overloading/A#get:c@virtual57 + block $default58 + block $case259 + block $case160 + block $case061 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case062 $case161 $case062 $case062 $case260 $default59 + br_table $case061 $case160 $case061 $case061 $case259 $default58 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual58 + br $__inlined_func$class-overloading/A#get:c@virtual57 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual58 + br $__inlined_func$class-overloading/A#get:c@virtual57 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual58 + br $__inlined_func$class-overloading/A#get:c@virtual57 end i32.const 1488 global.set $class-overloading/which @@ -2416,30 +2413,30 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual68 - block $default69 - block $case270 - block $case171 - block $case072 + block $__inlined_func$class-overloading/A#b@virtual66 + block $default67 + block $case268 + block $case169 + block $case070 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case072 $case171 $case072 $case072 $case270 $default69 + br_table $case070 $case169 $case070 $case070 $case268 $default67 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual68 + br $__inlined_func$class-overloading/A#b@virtual66 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual68 + br $__inlined_func$class-overloading/A#b@virtual66 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual68 + br $__inlined_func$class-overloading/A#b@virtual66 end i32.const 1488 global.set $class-overloading/which @@ -2471,7 +2468,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1932 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -2526,30 +2523,30 @@ 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 + block $__inlined_func$class-overloading/A#b@virtual75 + block $default76 + block $case277 + block $case178 + block $case079 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case081 $case180 $case081 $case081 $case279 $default78 + br_table $case079 $case178 $case079 $case079 $case277 $default76 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual77 + br $__inlined_func$class-overloading/A#b@virtual75 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual77 + br $__inlined_func$class-overloading/A#b@virtual75 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual77 + br $__inlined_func$class-overloading/A#b@virtual75 end i32.const 1488 global.set $class-overloading/which @@ -2580,30 +2577,30 @@ 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 + block $__inlined_func$class-overloading/A#get:c@virtual84 + block $default85 + block $case286 + block $case187 + block $case088 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case090 $case189 $case090 $case090 $case288 $default87 + br_table $case088 $case187 $case088 $case088 $case286 $default85 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual86 + br $__inlined_func$class-overloading/A#get:c@virtual84 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual86 + br $__inlined_func$class-overloading/A#get:c@virtual84 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual86 + br $__inlined_func$class-overloading/A#get:c@virtual84 end i32.const 1488 global.set $class-overloading/which @@ -2634,30 +2631,30 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual96 - block $default97 - block $case298 - block $case199 - block $case0100 + block $__inlined_func$class-overloading/A#b@virtual93 + block $default94 + block $case295 + block $case196 + block $case097 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case0100 $case199 $case0100 $case0100 $case298 $default97 + br_table $case097 $case196 $case097 $case097 $case295 $default94 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual96 + br $__inlined_func$class-overloading/A#b@virtual93 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual96 + br $__inlined_func$class-overloading/A#b@virtual93 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual96 + br $__inlined_func$class-overloading/A#b@virtual93 end i32.const 1488 global.set $class-overloading/which @@ -2689,7 +2686,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1932 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -2712,8 +2709,8 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/IA#foo@virtual - block $default105 - block $case1106 + block $default102 + block $case1103 local.get $0 i32.const 8 i32.sub @@ -2725,8 +2722,8 @@ local.get $0 i32.const 12 i32.eq - br_if $case1106 - br $default105 + br_if $case1103 + br $default102 end i32.const 1680 global.set $class-overloading/which @@ -2765,7 +2762,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1932 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -2787,9 +2784,9 @@ global.get $class-overloading/ic local.tee $0 i32.store - block $__inlined_func$class-overloading/IA#foo@virtual108 - block $default109 - block $case1110 + block $__inlined_func$class-overloading/IA#foo@virtual105 + block $default106 + block $case1107 local.get $0 i32.const 8 i32.sub @@ -2801,16 +2798,16 @@ local.get $0 i32.const 12 i32.eq - br_if $case1110 - br $default109 + br_if $case1107 + br $default106 end i32.const 1680 global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@virtual108 + br $__inlined_func$class-overloading/IA#foo@virtual105 end i32.const 1712 global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@virtual108 + br $__inlined_func$class-overloading/IA#foo@virtual105 end unreachable end @@ -2841,7 +2838,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1932 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -2859,7 +2856,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1932 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -2904,7 +2901,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1932 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -2916,7 +2913,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1932 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -2934,7 +2931,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1932 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store diff --git a/tests/compiler/class.optimized.wat b/tests/compiler/class.optimized.wat index 0b6c9e7911..2baea073da 100644 --- a/tests/compiler/class.optimized.wat +++ b/tests/compiler/class.optimized.wat @@ -162,16 +162,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1536 i32.load i32.gt_u @@ -183,7 +183,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1540 @@ -199,26 +199,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -346,8 +346,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -355,11 +353,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -367,25 +366,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -594,7 +594,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -602,6 +601,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -617,7 +617,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -625,6 +624,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -679,11 +679,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -707,11 +707,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -871,17 +871,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -941,15 +941,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1077,12 +1077,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1122,13 +1120,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1168,10 +1166,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1180,7 +1178,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1189,6 +1186,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1202,12 +1200,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1220,7 +1218,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1229,6 +1226,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1435,12 +1433,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1456,14 +1454,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1477,14 +1475,15 @@ local.get $0 i32.const 16 i32.add - local.set $6 + 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 $6 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1495,14 +1494,13 @@ call $~lib/builtins/abort unreachable end - local.tee $2 - local.get $6 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $6 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1510,19 +1508,21 @@ i32.const 4 i32.sub end - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if - local.get $3 + memory.size + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl @@ -1530,17 +1530,16 @@ i32.sub i32.add else - local.get $3 + local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1550,18 +1549,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1569,18 +1566,18 @@ unreachable end end - local.get $2 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if i32.const 0 @@ -1591,8 +1588,8 @@ unreachable end end + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1605,13 +1602,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $6 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $6 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1624,54 +1621,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $6 local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $2 local.get $3 - local.get $6 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $6 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $6 + local.get $3 i32.const 4 i32.add - local.tee $3 - local.get $6 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1681,37 +1678,37 @@ i32.and i32.store end - local.get $6 + local.get $3 local.get $1 i32.store offset=12 - local.get $6 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 local.set $1 - local.get $6 local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $6 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $6 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $6 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.load i32.const -4 i32.and @@ -1719,7 +1716,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -1727,58 +1724,57 @@ call $~lib/memory/memory.fill local.get $1 ) - (func $class/GenericInitializer#set:foo (param $0 i32) (param $1 i32) - local.get $0 + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 - i32.store + i32.eqz + if + return + end + 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.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 + 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 + i32.const 0 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 + select if local.get $1 call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - i32.const 0 - local.get $0 - i32.const 3 - i32.eq - select - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end end end end @@ -1797,14 +1793,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 4 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -1826,7 +1822,10 @@ i32.store local.get $0 i32.const 0 - call $class/GenericInitializer#set:foo + i32.store + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link local.get $0 i32.const 0 i32.store offset=4 @@ -1840,16 +1839,19 @@ i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 32 call $~lib/memory/memory.fill local.get $0 - local.get $2 - call $class/GenericInitializer#set:foo + local.get $1 + i32.store local.get $0 - local.get $2 + local.get $1 + call $~lib/rt/itcms/__link + local.get $0 + local.get $1 i32.store offset=4 local.get $0 i32.const 32 @@ -1861,9 +1863,12 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 + local.get $0 + i32.store + local.get $2 local.get $0 - call $class/GenericInitializer#set:foo + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add diff --git a/tests/compiler/constructor.optimized.wat b/tests/compiler/constructor.optimized.wat index beef042d0d..a6faec749c 100644 --- a/tests/compiler/constructor.optimized.wat +++ b/tests/compiler/constructor.optimized.wat @@ -246,16 +246,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1488 i32.load i32.gt_u @@ -267,7 +267,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1492 @@ -283,26 +283,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -411,8 +411,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -420,11 +418,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -432,25 +431,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -659,7 +659,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -667,6 +666,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -682,7 +682,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -690,6 +689,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -744,11 +744,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -772,11 +772,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -936,17 +936,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1006,15 +1006,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1142,12 +1142,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1187,13 +1185,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1233,10 +1231,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1245,7 +1243,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1254,6 +1251,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1267,12 +1265,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1285,7 +1283,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1294,6 +1291,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1373,7 +1371,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $3 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1385,7 +1383,6 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $2 i32.const 12 i32.le_u @@ -1402,9 +1399,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if + memory.size + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1423,14 +1422,13 @@ local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $3 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1440,18 +1438,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1459,18 +1455,18 @@ unreachable end end - local.get $3 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1482,7 +1478,7 @@ end end local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1495,12 +1491,12 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $4 + local.get $3 i32.load - local.set $6 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1514,54 +1510,54 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const -4 i32.and local.get $2 i32.sub - local.tee $5 + local.tee $6 i32.const 16 i32.ge_u if - local.get $4 + local.get $3 local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.and i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add local.tee $2 - local.get $5 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $3 local.get $4 - local.get $6 i32.const -2 i32.and i32.store - local.get $4 + local.get $3 i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1571,37 +1567,37 @@ i32.and i32.store end - local.get $4 + local.get $3 local.get $1 i32.store offset=12 - local.get $4 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $4 - local.get $1 + local.set $1 + local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $2 - local.get $4 - local.get $2 + local.get $1 + local.get $3 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1609,22 +1605,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.const 20 i32.add - local.tee $2 - local.set $3 + local.tee $3 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $3 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1633,18 +1629,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $3 + 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 @@ -1653,10 +1649,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1665,38 +1661,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 - local.get $3 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1709,20 +1705,20 @@ i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 - local.get $5 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1745,8 +1741,8 @@ i32.sub i32.const 0 i32.store - local.get $5 - local.get $5 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1754,7 +1750,7 @@ local.tee $0 i32.add local.set $1 - local.get $3 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1787,7 +1783,7 @@ end end end - local.get $2 + local.get $3 ) (func $start:constructor (local $0 i32) diff --git a/tests/compiler/do.optimized.wat b/tests/compiler/do.optimized.wat index e6acfb94a6..417e6cb70c 100644 --- a/tests/compiler/do.optimized.wat +++ b/tests/compiler/do.optimized.wat @@ -169,16 +169,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1472 i32.load i32.gt_u @@ -190,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1476 @@ -206,26 +206,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -334,8 +334,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -343,11 +341,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -355,25 +354,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -582,7 +582,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -590,6 +589,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -605,7 +605,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -613,6 +612,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -667,11 +667,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1424 @@ -695,11 +695,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1424 @@ -859,17 +859,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -929,15 +929,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1065,12 +1065,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1650,7 +1648,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store global.get $~lib/rt/itcms/total @@ -1704,20 +1702,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz if - i32.const 4 memory.size - local.tee $0 + local.tee $1 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $1 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1726,18 +1725,16 @@ i32.and i32.const 16 i32.shr_u - local.set $2 - local.get $0 - local.get $2 + local.tee $0 local.get $0 - local.get $2 - i32.gt_s + local.get $1 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $0 memory.grow i32.const 0 i32.lt_s @@ -1745,15 +1742,15 @@ unreachable end end + local.get $2 local.get $1 - local.get $0 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $1 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1780,22 +1777,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load - local.tee $2 + local.tee $1 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 $0 - local.get $2 + local.get $1 i32.const 2 i32.and i32.const 28 @@ -1804,19 +1801,19 @@ local.get $0 i32.const 32 i32.add - local.tee $2 - local.get $4 + local.tee $1 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $1 local.get $2 + local.get $1 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $2 + local.get $1 i32.const -2 i32.and i32.store @@ -1847,26 +1844,26 @@ 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 $1 + local.set $3 local.get $0 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 local.get $0 - local.get $1 + local.get $3 i32.load offset=4 i32.const 3 i32.and 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 @@ -1878,16 +1875,16 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $4 local.get $0 i32.const 20 i32.add - local.tee $0 + local.tee $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 $4 ) ) diff --git a/tests/compiler/empty-exportruntime.optimized.wat b/tests/compiler/empty-exportruntime.optimized.wat index 3bbf08ee89..6ddfa285f3 100644 --- a/tests/compiler/empty-exportruntime.optimized.wat +++ b/tests/compiler/empty-exportruntime.optimized.wat @@ -134,11 +134,11 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 ) @@ -152,7 +152,7 @@ if local.get $0 i32.load offset=8 - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -162,7 +162,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 global.set $~lib/rt/itcms/iter end local.get $0 @@ -352,8 +352,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -361,11 +359,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -373,25 +372,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -600,7 +600,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -608,6 +607,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -623,7 +623,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -631,6 +630,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -685,11 +685,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -713,11 +713,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -877,17 +877,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -947,15 +947,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1083,12 +1083,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1128,13 +1126,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1174,10 +1172,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1186,7 +1184,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1195,6 +1192,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1208,12 +1206,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1226,7 +1224,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1235,6 +1232,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1314,7 +1312,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $3 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1326,7 +1324,6 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $2 i32.const 12 i32.le_u @@ -1343,9 +1340,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if + memory.size + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1364,14 +1363,13 @@ local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $3 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1381,18 +1379,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1400,18 +1396,18 @@ unreachable end end - local.get $3 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1423,7 +1419,7 @@ end end local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1436,12 +1432,12 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $4 + local.get $3 i32.load - local.set $6 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1455,54 +1451,54 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const -4 i32.and local.get $2 i32.sub - local.tee $5 + local.tee $6 i32.const 16 i32.ge_u if - local.get $4 + local.get $3 local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.and i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add local.tee $2 - local.get $5 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $3 local.get $4 - local.get $6 i32.const -2 i32.and i32.store - local.get $4 + local.get $3 i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1512,37 +1508,37 @@ i32.and i32.store end - local.get $4 + local.get $3 local.get $1 i32.store offset=12 - local.get $4 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $4 - local.get $1 + local.set $1 + local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $2 - local.get $4 - local.get $2 + local.get $1 + local.get $3 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1550,22 +1546,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.const 20 i32.add - local.tee $2 - local.set $3 + local.tee $3 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $3 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1574,18 +1570,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $3 + 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 @@ -1594,10 +1590,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1606,38 +1602,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 - local.get $3 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1650,20 +1646,20 @@ i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 - local.get $5 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1686,8 +1682,8 @@ i32.sub i32.const 0 i32.store - local.get $5 - local.get $5 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1695,7 +1691,7 @@ local.tee $0 i32.add local.set $1 - local.get $3 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1728,7 +1724,7 @@ end end end - local.get $2 + local.get $3 ) (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/empty-new.optimized.wat b/tests/compiler/empty-new.optimized.wat index 5d46d6c636..736b574d4e 100644 --- a/tests/compiler/empty-new.optimized.wat +++ b/tests/compiler/empty-new.optimized.wat @@ -165,16 +165,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1440 i32.load i32.gt_u @@ -186,7 +186,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1444 @@ -202,26 +202,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -330,8 +330,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -339,11 +337,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -351,25 +350,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -578,7 +578,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -586,6 +585,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -601,7 +601,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -609,6 +608,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -663,11 +663,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -691,11 +691,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -855,17 +855,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -925,15 +925,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1061,12 +1061,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1262,20 +1260,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz if - i32.const 4 memory.size - local.tee $0 + local.tee $1 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $1 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1284,18 +1283,16 @@ i32.and i32.const 16 i32.shr_u - local.set $2 - local.get $0 - local.get $2 + local.tee $0 local.get $0 - local.get $2 - i32.gt_s + local.get $1 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $0 memory.grow i32.const 0 i32.lt_s @@ -1303,15 +1300,15 @@ unreachable end end + local.get $2 local.get $1 - local.get $0 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $1 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1338,12 +1335,12 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load - local.tee $2 + local.tee $1 i32.const -4 i32.and i32.const 28 @@ -1353,7 +1350,7 @@ i32.ge_u if local.get $0 - local.get $2 + local.get $1 i32.const 2 i32.and i32.const 28 @@ -1362,19 +1359,19 @@ local.get $0 i32.const 32 i32.add - local.tee $2 + local.tee $1 local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $1 local.get $2 + local.get $1 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $2 + local.get $1 i32.const -2 i32.and i32.store @@ -1405,26 +1402,26 @@ 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 $1 + local.set $3 local.get $0 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 local.get $0 - local.get $1 + local.get $3 i32.load offset=4 i32.const 3 i32.and 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 diff --git a/tests/compiler/exports.optimized.wat b/tests/compiler/exports.optimized.wat index 200ec02070..b30733f2f6 100644 --- a/tests/compiler/exports.optimized.wat +++ b/tests/compiler/exports.optimized.wat @@ -219,16 +219,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1440 i32.load i32.gt_u @@ -240,7 +240,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1444 @@ -256,26 +256,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -384,8 +384,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -393,11 +391,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -405,25 +404,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -632,7 +632,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -640,6 +639,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -655,7 +655,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -663,6 +662,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -717,11 +717,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -745,11 +745,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -909,17 +909,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -979,15 +979,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1115,12 +1115,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1258,20 +1256,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if - i32.const 4 memory.size - local.tee $1 + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1280,18 +1279,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1299,15 +1296,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1334,12 +1331,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1349,7 +1346,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1358,19 +1355,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1401,26 +1398,26 @@ i32.const 4 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 + local.get $2 local.get $1 - local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1435,34 +1432,34 @@ local.get $1 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 $0 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 ) (func $export/mul (param $0 i32) (param $1 i32) (result i32) local.get $0 diff --git a/tests/compiler/exportstar-rereexport.optimized.wat b/tests/compiler/exportstar-rereexport.optimized.wat index 5083b1fe5f..0a8f440f3c 100644 --- a/tests/compiler/exportstar-rereexport.optimized.wat +++ b/tests/compiler/exportstar-rereexport.optimized.wat @@ -1,9 +1,9 @@ (module (type $none_=>_none (func)) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_i32 (func (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 $i32_=>_i32 (func (param i32) (result i32))) @@ -220,16 +220,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1536 i32.load i32.gt_u @@ -241,7 +241,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1540 @@ -257,26 +257,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -385,8 +385,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -394,11 +392,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -406,25 +405,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -633,7 +633,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -641,6 +640,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -656,7 +656,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -664,6 +663,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -718,11 +718,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1440 @@ -746,11 +746,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1440 @@ -910,17 +910,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -980,15 +980,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1116,12 +1116,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1203,11 +1201,199 @@ end end ) - (func $~lib/rt/itcms/__new (result i32) + (func $export-default/theDefault + nop + ) + (func $export/sub (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $exports/Car + 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 $exports/Car $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return + end + return + end + unreachable + ) + (func $~start + (local $0 i32) + block $__inlined_func$start:exportstar-rereexport + 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 + 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 + 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 + i32.const 17984 + i32.const 18032 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $exports/Car#constructor (result i32) (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 + global.get $~lib/memory/__stack_pointer + i32.const 1572 + i32.lt_s + if + i32.const 17984 + i32.const 18032 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + i32.const 0 + i32.store global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1259,20 +1445,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz if - i32.const 4 memory.size - local.tee $0 + local.tee $1 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $1 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1281,18 +1468,16 @@ i32.and i32.const 16 i32.shr_u - local.set $2 - local.get $0 - local.get $2 + local.tee $0 local.get $0 - local.get $2 - i32.gt_s + local.get $1 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $0 memory.grow i32.const 0 i32.lt_s @@ -1300,15 +1485,15 @@ unreachable end end + local.get $2 local.get $1 - local.get $0 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $1 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1335,12 +1520,12 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load - local.tee $2 + local.tee $1 i32.const -4 i32.and i32.const 28 @@ -1350,7 +1535,7 @@ i32.ge_u if local.get $0 - local.get $2 + local.get $1 i32.const 2 i32.and i32.const 28 @@ -1359,19 +1544,19 @@ local.get $0 i32.const 32 i32.add - local.tee $2 + local.tee $1 local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $1 local.get $2 + local.get $1 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $2 + local.get $1 i32.const -2 i32.and i32.store @@ -1402,26 +1587,26 @@ 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 $1 + local.set $3 local.get $0 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 local.get $0 - local.get $1 + local.get $3 i32.load offset=4 i32.const 3 i32.and 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 @@ -1436,238 +1621,46 @@ local.get $0 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 $0 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 - ) - (func $export-default/theDefault - nop - ) - (func $export/sub (param $0 i32) (param $1 i32) (result i32) - local.get $0 + local.get $4 local.get $1 - i32.sub - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $exports/Car - 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 $exports/Car $invalid - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start - (local $0 i32) - block $__inlined_func$start:exportstar-rereexport - 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 - 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 - 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 - i32.const 17984 - i32.const 18032 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $exports/Car#constructor (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 1572 - i32.lt_s - if - i32.const 17984 - i32.const 18032 - 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 - i32.store - local.get $0 + local.get $1 i32.const 2 i32.store - local.get $0 + local.get $1 i32.const 2 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 ) ) diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index 7191dd4e5a..5a884b401c 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -168,16 +168,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1696 i32.load i32.gt_u @@ -189,7 +189,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1700 @@ -205,26 +205,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -352,8 +352,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -361,11 +359,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -373,25 +372,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -600,7 +600,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -608,6 +607,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -623,7 +623,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -631,6 +630,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -685,11 +685,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1552 @@ -713,11 +713,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1552 @@ -877,17 +877,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -947,15 +947,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1083,12 +1083,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1128,13 +1126,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1174,10 +1172,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1186,7 +1184,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1195,6 +1192,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1208,12 +1206,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1226,7 +1224,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1235,6 +1232,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1441,12 +1439,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1462,14 +1460,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1483,14 +1481,15 @@ local.get $0 i32.const 16 i32.add - local.set $6 + 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 $6 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1501,14 +1500,13 @@ call $~lib/builtins/abort unreachable end - local.tee $2 - local.get $6 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $6 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1516,19 +1514,21 @@ i32.const 4 i32.sub end - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if - local.get $3 + memory.size + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl @@ -1536,17 +1536,16 @@ i32.sub i32.add else - local.get $3 + local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1556,18 +1555,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1575,18 +1572,18 @@ unreachable end end - local.get $2 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if i32.const 0 @@ -1597,8 +1594,8 @@ unreachable end end + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1611,13 +1608,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $6 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $6 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1630,54 +1627,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $6 local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $2 local.get $3 - local.get $6 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $6 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $6 + local.get $3 i32.const 4 i32.add - local.tee $3 - local.get $6 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1687,37 +1684,37 @@ i32.and i32.store end - local.get $6 + local.get $3 local.get $1 i32.store offset=12 - local.get $6 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 local.set $1 - local.get $6 local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $6 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $6 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $6 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.load i32.const -4 i32.and @@ -1725,7 +1722,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -1956,29 +1953,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2000,25 +1995,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2091,25 +2086,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2178,25 +2173,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2236,143 +2231,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2399,63 +2380,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2482,23 +2457,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2563,19 +2536,19 @@ (local $11 i32) i32.const 1180 i32.load - local.tee $9 + local.tee $7 i32.const 1 i32.add - local.tee $10 - local.tee $1 + local.tee $6 + local.tee $3 i32.const 1176 i32.load - local.tee $7 + local.tee $10 i32.const 2 i32.shr_u i32.gt_u if - local.get $1 + local.get $3 i32.const 268435455 i32.gt_u if @@ -2586,43 +2559,40 @@ call $~lib/builtins/abort unreachable end - local.get $7 - i32.const 1 - i32.shl - local.tee $2 - i32.const 1073741820 - i32.lt_u - local.set $5 - local.get $1 - i32.const 8 - local.get $1 - i32.const 8 - i32.gt_u - select - i32.const 2 - i32.shl - local.tee $1 - local.get $2 - i32.const 1073741820 - local.get $5 - select - local.tee $2 - i32.lt_u - local.set $5 + i32.const 1168 + i32.load + local.tee $9 + local.set $1 block $__inlined_func$~lib/rt/itcms/__renew + local.get $10 + i32.const 1 + i32.shl + local.tee $4 + i32.const 1073741820 + local.get $4 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + local.get $3 + i32.const 8 + local.get $3 + i32.const 8 + i32.gt_u + select + i32.const 2 + i32.shl + local.tee $4 local.get $2 - local.get $1 - local.get $5 + local.get $4 + i32.gt_u select local.tee $8 - local.tee $1 - i32.const 1168 - i32.load - local.tee $11 - local.tee $2 + local.tee $3 + local.get $9 i32.const 20 i32.sub - local.tee $3 + local.tee $2 i32.load i32.const -4 i32.and @@ -2630,166 +2600,168 @@ i32.sub i32.le_u if + local.get $2 local.get $3 - local.get $1 i32.store offset=16 + local.get $1 + local.set $5 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $1 local.get $3 + local.get $2 i32.load offset=12 call $~lib/rt/itcms/__new - local.set $5 - local.get $1 + local.tee $5 + local.set $4 local.get $3 + local.get $2 i32.load offset=16 - local.tee $3 - local.get $1 + local.tee $2 + local.get $2 local.get $3 - i32.lt_u + i32.gt_u select - local.set $6 + local.set $11 block $~lib/util/memory/memmove|inlined.0 - local.get $2 - local.get $5 - local.tee $1 + local.get $1 + local.get $4 i32.eq br_if $~lib/util/memory/memmove|inlined.0 - local.get $2 local.get $1 + local.get $4 i32.sub - local.get $6 + local.get $11 i32.sub i32.const 0 - local.get $6 + local.get $11 i32.const 1 i32.shl i32.sub i32.le_u if + local.get $4 local.get $1 - local.get $2 - local.get $6 + local.get $11 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end local.get $1 - local.get $2 - i32.lt_u + local.get $4 + i32.gt_u if - local.get $2 + local.get $1 i32.const 7 i32.and - local.get $1 + local.get $4 i32.const 7 i32.and i32.eq if loop $while-continue|0 - local.get $1 + local.get $4 i32.const 7 i32.and if - local.get $6 + local.get $11 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $6 + local.get $11 i32.const 1 i32.sub - local.set $6 - local.get $1 + local.set $11 + local.get $4 local.tee $3 i32.const 1 i32.add - local.set $1 - local.get $2 - local.tee $4 + local.set $4 + local.get $1 + local.tee $2 i32.const 1 i32.add - local.set $2 + local.set $1 local.get $3 - local.get $4 + local.get $2 i32.load8_u i32.store8 br $while-continue|0 end end loop $while-continue|1 - local.get $6 + local.get $11 i32.const 8 i32.ge_u if + local.get $4 local.get $1 - local.get $2 i64.load i64.store - local.get $6 + local.get $11 i32.const 8 i32.sub - local.set $6 - local.get $1 + local.set $11 + local.get $4 i32.const 8 i32.add - local.set $1 - local.get $2 + local.set $4 + local.get $1 i32.const 8 i32.add - local.set $2 + local.set $1 br $while-continue|1 end end end loop $while-continue|2 - local.get $6 + local.get $11 if - local.get $1 + local.get $4 local.tee $3 i32.const 1 i32.add - local.set $1 - local.get $2 - local.tee $4 + local.set $4 + local.get $1 + local.tee $2 i32.const 1 i32.add - local.set $2 + local.set $1 local.get $3 - local.get $4 + local.get $2 i32.load8_u i32.store8 - local.get $6 + local.get $11 i32.const 1 i32.sub - local.set $6 + local.set $11 br $while-continue|2 end end else - local.get $2 + local.get $1 i32.const 7 i32.and - local.get $1 + local.get $4 i32.const 7 i32.and i32.eq if loop $while-continue|3 - local.get $1 - local.get $6 + local.get $4 + local.get $11 i32.add i32.const 7 i32.and if - local.get $6 + local.get $11 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $1 - local.get $6 + local.get $4 + local.get $11 i32.const 1 i32.sub - local.tee $6 + local.tee $11 i32.add - local.get $2 - local.get $6 + local.get $1 + local.get $11 i32.add i32.load8_u i32.store8 @@ -2797,18 +2769,18 @@ end end loop $while-continue|4 - local.get $6 + local.get $11 i32.const 8 i32.ge_u if - local.get $1 - local.get $6 + local.get $4 + local.get $11 i32.const 8 i32.sub - local.tee $6 + local.tee $11 i32.add - local.get $2 - local.get $6 + local.get $1 + local.get $11 i32.add i64.load i64.store @@ -2817,16 +2789,16 @@ end end loop $while-continue|5 - local.get $6 + local.get $11 if - local.get $1 - local.get $6 + local.get $4 + local.get $11 i32.const 1 i32.sub - local.tee $6 + local.tee $11 i32.add - local.get $2 - local.get $6 + local.get $1 + local.get $11 i32.add i32.load8_u i32.store8 @@ -2835,28 +2807,26 @@ end end end - local.get $5 - local.set $2 end - local.get $2 - local.get $7 + local.get $5 + local.get $10 i32.add local.get $8 - local.get $7 + local.get $10 i32.sub call $~lib/memory/memory.fill - local.get $2 - local.get $11 + local.get $5 + local.get $9 i32.ne if i32.const 1168 - local.get $2 + local.get $5 i32.store i32.const 1172 - local.get $2 + local.get $5 i32.store i32.const 1168 - local.get $2 + local.get $5 i32.const 0 call $~lib/rt/itcms/__link end @@ -2866,7 +2836,7 @@ end i32.const 1172 i32.load - local.get $9 + local.get $7 i32.const 2 i32.shl i32.add @@ -2877,72 +2847,80 @@ i32.const 1 call $~lib/rt/itcms/__link i32.const 1180 - local.get $10 + local.get $6 i32.store ) - (func $~lib/rt/__visit_members (param $0 i32) + (func $~lib/array/Array~visit (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - 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-inner0 $folding-inner0 $folding-inner2 $folding-inner0 $folding-inner2 $folding-inner1 $folding-inner1 $invalid - end - return - end - return - end - unreachable - end - local.get $0 + 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 $0 + local.tee $3 if - local.get $0 + local.get $3 call $~lib/rt/itcms/__visit end - return + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 end - local.get $0 - local.tee $1 - i32.load offset=4 - local.tee $2 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - if - local.get $2 - i32.load - local.tee $0 - if + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/array/Array + 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 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $~lib/array/Array $~lib/array/Array $invalid + end + return + end + return + end local.get $0 - call $~lib/rt/itcms/__visit + call $~lib/array/Array~visit + return end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 + local.get $0 + call $~lib/array/Array~visit + return end + unreachable end - local.get $1 + local.get $0 i32.load - call $~lib/rt/itcms/__visit + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end return end local.get $0 diff --git a/tests/compiler/extends-recursive.optimized.wat b/tests/compiler/extends-recursive.optimized.wat index b502ff0347..9ce7c18a23 100644 --- a/tests/compiler/extends-recursive.optimized.wat +++ b/tests/compiler/extends-recursive.optimized.wat @@ -157,16 +157,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1440 i32.load i32.gt_u @@ -178,7 +178,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1444 @@ -194,26 +194,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -341,8 +341,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -350,11 +348,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -362,25 +361,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -589,7 +589,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -597,6 +596,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -612,7 +612,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -620,6 +619,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -674,11 +674,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -702,11 +702,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -866,17 +866,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -936,15 +936,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1072,12 +1072,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1215,20 +1213,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if - i32.const 4 memory.size - local.tee $1 + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1237,18 +1236,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1256,15 +1253,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1291,12 +1288,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1306,7 +1303,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1315,19 +1312,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1358,26 +1355,26 @@ i32.const 4 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 + local.get $2 local.get $1 - local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1392,87 +1389,86 @@ local.get $1 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 $0 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 ) - (func $extends-recursive/Parent#set:child (param $0 i32) (param $1 i32) - local.get $0 + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 - i32.store + i32.eqz + if + return + end + 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.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 + 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 + i32.const 0 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 + select if local.get $1 call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - i32.const 0 - local.get $0 - i32.const 3 - i32.eq - select - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end end end end @@ -1480,26 +1476,16 @@ (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 block $invalid - block $extends-recursive/Child - 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 $extends-recursive/Child $folding-inner0 $invalid - end - return + 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 $invalid end return end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end return end unreachable @@ -1600,7 +1586,10 @@ i32.store offset=4 local.get $0 local.get $1 - call $extends-recursive/Parent#set:child + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -1664,7 +1653,10 @@ end local.get $0 i32.const 0 - call $extends-recursive/Parent#set:child + i32.store + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add diff --git a/tests/compiler/features/simd.optimized.wat b/tests/compiler/features/simd.optimized.wat index 157f04d2a6..63934390d5 100644 --- a/tests/compiler/features/simd.optimized.wat +++ b/tests/compiler/features/simd.optimized.wat @@ -1,9 +1,10 @@ (module (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_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -116,8 +117,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -125,11 +124,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -137,25 +137,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -364,7 +365,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -372,6 +372,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -387,7 +388,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -395,6 +395,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -449,11 +450,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1056 @@ -477,11 +478,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1056 @@ -626,13 +627,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -672,10 +673,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -684,7 +685,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -693,6 +693,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -706,12 +707,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -724,7 +725,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -733,6 +733,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -740,11 +741,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - local.get $1 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $1 + local.get $0 i32.const 1073741820 i32.gt_u if @@ -756,14 +765,12 @@ unreachable end local.get $0 - local.tee $2 - local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -773,9 +780,11 @@ end local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if + memory.size + local.tee $3 local.get $0 i32.const 536870910 i32.lt_u @@ -794,14 +803,13 @@ local.get $0 end i32.const 4 - memory.size - local.tee $1 + local.get $1 + i32.load offset=1568 + local.get $3 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -811,18 +819,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 - local.get $1 + local.tee $2 + local.get $2 local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -830,18 +836,18 @@ unreachable end end - local.get $2 local.get $1 + local.get $3 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -853,7 +859,7 @@ end end local.get $0 - local.get $1 + local.get $2 i32.load i32.const -4 i32.and @@ -866,12 +872,15 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 + local.get $2 call $~lib/rt/tlsf/removeBlock local.get $1 - i32.load local.set $3 + local.get $2 + local.tee $1 + i32.load + local.set $2 local.get $0 i32.const 4 i32.add @@ -885,7 +894,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const -4 i32.and local.get $0 @@ -896,7 +905,7 @@ if local.get $1 local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.or @@ -913,12 +922,12 @@ i32.const 1 i32.or i32.store - local.get $2 + local.get $3 local.get $0 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -943,6 +952,8 @@ i32.store end local.get $1 + i32.const 4 + i32.add ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) @@ -987,44 +998,26 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock ) (func $~start (local $0 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 64 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 local.get $0 v128.load offset=16 v128.store offset=32 local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i32.const 42 i32.store8 @@ -1044,16 +1037,8 @@ end local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i32.const 42 i32.store16 @@ -1073,16 +1058,8 @@ end local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i32.const 42 i32.store @@ -1102,16 +1079,8 @@ end local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i64.const 42 i64.store @@ -1131,16 +1100,8 @@ end local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i32.const 42 i32.store @@ -1160,16 +1121,8 @@ end local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i64.const 42 i64.store diff --git a/tests/compiler/field-initialization.optimized.wat b/tests/compiler/field-initialization.optimized.wat index 941e69e2d8..c3a8346b09 100644 --- a/tests/compiler/field-initialization.optimized.wat +++ b/tests/compiler/field-initialization.optimized.wat @@ -175,16 +175,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1792 i32.load i32.gt_u @@ -196,7 +196,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1796 @@ -212,26 +212,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -359,8 +359,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -368,11 +366,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -380,25 +379,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -607,7 +607,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -615,6 +614,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -630,7 +630,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -638,6 +637,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -692,11 +692,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -720,11 +720,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -884,17 +884,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -954,15 +954,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1090,12 +1090,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1135,13 +1133,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1181,10 +1179,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1193,7 +1191,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1202,6 +1199,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1215,12 +1213,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1233,7 +1231,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1242,6 +1239,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1448,12 +1446,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1469,14 +1467,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1490,14 +1488,15 @@ local.get $0 i32.const 16 i32.add - local.set $6 + 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 $6 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1508,14 +1507,13 @@ call $~lib/builtins/abort unreachable end - local.tee $2 - local.get $6 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $6 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1523,19 +1521,21 @@ i32.const 4 i32.sub end - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if - local.get $3 + memory.size + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl @@ -1543,17 +1543,16 @@ i32.sub i32.add else - local.get $3 + local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1563,18 +1562,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1582,18 +1579,18 @@ unreachable end end - local.get $2 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if i32.const 0 @@ -1604,8 +1601,8 @@ unreachable end end + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1618,13 +1615,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $6 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $6 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1637,54 +1634,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $6 local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $2 local.get $3 - local.get $6 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $6 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $6 + local.get $3 i32.const 4 i32.add - local.tee $3 - local.get $6 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1694,37 +1691,37 @@ i32.and i32.store end - local.get $6 + local.get $3 local.get $1 i32.store offset=12 - local.get $6 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 local.set $1 - local.get $6 local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $6 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $6 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $6 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.load i32.const -4 i32.and @@ -1732,7 +1729,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.const 20 i32.add local.tee $1 diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index 88c0fde56b..178d0d1294 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -169,16 +169,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1472 i32.load i32.gt_u @@ -190,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1476 @@ -206,26 +206,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -334,8 +334,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -343,11 +341,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -355,25 +354,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -582,7 +582,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -590,6 +589,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -605,7 +605,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -613,6 +612,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -667,11 +667,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1424 @@ -695,11 +695,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1424 @@ -859,17 +859,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -929,15 +929,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1065,12 +1065,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1652,7 +1650,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store global.get $~lib/rt/itcms/total @@ -1706,20 +1704,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz if - i32.const 4 memory.size - local.tee $0 + local.tee $1 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $1 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1728,18 +1727,16 @@ i32.and i32.const 16 i32.shr_u - local.set $2 - local.get $0 - local.get $2 + local.tee $0 local.get $0 - local.get $2 - i32.gt_s + local.get $1 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $0 memory.grow i32.const 0 i32.lt_s @@ -1747,15 +1744,15 @@ unreachable end end + local.get $2 local.get $1 - local.get $0 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $1 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1782,22 +1779,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load - local.tee $2 + local.tee $1 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 $0 - local.get $2 + local.get $1 i32.const 2 i32.and i32.const 28 @@ -1806,19 +1803,19 @@ local.get $0 i32.const 32 i32.add - local.tee $2 - local.get $4 + local.tee $1 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $1 local.get $2 + local.get $1 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $2 + local.get $1 i32.const -2 i32.and i32.store @@ -1849,26 +1846,26 @@ 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 $1 + local.set $3 local.get $0 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 local.get $0 - local.get $1 + local.get $3 i32.load offset=4 i32.const 3 i32.and 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 @@ -1880,16 +1877,16 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $4 local.get $0 i32.const 20 i32.add - local.tee $0 + local.tee $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 $4 ) ) diff --git a/tests/compiler/function-call.optimized.wat b/tests/compiler/function-call.optimized.wat index ebab42229b..4bbc5220a0 100644 --- a/tests/compiler/function-call.optimized.wat +++ b/tests/compiler/function-call.optimized.wat @@ -207,16 +207,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1760 i32.load i32.gt_u @@ -228,7 +228,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1764 @@ -244,26 +244,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -372,8 +372,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -381,11 +379,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -393,25 +392,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -620,7 +620,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -628,6 +627,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -643,7 +643,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -651,6 +650,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -705,11 +705,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1616 @@ -733,11 +733,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1616 @@ -897,17 +897,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -967,15 +967,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1103,12 +1103,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1233,9 +1231,6 @@ call $~lib/rt/itcms/__visit ) (func $~start - call $start:function-call - ) - (func $start:function-call (local $0 i32) (local $1 i32) (local $2 i32) @@ -1344,7 +1339,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 0 i32.store global.get $~lib/rt/itcms/total @@ -1398,20 +1393,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz if - i32.const 4 memory.size - local.tee $0 + local.tee $1 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $1 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1420,18 +1416,16 @@ i32.and i32.const 16 i32.shr_u - local.set $2 - local.get $0 - local.get $2 + local.tee $0 local.get $0 - local.get $2 - i32.gt_s + local.get $1 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $0 memory.grow i32.const 0 i32.lt_s @@ -1439,15 +1433,15 @@ unreachable end end + local.get $3 local.get $1 - local.get $0 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $1 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1474,12 +1468,12 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load - local.tee $2 + local.tee $1 i32.const -4 i32.and i32.const 28 @@ -1489,7 +1483,7 @@ i32.ge_u if local.get $0 - local.get $2 + local.get $1 i32.const 2 i32.and i32.const 28 @@ -1498,19 +1492,19 @@ local.get $0 i32.const 32 i32.add - local.tee $2 + local.tee $1 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $3 local.get $1 - local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $2 + local.get $1 i32.const -2 i32.and i32.store @@ -1541,26 +1535,26 @@ 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 $1 + local.set $4 local.get $0 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $4 i32.store offset=8 - local.get $1 + local.get $4 local.get $0 - local.get $1 + local.get $4 i32.load offset=4 i32.const 3 i32.and 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 @@ -1572,23 +1566,23 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 local.get $0 i32.const 20 i32.add - local.tee $0 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 global.set $function-call/foo global.get $~lib/memory/__stack_pointer global.get $function-call/foo - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 1680 i32.load call_indirect $0 (type $i32_=>_none) @@ -1608,9 +1602,9 @@ end global.get $~lib/memory/__stack_pointer global.get $function-call/foo - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 1 i32.const 2 i32.const 1744 diff --git a/tests/compiler/function-expression.optimized.wat b/tests/compiler/function-expression.optimized.wat index 54263d7a37..76eba0e28e 100644 --- a/tests/compiler/function-expression.optimized.wat +++ b/tests/compiler/function-expression.optimized.wat @@ -221,16 +221,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 2112 i32.load i32.gt_u @@ -242,7 +242,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 2116 @@ -258,26 +258,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -405,8 +405,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -414,11 +412,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -426,25 +425,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -653,7 +653,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -661,6 +660,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -676,7 +676,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -684,6 +683,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -738,11 +738,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1936 @@ -766,11 +766,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1936 @@ -930,17 +930,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1000,15 +1000,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1136,12 +1136,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1223,338 +1221,459 @@ 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-continue|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 + i32.const 18608 + i32.const 18656 + 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 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 end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-continue|0 + return 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 + unreachable end + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + return end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $1 - call $~lib/rt/tlsf/searchBlock + local.get $0 + i32.load local.tee $0 - i32.eqz if - i32.const 4 - memory.size - local.tee $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - local.get $1 - i32.load offset=1568 - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.set $2 - local.get $0 - local.get $2 local.get $0 - local.get $2 - i32.gt_s - select - memory.grow + call $~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 $5 + i64.const 0 + i64.store + local.get $5 i32.const 0 + i32.store offset=8 + local.get $5 + i32.const 2032 + i32.store + local.get $5 + 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 $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-continue|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-continue|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 $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 + 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 $0 + local.get $0 local.get $2 + i32.lt_s + select memory.grow i32.const 0 i32.lt_s if + local.get $0 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + 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 + 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 $1 local.get $0 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $1 - 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 $1 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $2 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if + local.get $3 local.get $0 - local.get $2 - i32.const 2 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $2 + i32.const -4 i32.and i32.const 28 - i32.or - i32.store + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $2 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $3 + local.get $2 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $2 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.tee $2 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.get $2 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + 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 $2 - local.get $3 i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - else + 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 - i32.const -2 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $4 + local.get $0 + local.get $4 + i32.load offset=4 + i32.const 3 i32.and - i32.store + i32.or + i32.store offset=4 + local.get $2 local.get $0 - i32.const 4 - i32.add - local.tee $1 + 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.get $1 + i32.add + global.set $~lib/rt/itcms/total local.get $0 - i32.load - i32.const -4 - i32.and + 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 + 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 $1 + local.get $0 + i32.store + local.get $0 + i32.const 2032 + i32.store + local.get $0 + local.tee $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.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 $2 - i32.load offset=8 - local.set $1 - local.get $0 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - 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 $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.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-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner1 $invalid - end - return + 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 + i32.const 0 + local.get $0 + i32.const 3 + i32.eq + select + if + i32.const 2012 + call $~lib/rt/itcms/Object#makeGray end - return end - unreachable end - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.load - local.tee $0 + i32.load + call_indirect $0 (type $none_=>_i32) + local.tee $1 + i32.store offset=8 + i32.const 1 + local.get $1 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 25 + i32.ne if - local.get $0 - call $~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 offset=4 - call $~lib/rt/itcms/__visit - ) - (func $~start - call $start:function-expression + i32.const 18608 + i32.const 18656 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $start:function-expression (local $0 i32) - (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1817,120 +1936,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 $1 - i64.const 0 - i64.store - local.get $1 - 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 $0 - i32.const 0 - i32.store - local.get $0 - call $~lib/rt/itcms/__new - local.tee $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 - i32.const 0 - local.get $2 - i32.const 3 - i32.eq - select - 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 - local.get $0 - 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 - 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/getter-call.optimized.wat b/tests/compiler/getter-call.optimized.wat index 0b370b61e8..f6ff1db718 100644 --- a/tests/compiler/getter-call.optimized.wat +++ b/tests/compiler/getter-call.optimized.wat @@ -172,16 +172,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1472 i32.load i32.gt_u @@ -193,7 +193,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1476 @@ -209,26 +209,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -337,8 +337,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -346,11 +344,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -358,25 +357,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -585,7 +585,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -593,6 +592,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -608,7 +608,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -616,6 +615,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -670,11 +670,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -698,11 +698,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -862,17 +862,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -932,15 +932,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1068,12 +1068,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1244,10 +1242,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 0 i32.store - local.get $3 + local.get $5 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1256,7 +1254,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i32.const 0 i32.store global.get $~lib/rt/itcms/total @@ -1310,20 +1308,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz if - i32.const 4 memory.size - local.tee $0 + local.tee $1 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $1 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1332,18 +1331,16 @@ i32.and i32.const 16 i32.shr_u - local.set $2 - local.get $0 - local.get $2 + local.tee $0 local.get $0 - local.get $2 - i32.gt_s + local.get $1 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $0 memory.grow i32.const 0 i32.lt_s @@ -1351,15 +1348,15 @@ unreachable end end + local.get $3 local.get $1 - local.get $0 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $1 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1386,22 +1383,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load - local.tee $2 + local.tee $1 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $5 + local.tee $4 i32.const 16 i32.ge_u if local.get $0 - local.get $2 + local.get $1 i32.const 2 i32.and i32.const 28 @@ -1410,19 +1407,19 @@ local.get $0 i32.const 32 i32.add - local.tee $2 - local.get $5 + local.tee $1 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $3 local.get $1 - local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $2 + local.get $1 i32.const -2 i32.and i32.store @@ -1453,26 +1450,26 @@ 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 $1 + local.set $4 local.get $0 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $4 i32.store offset=8 - local.get $1 + local.get $4 local.get $0 - local.get $1 + local.get $4 i32.load offset=4 i32.const 3 i32.and 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 @@ -1484,18 +1481,18 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $2 local.get $0 i32.const 20 i32.add - local.tee $0 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $0 + local.get $5 + local.get $2 i32.store i32.const 1456 i32.load diff --git a/tests/compiler/heap.optimized.wat b/tests/compiler/heap.optimized.wat index 0c41748546..5c3e792383 100644 --- a/tests/compiler/heap.optimized.wat +++ b/tests/compiler/heap.optimized.wat @@ -125,8 +125,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -134,11 +132,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -146,25 +145,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -373,7 +373,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -381,6 +380,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -396,7 +396,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -404,6 +403,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -458,11 +458,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1056 @@ -486,11 +486,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1056 @@ -662,13 +662,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -708,10 +708,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -720,7 +720,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -729,6 +728,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -742,12 +742,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -760,7 +760,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -769,6 +768,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -805,10 +805,10 @@ i32.ge_u if local.get $1 - local.get $2 local.get $3 i32.const 2 i32.and + local.get $2 i32.or i32.store local.get $2 @@ -841,11 +841,11 @@ i32.const -4 i32.and i32.add - local.get $0 local.get $1 i32.load i32.const -4 i32.and + local.get $0 i32.add i32.load i32.const -3 @@ -864,11 +864,12 @@ local.tee $2 i32.eqz if + memory.size + local.tee $3 local.get $1 i32.const 536870910 i32.lt_u if (result i32) - local.get $1 i32.const 1 i32.const 27 local.get $1 @@ -877,19 +878,19 @@ i32.shl i32.const 1 i32.sub + local.get $1 i32.add else local.get $1 end i32.const 4 - memory.size - local.tee $2 + local.get $0 + i32.load offset=1568 + local.get $3 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $0 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -899,18 +900,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $2 - local.get $3 + local.tee $2 local.get $2 local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -919,7 +918,7 @@ end end local.get $0 - local.get $2 + local.get $3 i32.const 16 i32.shl memory.size @@ -1168,29 +1167,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -1212,25 +1209,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -1303,25 +1300,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -1390,25 +1387,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -1448,143 +1445,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -1611,63 +1594,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -1694,23 +1671,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2007,54 +1982,53 @@ else block $__inlined_func$~lib/rt/tlsf/reallocateBlock (result i32) global.get $~lib/rt/tlsf/ROOT - local.set $3 + local.set $2 local.get $0 call $~lib/rt/tlsf/checkUsedBlock - local.set $2 + local.set $0 block $folding-inner0 local.get $1 - local.tee $0 call $~lib/rt/tlsf/prepareSize - local.tee $5 - local.get $2 + local.tee $4 + local.get $0 i32.load - local.tee $6 + local.tee $5 i32.const -4 i32.and - local.tee $7 + local.tee $6 i32.le_u br_if $folding-inner0 - local.get $2 + local.get $0 i32.const 4 i32.add - local.get $2 + local.get $0 i32.load i32.const -4 i32.and i32.add - local.tee $1 + local.tee $7 i32.load - local.tee $4 + local.tee $3 i32.const 1 i32.and if - local.get $5 - local.get $7 + local.get $4 + local.get $6 i32.const 4 i32.add - local.get $4 + local.get $3 i32.const -4 i32.and i32.add - local.tee $4 + local.tee $3 i32.le_u if - local.get $3 - local.get $1 - call $~lib/rt/tlsf/removeBlock local.get $2 - local.get $4 - local.get $6 + local.get $7 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $3 + local.get $5 i32.const 3 i32.and i32.or @@ -2062,17 +2036,17 @@ br $folding-inner0 end end - local.get $3 local.get $2 local.get $0 + local.get $1 call $~lib/rt/tlsf/moveBlock br $__inlined_func$~lib/rt/tlsf/reallocateBlock end - local.get $3 local.get $2 - local.get $5 + local.get $0 + local.get $4 call $~lib/rt/tlsf/prepareBlock - local.get $2 + local.get $0 end end i32.const 4 diff --git a/tests/compiler/implicit-getter-setter.optimized.wat b/tests/compiler/implicit-getter-setter.optimized.wat index 2ff6ade2b5..ad51b18c08 100644 --- a/tests/compiler/implicit-getter-setter.optimized.wat +++ b/tests/compiler/implicit-getter-setter.optimized.wat @@ -163,16 +163,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1440 i32.load i32.gt_u @@ -184,7 +184,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1444 @@ -200,26 +200,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -347,8 +347,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -356,11 +354,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -368,25 +367,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -595,7 +595,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -603,6 +602,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -618,7 +618,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -626,6 +625,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -680,11 +680,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -708,11 +708,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -872,17 +872,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -942,15 +942,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1078,12 +1078,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1221,20 +1219,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if - i32.const 4 memory.size - local.tee $1 + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1243,18 +1242,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1262,15 +1259,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1297,12 +1294,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1312,7 +1309,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1321,19 +1318,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1364,26 +1361,26 @@ i32.const 4 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 + local.get $2 local.get $1 - local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1398,87 +1395,86 @@ local.get $1 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 $0 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 ) - (func $implicit-getter-setter/Managed#set:foo (param $0 i32) (param $1 i32) - local.get $0 + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 - i32.store + i32.eqz + if + return + end + 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.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 + 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 + i32.const 0 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 + select if local.get $1 call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - i32.const 0 - local.get $0 - i32.const 3 - i32.eq - select - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end end end end @@ -1712,7 +1708,10 @@ i32.store offset=4 local.get $0 local.get $1 - call $implicit-getter-setter/Managed#set:foo + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -1758,7 +1757,10 @@ end local.get $0 local.get $1 - call $implicit-getter-setter/Managed#set:foo + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index e9111c60b4..3b4d4a507b 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -189,16 +189,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 2112 i32.load i32.gt_u @@ -210,7 +210,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 2116 @@ -226,26 +226,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -373,8 +373,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -382,11 +380,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -394,25 +393,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -621,7 +621,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -629,6 +628,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -644,7 +644,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -652,6 +651,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -706,11 +706,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1424 @@ -734,11 +734,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1424 @@ -898,17 +898,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -968,15 +968,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1104,12 +1104,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1149,13 +1147,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1195,10 +1193,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1207,7 +1205,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1216,6 +1213,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1229,12 +1227,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1247,7 +1245,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1256,6 +1253,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1335,7 +1333,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $3 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1347,7 +1345,6 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $2 i32.const 12 i32.le_u @@ -1364,9 +1361,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if + memory.size + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1385,14 +1384,13 @@ local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $3 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1402,18 +1400,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1421,18 +1417,18 @@ unreachable end end - local.get $3 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1444,7 +1440,7 @@ end end local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1457,12 +1453,12 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $4 + local.get $3 i32.load - local.set $6 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1476,54 +1472,54 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const -4 i32.and local.get $2 i32.sub - local.tee $5 + local.tee $6 i32.const 16 i32.ge_u if - local.get $4 + local.get $3 local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.and i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add local.tee $2 - local.get $5 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $3 local.get $4 - local.get $6 i32.const -2 i32.and i32.store - local.get $4 + local.get $3 i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1533,37 +1529,37 @@ i32.and i32.store end - local.get $4 + local.get $3 local.get $1 i32.store offset=12 - local.get $4 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $4 - local.get $1 + local.set $1 + local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $2 - local.get $4 - local.get $2 + local.get $1 + local.get $3 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1571,22 +1567,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.const 20 i32.add - local.tee $2 - local.set $3 + local.tee $3 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $3 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1595,18 +1591,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $3 + 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 @@ -1615,10 +1611,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1627,38 +1623,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 - local.get $3 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1671,20 +1667,20 @@ i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 - local.get $5 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1707,8 +1703,8 @@ i32.sub i32.const 0 i32.store - local.get $5 - local.get $5 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1716,7 +1712,7 @@ local.tee $0 i32.add local.set $1 - local.get $3 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1749,7 +1745,7 @@ end end end - local.get $2 + local.get $3 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -1914,29 +1910,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -1958,25 +1952,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2049,25 +2043,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2136,25 +2130,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2194,143 +2188,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2357,63 +2337,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2440,23 +2414,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat index d5f83cd7aa..37a384be89 100644 --- a/tests/compiler/infer-generic.optimized.wat +++ b/tests/compiler/infer-generic.optimized.wat @@ -3,10 +3,10 @@ (type $i32_f32_i32_i32_=>_i32 (func (param i32 f32 i32 i32) (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param 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))) (type $f32_=>_f32 (func (param f32) (result f32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -194,16 +194,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1616 i32.load i32.gt_u @@ -215,7 +215,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1620 @@ -231,26 +231,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -359,8 +359,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -368,11 +366,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -380,25 +379,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -607,7 +607,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -615,6 +614,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -630,7 +630,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -638,6 +637,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -692,11 +692,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1568 @@ -720,11 +720,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1568 @@ -884,17 +884,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -954,15 +954,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1090,12 +1090,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1177,268 +1175,6 @@ end end ) - (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-continue|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-continue|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 $1 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 4 - memory.size - local.tee $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - local.get $1 - i32.load offset=1568 - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.set $2 - local.get $0 - local.get $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 $1 - local.get $0 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $1 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1568 - 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 1568 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $2 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $0 - i32.const 32 - i32.add - local.tee $2 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $2 - i32.const -2 - i32.and - i32.store - local.get $0 - i32.const 4 - i32.add - local.tee $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $0 - i32.const 5 - i32.store offset=12 - local.get $0 - i32.const 4 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $1 - local.get $0 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - 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 $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 $infer-generic/test1 (param $0 f32) (result f32) local.get $0 ) @@ -1488,6 +1224,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -1510,43 +1247,39 @@ local.get $0 i32.const 1200 i32.store offset=4 - i32.const 0 - local.set $0 i32.const 1164 i32.load local.set $1 loop $for-loop|0 + local.get $2 local.get $1 i32.const 1164 i32.load - local.tee $2 - i32.lt_s - local.set $3 + local.tee $0 local.get $0 local.get $1 - local.get $2 - local.get $3 + i32.gt_s select i32.lt_s if - local.get $4 + local.get $3 i32.const 1156 i32.load - local.get $0 + local.get $2 i32.const 2 i32.shl i32.add f32.load - local.get $0 + local.get $2 i32.const 1152 i32.const 1200 i32.load call_indirect $0 (type $i32_f32_i32_i32_=>_i32) - local.set $4 - local.get $0 + local.set $3 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end @@ -1583,7 +1316,7 @@ i32.const 1520 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $5 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1592,31 +1325,284 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 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 $2 + loop $do-continue|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + 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 $2 + i32.const 0 + i32.gt_s + br_if $do-continue|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 $4 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size + local.tee $1 + i32.const 4 + local.get $4 + i32.load offset=1568 + local.get $1 + 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 $0 + local.get $0 + local.get $1 + i32.lt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $0 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $1 + 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 1568 + 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 1568 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $1 + 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 $1 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $1 + local.get $2 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $1 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $1 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.tee $1 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.get $1 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 5 + 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 - call $~lib/rt/itcms/__new + 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 $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + 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 $1 + i32.const 0 + i32.store8 + local.get $1 + i32.const 4 + i32.add local.tee $0 - i32.store + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + local.get $1 + i32.const 0 + i32.store8 offset=1 + local.get $1 + i32.const 0 + i32.store8 offset=2 local.get $0 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + local.get $3 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store 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 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.tee $3 local.get $1 + i32.store + local.get $3 i32.const 12 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat index be9d128e80..d6e01a6201 100644 --- a/tests/compiler/inlining.optimized.wat +++ b/tests/compiler/inlining.optimized.wat @@ -181,16 +181,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1520 i32.load i32.gt_u @@ -202,7 +202,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1524 @@ -218,26 +218,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -346,8 +346,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -355,11 +353,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -367,25 +366,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -594,7 +594,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -602,6 +601,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -617,7 +617,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -625,6 +624,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -679,11 +679,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1472 @@ -707,11 +707,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1472 @@ -871,17 +871,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -941,15 +941,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1077,12 +1077,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1122,13 +1120,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1168,10 +1166,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1180,7 +1178,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1189,6 +1186,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1202,12 +1200,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1220,7 +1218,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1229,6 +1226,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1308,7 +1306,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $3 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1320,7 +1318,6 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $2 i32.const 12 i32.le_u @@ -1337,9 +1334,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if + memory.size + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1358,14 +1357,13 @@ local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $3 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1375,18 +1373,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1394,18 +1390,18 @@ unreachable end end - local.get $3 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1417,7 +1413,7 @@ end end local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1430,12 +1426,12 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $4 + local.get $3 i32.load - local.set $6 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1449,54 +1445,54 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const -4 i32.and local.get $2 i32.sub - local.tee $5 + local.tee $6 i32.const 16 i32.ge_u if - local.get $4 + local.get $3 local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.and i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add local.tee $2 - local.get $5 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $3 local.get $4 - local.get $6 i32.const -2 i32.and i32.store - local.get $4 + local.get $3 i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1506,37 +1502,37 @@ i32.and i32.store end - local.get $4 + local.get $3 local.get $1 i32.store offset=12 - local.get $4 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $4 - local.get $1 + local.set $1 + local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $2 - local.get $4 - local.get $2 + local.get $1 + local.get $3 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1544,22 +1540,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.const 20 i32.add - local.tee $2 - local.set $3 + local.tee $3 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $3 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1568,18 +1564,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $3 + 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 @@ -1588,10 +1584,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1600,38 +1596,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 - local.get $3 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1644,20 +1640,20 @@ i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 - local.get $5 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1680,8 +1676,8 @@ i32.sub i32.const 0 i32.store - local.get $5 - local.get $5 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1689,7 +1685,7 @@ local.tee $0 i32.add local.set $1 - local.get $3 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1722,7 +1718,7 @@ end end end - local.get $2 + local.get $3 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid diff --git a/tests/compiler/instanceof-class.optimized.wat b/tests/compiler/instanceof-class.optimized.wat index 1325de7f46..2b58084e68 100644 --- a/tests/compiler/instanceof-class.optimized.wat +++ b/tests/compiler/instanceof-class.optimized.wat @@ -183,16 +183,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1504 i32.load i32.gt_u @@ -204,7 +204,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1508 @@ -220,26 +220,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -348,8 +348,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -357,11 +355,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -369,25 +368,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -596,7 +596,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -604,6 +603,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -619,7 +619,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -627,6 +626,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -681,11 +681,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -709,11 +709,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -873,17 +873,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -943,15 +943,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1079,12 +1079,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1222,20 +1220,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if - i32.const 4 memory.size - local.tee $1 + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1244,18 +1243,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1263,15 +1260,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1298,12 +1295,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1313,7 +1310,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1322,19 +1319,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1365,26 +1362,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 + local.get $2 local.get $1 - local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total diff --git a/tests/compiler/issues/1095.optimized.wat b/tests/compiler/issues/1095.optimized.wat index d234e0a29b..f9ccb61ecd 100644 --- a/tests/compiler/issues/1095.optimized.wat +++ b/tests/compiler/issues/1095.optimized.wat @@ -2,9 +2,9 @@ (type $none_=>_none (func)) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (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))) (type $i32_=>_i32 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -157,16 +157,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1584 i32.load i32.gt_u @@ -178,7 +178,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1588 @@ -194,26 +194,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -341,8 +341,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -350,11 +348,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -362,25 +361,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -589,7 +589,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -597,6 +596,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -612,7 +612,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -620,6 +619,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -674,11 +674,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -702,11 +702,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -866,17 +866,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -936,15 +936,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1072,12 +1072,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1159,320 +1157,57 @@ end end ) - (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-continue|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-continue|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 $1 - call $~lib/rt/tlsf/searchBlock - local.tee $0 + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + local.get $1 i32.eqz if - i32.const 4 - memory.size - local.tee $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - local.get $1 - i32.load offset=1568 - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.set $2 - local.get $0 - local.get $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 $1 - local.get $0 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $1 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + return end local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u + i32.eqz if i32.const 0 - i32.const 1392 - i32.const 498 + i32.const 1120 + i32.const 294 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $2 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $0 - i32.const 32 - i32.add - local.tee $2 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $2 - i32.const -2 - i32.and - i32.store - local.get $0 - i32.const 4 - i32.add - local.tee $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $0 - i32.const 3 - i32.store offset=12 - local.get $0 - i32.const 4 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $1 - local.get $0 - local.get $2 global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $0 local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - 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 $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 + local.tee $1 + i32.load offset=4 i32.const 3 - i32.sub - i32.const 0 - i32.store8 - local.get $0 - ) - (func $issues/1095/Foo#set:bar (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $1 + i32.and + i32.eq if 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 + 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 + i32.const 0 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 + select if local.get $1 call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - i32.const 0 - local.get $0 - i32.const 3 - i32.eq - select - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end end end end @@ -1505,6 +1240,9 @@ (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 @@ -1563,12 +1301,268 @@ i32.const 0 i32.store local.get $0 - call $~lib/rt/itcms/__new + 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-continue|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-continue|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 $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 $3 + local.get $0 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + 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 1392 + 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 1392 + 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 $4 + 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 $4 + 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.tee $2 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.get $2 + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 3 + i32.store offset=12 + local.get $0 + i32.const 4 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $3 + i32.load offset=8 + local.set $2 + local.get $0 + local.get $3 + 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 $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $3 + 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 $2 + 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 $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 $0 + i32.store + local.get $0 + i32.const 1456 i32.store local.get $0 i32.const 1456 - call $issues/1095/Foo#set:bar + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -1606,7 +1600,10 @@ end local.get $0 local.get $1 - call $issues/1095/Foo#set:bar + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add diff --git a/tests/compiler/issues/1225.optimized.wat b/tests/compiler/issues/1225.optimized.wat index 522529b7bc..af8069bb5e 100644 --- a/tests/compiler/issues/1225.optimized.wat +++ b/tests/compiler/issues/1225.optimized.wat @@ -178,16 +178,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1488 i32.load i32.gt_u @@ -199,7 +199,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1492 @@ -215,26 +215,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -343,8 +343,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -352,11 +350,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -364,25 +363,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -591,7 +591,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -599,6 +598,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -614,7 +614,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -622,6 +621,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -676,11 +676,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -704,11 +704,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -868,17 +868,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -938,15 +938,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1074,12 +1074,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1172,12 +1170,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $0 + local.set $1 loop $do-continue|0 - local.get $0 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $0 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1193,7 +1191,7 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $0 + local.get $1 i32.const 0 i32.gt_s br_if $do-continue|0 @@ -1217,20 +1215,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz if - i32.const 4 memory.size - local.tee $0 + local.tee $2 + i32.const 4 + local.get $1 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1239,18 +1238,16 @@ i32.and i32.const 16 i32.shr_u - local.set $1 - local.get $0 - local.get $1 + local.tee $0 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $0 memory.grow i32.const 0 i32.lt_s @@ -1258,15 +1255,15 @@ unreachable end end + local.get $1 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 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1293,12 +1290,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load - local.tee $1 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1308,7 +1305,7 @@ i32.ge_u if local.get $0 - local.get $1 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1317,19 +1314,19 @@ local.get $0 i32.const 32 i32.add - local.tee $1 + local.tee $2 local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $1 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $1 + local.get $2 i32.const -2 i32.and i32.store @@ -1360,26 +1357,26 @@ i32.const 12 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $3 local.get $0 - local.get $1 + local.get $2 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 $3 local.get $0 - local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1394,10 +1391,10 @@ local.get $0 i32.const 20 i32.add - local.tee $2 + local.tee $3 i32.const 0 i32.store8 - local.get $2 + local.get $3 i32.const 12 i32.add local.tee $0 @@ -1405,10 +1402,10 @@ i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $3 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $3 i32.const 0 i32.store8 offset=2 local.get $0 @@ -1421,7 +1418,7 @@ i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $3 i32.const 0 i32.store8 offset=3 local.get $0 @@ -1429,130 +1426,130 @@ i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $3 i32.const 0 - local.get $2 + local.get $3 i32.sub i32.const 3 i32.and - local.tee $1 - i32.add local.tee $0 + i32.add + local.tee $1 i32.const 0 i32.store i32.const 12 - local.get $1 + local.get $0 i32.sub i32.const -4 i32.and - local.tee $3 - local.get $0 + local.tee $2 + local.get $1 i32.add - local.tee $1 + local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store block $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $0 + local.get $1 i32.const 0 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 12 i32.sub i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 8 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - 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 $1 + local.get $0 i32.const 28 i32.sub i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 24 i32.sub i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 20 i32.sub i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 16 i32.sub i32.const 0 i32.store - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 i32.add - local.tee $1 + local.tee $0 i32.add - local.set $0 - local.get $3 - local.get $1 - i32.sub local.set $1 + local.get $2 + local.get $0 + i32.sub + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 32 i32.ge_u if - local.get $0 + local.get $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 $1 + local.get $0 i32.const 32 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 32 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end end - local.get $2 + local.get $3 ) (func $issues/1225/normal (result i32) global.get $issues/1225/x diff --git a/tests/compiler/issues/1699.optimized.wat b/tests/compiler/issues/1699.optimized.wat index d6020765fb..da1951b573 100644 --- a/tests/compiler/issues/1699.optimized.wat +++ b/tests/compiler/issues/1699.optimized.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) @@ -164,16 +164,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1712 i32.load i32.gt_u @@ -185,7 +185,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1716 @@ -201,26 +201,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -348,8 +348,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -357,11 +355,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -369,25 +368,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -596,7 +596,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -604,6 +603,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -619,7 +619,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -627,6 +626,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -681,11 +681,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1488 @@ -709,11 +709,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1488 @@ -873,17 +873,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -943,15 +943,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1079,12 +1079,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1124,13 +1122,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1170,10 +1168,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1182,7 +1180,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1191,6 +1188,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1204,12 +1202,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1222,7 +1220,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1231,6 +1228,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1437,12 +1435,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1458,14 +1456,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1479,14 +1477,15 @@ local.get $0 i32.const 16 i32.add - local.set $6 + 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 $6 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1497,14 +1496,13 @@ call $~lib/builtins/abort unreachable end - local.tee $2 - local.get $6 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $6 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1512,19 +1510,21 @@ i32.const 4 i32.sub end - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if - local.get $3 + memory.size + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl @@ -1532,17 +1532,16 @@ i32.sub i32.add else - local.get $3 + local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1552,18 +1551,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1571,18 +1568,18 @@ unreachable end end - local.get $2 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if i32.const 0 @@ -1593,8 +1590,8 @@ unreachable end end + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1607,13 +1604,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $6 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $6 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1626,54 +1623,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $6 local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $2 local.get $3 - local.get $6 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $6 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $6 + local.get $3 i32.const 4 i32.add - local.tee $3 - local.get $6 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1683,37 +1680,37 @@ i32.and i32.store end - local.get $6 + local.get $3 local.get $1 i32.store offset=12 - local.get $6 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 local.set $1 - local.get $6 local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $6 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $6 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $6 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.load i32.const -4 i32.and @@ -1721,7 +1718,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -1952,29 +1949,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -1996,25 +1991,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2087,25 +2082,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2174,25 +2169,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2232,143 +2227,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2395,63 +2376,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2478,23 +2453,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2595,33 +2568,29 @@ call $~lib/builtins/abort unreachable end - local.get $11 - i32.const 1 - i32.shl - local.tee $6 - i32.const 1073741820 - i32.lt_u - local.set $3 - 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 $6 - i32.const 1073741820 - local.get $3 - select - local.tee $6 - i32.lt_u - local.set $3 block $__inlined_func$~lib/rt/itcms/__renew - local.get $6 + local.get $11 + i32.const 1 + i32.shl + local.tee $3 + i32.const 1073741820 + local.get $3 + 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 $3 local.get $3 + local.get $6 + i32.lt_u select local.tee $10 local.tee $4 @@ -2890,74 +2859,7 @@ i32.const 1 call $~lib/rt/itcms/__link ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $invalid - block $~lib/array/Array - block $issues/1699/MultiAssignmentTest - 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/1699/MultiAssignmentTest $~lib/array/Array $invalid - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - local.get $0 - local.tee $1 - i32.load offset=4 - local.tee $2 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - if - local.get $2 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $1 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - ) - (func $~start + (func $start:issues/1699 (local $0 i32) (local $1 i32) (local $2 i32) @@ -3003,13 +2905,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 i64.const 0 i64.store offset=8 - local.get $2 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3047,20 +2949,20 @@ i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 32 call $~lib/memory/memory.fill local.get $0 - local.get $1 + local.get $2 i32.store local.get $0 - local.get $1 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link local.get $0 - local.get $1 + local.get $2 i32.store offset=4 local.get $0 i32.const 32 @@ -3072,7 +2974,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.get $0 i32.store call $issues/1699/MultiAssignmentTest#constructor @@ -3166,6 +3068,76 @@ call $~lib/builtins/abort unreachable ) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $invalid + block $~lib/array/Array + block $issues/1699/MultiAssignmentTest + 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/1699/MultiAssignmentTest $~lib/array/Array $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return + end + return + end + local.get $0 + local.tee $1 + i32.load offset=4 + local.tee $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + if + local.get $2 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $1 + i32.load + call $~lib/rt/itcms/__visit + return + end + unreachable + ) + (func $~start + call $start:issues/1699 + ) (func $issues/1699/MultiAssignmentTest#constructor (result i32) (local $0 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/logical.optimized.wat b/tests/compiler/logical.optimized.wat index 35057e71fa..8f42d41a24 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -169,16 +169,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1488 i32.load i32.gt_u @@ -190,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1492 @@ -206,26 +206,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -334,8 +334,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -343,11 +341,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -355,25 +354,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -582,7 +582,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -590,6 +589,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -605,7 +605,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -613,6 +612,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -667,11 +667,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1440 @@ -695,11 +695,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1440 @@ -859,17 +859,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -929,15 +929,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1065,12 +1065,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1325,7 +1323,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store global.get $~lib/rt/itcms/total @@ -1379,20 +1377,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz if - i32.const 4 memory.size - local.tee $0 + local.tee $1 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $1 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1401,18 +1400,16 @@ i32.and i32.const 16 i32.shr_u - local.set $2 - local.get $0 - local.get $2 + local.tee $0 local.get $0 - local.get $2 - i32.gt_s + local.get $1 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $0 memory.grow i32.const 0 i32.lt_s @@ -1420,15 +1417,15 @@ unreachable end end + local.get $2 local.get $1 - local.get $0 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $1 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1455,22 +1452,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load - local.tee $2 + local.tee $1 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 $0 - local.get $2 + local.get $1 i32.const 2 i32.and i32.const 28 @@ -1479,19 +1476,19 @@ local.get $0 i32.const 32 i32.add - local.tee $2 - local.get $4 + local.tee $1 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $1 local.get $2 + local.get $1 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $2 + local.get $1 i32.const -2 i32.and i32.store @@ -1522,26 +1519,26 @@ 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 $1 + local.set $3 local.get $0 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 local.get $0 - local.get $1 + local.get $3 i32.load offset=4 i32.const 3 i32.and 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 @@ -1553,16 +1550,16 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $4 local.get $0 i32.const 20 i32.add - local.tee $0 + local.tee $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 $4 ) ) diff --git a/tests/compiler/loop-flow.optimized.wat b/tests/compiler/loop-flow.optimized.wat index 91ceb5712c..0ecceb0ad5 100644 --- a/tests/compiler/loop-flow.optimized.wat +++ b/tests/compiler/loop-flow.optimized.wat @@ -26,14 +26,10 @@ i32.const 1 ) (func $loop-flow/whileAny (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.const 1 - i32.eq - local.set $1 loop $while-continue|0 - local.get $1 - i32.eqz + local.get $0 + i32.const 1 + i32.ne if local.get $0 i32.const 2 @@ -50,14 +46,10 @@ i32.const 1 ) (func $loop-flow/forAny (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.const 1 - i32.eq - local.set $1 loop $for-loop|0 - local.get $1 - i32.eqz + local.get $0 + i32.const 1 + i32.ne if local.get $0 i32.const 2 @@ -76,14 +68,10 @@ i32.const 1 ) (func $loop-flow/doAny (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.const 1 - i32.eq - local.set $1 loop $do-continue|0 - local.get $1 - i32.eqz + local.get $0 + i32.const 1 + i32.ne if local.get $0 i32.const 2 diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index d7af957843..597c7e5198 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -173,16 +173,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1632 i32.load i32.gt_u @@ -194,7 +194,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1636 @@ -210,26 +210,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -338,8 +338,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -347,11 +345,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -359,25 +358,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -586,7 +586,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -594,6 +593,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -609,7 +609,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -617,6 +616,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -671,11 +671,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -699,11 +699,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -863,17 +863,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -933,15 +933,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1069,12 +1069,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1212,20 +1210,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if - i32.const 4 memory.size - local.tee $1 + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1234,18 +1233,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1253,15 +1250,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1288,12 +1285,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1303,7 +1300,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1312,19 +1309,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1355,26 +1352,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 + local.get $2 local.get $1 - local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1471,17 +1468,17 @@ i32.const 1344 global.set $~lib/rt/itcms/fromSpace call $managed-cast/Cat#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store call $managed-cast/Cat#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1492,7 +1489,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 + local.get $0 i32.eqz if i32.const 1456 @@ -1503,22 +1500,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer call $managed-cast/Cat#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store call $managed-cast/Cat#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store call $managed-cast/Cat#constructor local.set $1 diff --git a/tests/compiler/memcpy.optimized.wat b/tests/compiler/memcpy.optimized.wat index 36b4eb652f..529a532405 100644 --- a/tests/compiler/memcpy.optimized.wat +++ b/tests/compiler/memcpy.optimized.wat @@ -177,29 +177,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -221,25 +219,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -312,25 +310,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -399,25 +397,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -457,143 +455,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -620,63 +604,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -703,23 +681,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 diff --git a/tests/compiler/memset.optimized.wat b/tests/compiler/memset.optimized.wat index 094e13b17d..6a8834cfd7 100644 --- a/tests/compiler/memset.optimized.wat +++ b/tests/compiler/memset.optimized.wat @@ -12,199 +12,209 @@ (func $memset/memset (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i64) - block $folding-inner0 - local.get $2 - i32.eqz - br_if $folding-inner0 - local.get $0 - local.get $1 - i32.store8 - local.get $0 - local.get $2 - i32.add - i32.const 1 - i32.sub - local.get $1 - i32.store8 - local.get $2 - i32.const 2 - i32.le_u - br_if $folding-inner0 - local.get $0 - local.get $1 - i32.store8 offset=1 - local.get $0 - local.get $1 - i32.store8 offset=2 - local.get $0 - local.get $2 - i32.add - local.tee $3 - i32.const 2 - i32.sub - local.get $1 - i32.store8 - local.get $3 - i32.const 3 - i32.sub - local.get $1 - i32.store8 - local.get $2 - i32.const 6 - i32.le_u - br_if $folding-inner0 - local.get $0 - local.get $1 - i32.store8 offset=3 - local.get $0 - local.get $2 - i32.add - i32.const 4 - i32.sub - local.get $1 - i32.store8 - local.get $2 - i32.const 8 - i32.le_u - br_if $folding-inner0 - local.get $0 - i32.const 0 - local.get $0 - i32.sub - i32.const 3 - i32.and - local.tee $3 - i32.add - local.tee $0 - local.get $1 - i32.const 255 - i32.and - i32.const 16843009 - i32.mul - local.tee $1 - i32.store - local.get $0 - local.get $2 - local.get $3 - i32.sub - i32.const -4 - i32.and - local.tee $2 - i32.add - i32.const 4 - i32.sub - local.get $1 - i32.store - local.get $2 - i32.const 8 - i32.le_u - br_if $folding-inner0 - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $2 - i32.add - local.tee $3 - i32.const 12 - i32.sub - local.get $1 - i32.store - local.get $3 - i32.const 8 - i32.sub - local.get $1 - i32.store - local.get $2 - i32.const 24 - i32.le_u - br_if $folding-inner0 - local.get $0 - local.get $1 - i32.store offset=12 - local.get $0 - local.get $1 - i32.store offset=16 - local.get $0 - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - i32.store offset=24 - local.get $0 - local.get $2 - i32.add - local.tee $3 - i32.const 28 - i32.sub - local.get $1 - i32.store - local.get $3 - i32.const 24 - i32.sub - local.get $1 - i32.store - local.get $3 - i32.const 20 - i32.sub - local.get $1 - i32.store - local.get $3 - i32.const 16 - i32.sub - local.get $1 - i32.store - local.get $0 - local.get $0 - i32.const 4 - i32.and - i32.const 24 - i32.add - local.tee $3 - i32.add - local.set $0 + local.get $2 + i32.eqz + if + return + end + local.get $0 + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.add + i32.const 1 + i32.sub + local.get $1 + i32.store8 + local.get $2 + i32.const 2 + i32.le_u + if + return + end + local.get $0 + local.get $1 + i32.store8 offset=1 + local.get $0 + local.get $1 + i32.store8 offset=2 + local.get $0 + local.get $2 + i32.add + local.tee $3 + i32.const 2 + i32.sub + local.get $1 + i32.store8 + local.get $3 + i32.const 3 + i32.sub + local.get $1 + i32.store8 + local.get $2 + i32.const 6 + i32.le_u + if + return + end + local.get $0 + local.get $1 + i32.store8 offset=3 + local.get $0 + local.get $2 + i32.add + i32.const 4 + i32.sub + local.get $1 + i32.store8 + local.get $2 + i32.const 8 + i32.le_u + if + return + end + local.get $0 + i32.const 0 + local.get $0 + i32.sub + i32.const 3 + i32.and + local.tee $3 + i32.add + local.tee $0 + local.get $1 + i32.const 255 + i32.and + i32.const 16843009 + i32.mul + local.tee $1 + i32.store + local.get $0 + local.get $2 + local.get $3 + i32.sub + i32.const -4 + i32.and + local.tee $2 + i32.add + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $2 + i32.const 8 + i32.le_u + if + return + end + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $2 + i32.add + local.tee $3 + i32.const 12 + i32.sub + local.get $1 + i32.store + local.get $3 + i32.const 8 + i32.sub + local.get $1 + i32.store + local.get $2 + i32.const 24 + i32.le_u + if + return + end + local.get $0 + local.get $1 + i32.store offset=12 + local.get $0 + local.get $1 + i32.store offset=16 + local.get $0 + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + i32.store offset=24 + local.get $0 + local.get $2 + i32.add + local.tee $3 + i32.const 28 + i32.sub + local.get $1 + i32.store + local.get $3 + i32.const 24 + i32.sub + local.get $1 + i32.store + local.get $3 + i32.const 20 + i32.sub + local.get $1 + i32.store + local.get $3 + i32.const 16 + i32.sub + local.get $1 + i32.store + local.get $0 + local.get $0 + i32.const 4 + i32.and + i32.const 24 + i32.add + local.tee $3 + i32.add + local.set $0 + local.get $2 + local.get $3 + i32.sub + local.set $2 + local.get $1 + i64.extend_i32_u + local.tee $4 + local.get $4 + i64.const 32 + i64.shl + i64.or + local.set $4 + loop $while-continue|0 local.get $2 - local.get $3 - i32.sub - local.set $2 - local.get $1 - i64.extend_i32_u - local.tee $4 - local.get $4 - i64.const 32 - i64.shl - i64.or - local.set $4 - loop $while-continue|0 + i32.const 32 + i32.ge_u + if + local.get $0 + local.get $4 + i64.store + local.get $0 + local.get $4 + i64.store offset=8 + local.get $0 + local.get $4 + i64.store offset=16 + local.get $0 + local.get $4 + i64.store offset=24 local.get $2 i32.const 32 - i32.ge_u - if - local.get $0 - local.get $4 - i64.store - local.get $0 - local.get $4 - i64.store offset=8 - local.get $0 - local.get $4 - i64.store offset=16 - local.get $0 - local.get $4 - i64.store offset=24 - local.get $2 - i32.const 32 - i32.sub - local.set $2 - local.get $0 - i32.const 32 - i32.add - local.set $0 - br $while-continue|0 - end + i32.sub + local.set $2 + local.get $0 + i32.const 32 + i32.add + local.set $0 + br $while-continue|0 end end ) diff --git a/tests/compiler/new.optimized.wat b/tests/compiler/new.optimized.wat index b61a78619b..c3b37194ca 100644 --- a/tests/compiler/new.optimized.wat +++ b/tests/compiler/new.optimized.wat @@ -209,16 +209,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1440 i32.load i32.gt_u @@ -230,7 +230,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1444 @@ -246,26 +246,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -374,8 +374,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -383,11 +381,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -395,25 +394,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -622,7 +622,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -630,6 +629,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -645,7 +645,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -653,6 +652,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -707,11 +707,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -735,11 +735,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -899,17 +899,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -969,15 +969,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1105,12 +1105,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1248,20 +1246,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if - i32.const 4 memory.size - local.tee $1 + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1270,18 +1269,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1289,15 +1286,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1324,12 +1321,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1339,7 +1336,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1348,19 +1345,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1391,26 +1388,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 + local.get $2 local.get $1 - local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index b3aab8787c..7c8c0e27d3 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -216,16 +216,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 4656 i32.load i32.gt_u @@ -237,7 +237,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 4660 @@ -253,26 +253,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -381,8 +381,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -390,11 +388,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -402,25 +401,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -629,7 +629,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -637,6 +636,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -652,7 +652,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -660,6 +659,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -714,11 +714,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1616 @@ -742,11 +742,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1616 @@ -906,17 +906,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -976,15 +976,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1112,12 +1112,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1157,13 +1155,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1203,10 +1201,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1215,7 +1213,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1224,6 +1221,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1237,12 +1235,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1255,7 +1253,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1264,6 +1261,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1321,8 +1319,8 @@ br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1336,15 +1334,15 @@ local.get $0 i32.const 16 i32.add - local.set $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.set $4 - local.get $2 + local.tee $3 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1355,14 +1353,13 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1370,19 +1367,21 @@ i32.const 4 i32.sub end - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if - local.get $2 + memory.size + local.tee $4 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 1 i32.const 27 - local.get $2 + local.get $1 i32.clz i32.sub i32.shl @@ -1390,17 +1389,16 @@ i32.sub i32.add else - local.get $2 + local.get $1 end i32.const 4 - memory.size - local.tee $5 + local.get $3 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $4 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1410,18 +1408,16 @@ i32.and i32.const 16 i32.shr_u - local.set $1 - local.get $5 - local.get $1 - local.get $1 - local.get $5 + local.tee $2 + local.get $2 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1429,18 +1425,18 @@ unreachable end end + local.get $3 local.get $4 - local.get $5 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1451,8 +1447,8 @@ unreachable end end + local.get $1 local.get $2 - local.get $3 i32.load i32.const -4 i32.and @@ -1465,13 +1461,13 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $5 local.get $2 + i32.load + local.set $4 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -1484,54 +1480,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $2 + local.get $1 i32.sub - local.tee $1 + local.tee $5 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $5 + local.get $1 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $1 local.get $2 - local.get $3 i32.const 4 i32.add i32.add - local.tee $2 - local.get $1 + local.tee $1 + local.get $5 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $1 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.get $1 local.get $2 - local.get $3 i32.load i32.const -4 i32.and @@ -1541,37 +1537,37 @@ i32.and i32.store end - local.get $3 + local.get $2 i32.const 1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $3 i32.load offset=8 - local.set $4 - local.get $3 + local.set $1 local.get $2 + local.get $3 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $3 - local.get $4 + local.get $2 + local.get $1 i32.store offset=8 - local.get $4 - local.get $3 - local.get $4 + local.get $1 + local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1579,10 +1575,10 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add - local.tee $4 + local.tee $3 local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 @@ -1757,7 +1753,7 @@ end end end - local.get $4 + local.get $3 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -1774,13 +1770,13 @@ i32.const 10000 i32.div_u local.set $1 - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 100 @@ -1809,13 +1805,13 @@ i32.const 100 i32.ge_u if - local.get $0 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 @@ -1835,12 +1831,12 @@ i32.const 10 i32.ge_u if - local.get $0 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 2 @@ -1850,12 +1846,12 @@ i32.load i32.store else - local.get $0 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 48 @@ -2691,29 +2687,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2735,25 +2729,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2826,25 +2820,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2913,25 +2907,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2971,143 +2965,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3134,63 +3114,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3217,23 +3191,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3931,14 +3903,7 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $2 - i64.const 32 - i64.shr_u - local.tee $4 - i64.const 31 - i64.shl - local.tee $6 - local.get $2 + local.tee $3 i64.const 4294967295 i64.and local.tee $2 @@ -3951,14 +3916,13 @@ i64.const 32 i64.shr_u i64.add - local.tee $3 - i64.const 32 - i64.shr_u - i64.add - local.get $3 + local.tee $4 i64.const 4294967295 i64.and - local.get $4 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $3 i64.const 10 i64.shl i64.add @@ -3966,59 +3930,68 @@ i64.add i64.const 32 i64.shr_u + local.get $3 + i64.const 31 + i64.shl + local.tee $6 + local.get $4 + i64.const 32 + i64.shr_u + i64.add i64.add i64.const 1 i64.sub - local.set $3 - local.get $6 - local.get $5 + local.tee $4 + local.get $3 + i64.const 4294966784 + i64.mul + local.get $2 + i64.const 2147483647 + i64.mul + local.get $2 + i64.const 4294966784 + i64.mul i64.const 32 i64.shr_u i64.add - local.get $5 + local.tee $2 i64.const 4294967295 i64.and + i64.add i64.const 2147483647 i64.add i64.const 32 i64.shr_u - i64.add local.get $3 - global.get $~lib/util/number/_exp_pow - i32.const 2 - i32.add - local.get $3 - local.get $4 - i64.const 2147483647 - i64.mul - local.get $2 i64.const 2147483647 i64.mul local.get $2 - i64.const 4294966784 - i64.mul i64.const 32 i64.shr_u i64.add - local.tee $2 + i64.add + i64.const 1 + i64.add + i64.sub + local.set $2 + local.get $6 + local.get $5 i64.const 32 i64.shr_u i64.add - local.get $4 - i64.const 4294966784 - i64.mul - local.get $2 + local.get $5 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 + local.get $4 + global.get $~lib/util/number/_exp_pow + i32.const 2 + i32.add + local.get $2 call $~lib/util/number/genDigits global.get $~lib/util/number/_K call $~lib/util/number/prettify diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index f7dfa619f5..e2b2667c68 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -1,11 +1,12 @@ (module (type $i32_=>_none (func (param i32))) (type $none_=>_none (func)) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) + (type $i32_=>_i32 (func (param i32) (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)) @@ -121,16 +122,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1712 i32.load i32.gt_u @@ -142,7 +143,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1716 @@ -158,26 +159,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -405,8 +406,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -414,11 +413,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -426,25 +426,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -653,7 +654,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -661,6 +661,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -676,7 +677,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -684,6 +684,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -738,11 +739,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1440 @@ -766,11 +767,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1440 @@ -943,12 +944,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -982,17 +981,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1052,15 +1051,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1186,13 +1185,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1232,10 +1231,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1244,7 +1243,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1253,6 +1251,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1266,12 +1265,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1284,7 +1283,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1293,6 +1291,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1300,11 +1299,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - local.get $1 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $1 + local.get $0 i32.const 1073741820 i32.gt_u if @@ -1316,14 +1323,12 @@ unreachable end local.get $0 - local.tee $2 - local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1333,9 +1338,11 @@ end local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if + memory.size + local.tee $3 local.get $0 i32.const 536870910 i32.lt_u @@ -1354,14 +1361,13 @@ local.get $0 end i32.const 4 - memory.size - local.tee $1 + local.get $1 + i32.load offset=1568 + local.get $3 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1371,18 +1377,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 - local.get $1 + local.tee $2 + local.get $2 local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1390,18 +1394,18 @@ unreachable end end - local.get $2 local.get $1 + local.get $3 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -1413,7 +1417,7 @@ end end local.get $0 - local.get $1 + local.get $2 i32.load i32.const -4 i32.and @@ -1426,12 +1430,15 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 + local.get $2 call $~lib/rt/tlsf/removeBlock local.get $1 - i32.load local.set $3 + local.get $2 + local.tee $1 + i32.load + local.set $2 local.get $0 i32.const 4 i32.add @@ -1445,7 +1452,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const -4 i32.and local.get $0 @@ -1456,7 +1463,7 @@ if local.get $1 local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.or @@ -1473,12 +1480,12 @@ i32.const 1 i32.or i32.store - local.get $2 + local.get $3 local.get $0 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1503,6 +1510,8 @@ i32.store end local.get $1 + i32.const 4 + i32.add ) (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1566,15 +1575,9 @@ local.get $0 i32.const 16 i32.add - 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 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -2072,29 +2075,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2116,25 +2117,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2207,25 +2208,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2294,25 +2295,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2352,143 +2353,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2515,63 +2502,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2598,23 +2579,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2841,15 +2820,15 @@ i32.const 8 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - 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 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer @@ -2857,22 +2836,22 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 123 i32.store - local.get $0 + local.get $2 i32.const 1056 i32.store offset=4 - local.get $0 + local.get $2 i32.const 1056 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.tee $0 + local.get $2 i32.store - local.get $1 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2883,7 +2862,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 + local.get $2 i32.load i32.const 123 i32.ne @@ -2897,7 +2876,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $0 + local.get $2 i32.load offset=4 local.tee $0 i32.store @@ -2920,30 +2899,22 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 8 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $6 + call $~lib/rt/tlsf/__alloc + local.tee $0 i32.const 0 i32.store - local.get $6 + local.get $0 i32.const 0 i32.store offset=4 - local.get $6 + local.get $0 i32.const 123 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 1056 i32.store - local.get $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2951,6 +2922,8 @@ i32.const 1772 i32.lt_s br_if $folding-inner1 + local.get $0 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -2970,27 +2943,27 @@ local.get $3 local.get $3 i32.const 5 - i32.gt_u + i32.gt_s select - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $2 i32.lt_s select i32.const 1 i32.shl - local.tee $1 + local.tee $0 local.get $2 - local.get $0 - local.get $0 + local.get $1 + local.get $1 local.get $2 i32.gt_s select i32.const 1 i32.shl - local.tee $2 + local.tee $1 i32.sub - local.tee $0 + local.tee $6 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3002,12 +2975,12 @@ br $__inlined_func$~lib/string/String#substring end i32.const 0 - local.get $1 + local.get $0 local.get $3 i32.const 1 i32.shl i32.eq - local.get $2 + local.get $1 select if global.get $~lib/memory/__stack_pointer @@ -3019,17 +2992,15 @@ br $__inlined_func$~lib/string/String#substring end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.const 1 call $~lib/rt/itcms/__new local.tee $5 i32.store - local.get $0 - local.set $4 block $~lib/util/memory/memmove|inlined.0 local.get $5 local.tee $0 - local.get $2 + local.get $1 i32.const 1056 i32.add local.tee $1 @@ -3038,10 +3009,10 @@ local.get $1 local.get $0 i32.sub - local.get $4 + local.get $6 i32.sub i32.const 0 - local.get $4 + local.get $6 i32.const 1 i32.shl i32.sub @@ -3049,7 +3020,7 @@ if local.get $0 local.get $1 - local.get $4 + local.get $6 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end @@ -3070,13 +3041,13 @@ i32.const 7 i32.and if - local.get $4 + local.get $6 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $4 + local.get $6 i32.const 1 i32.sub - local.set $4 + local.set $6 local.get $0 local.tee $3 i32.const 1 @@ -3095,7 +3066,7 @@ end end loop $while-continue|1 - local.get $4 + local.get $6 i32.const 8 i32.ge_u if @@ -3103,10 +3074,10 @@ local.get $1 i64.load i64.store - local.get $4 + local.get $6 i32.const 8 i32.sub - local.set $4 + local.set $6 local.get $0 i32.const 8 i32.add @@ -3120,7 +3091,7 @@ end end loop $while-continue|2 - local.get $4 + local.get $6 if local.get $0 local.tee $3 @@ -3136,10 +3107,10 @@ local.get $2 i32.load8_u i32.store8 - local.get $4 + local.get $6 i32.const 1 i32.sub - local.set $4 + local.set $6 br $while-continue|2 end end @@ -3154,22 +3125,22 @@ if loop $while-continue|3 local.get $0 - local.get $4 + local.get $6 i32.add i32.const 7 i32.and if - local.get $4 + local.get $6 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 local.get $0 - local.get $4 + local.get $6 i32.const 1 i32.sub - local.tee $4 + local.tee $6 i32.add local.get $1 - local.get $4 + local.get $6 i32.add i32.load8_u i32.store8 @@ -3177,18 +3148,18 @@ end end loop $while-continue|4 - local.get $4 + local.get $6 i32.const 8 i32.ge_u if local.get $0 - local.get $4 + local.get $6 i32.const 8 i32.sub - local.tee $4 + local.tee $6 i32.add local.get $1 - local.get $4 + local.get $6 i32.add i64.load i64.store @@ -3197,16 +3168,16 @@ end end loop $while-continue|5 - local.get $4 + local.get $6 if local.get $0 - local.get $4 + local.get $6 i32.const 1 i32.sub - local.tee $4 + local.tee $6 i32.add local.get $1 - local.get $4 + local.get $6 i32.add i32.load8_u i32.store8 @@ -3220,7 +3191,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $6 + local.get $4 local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -3234,7 +3205,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $6 + local.get $4 i32.load i32.const 123 i32.ne @@ -3248,7 +3219,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $6 + local.get $4 i32.load offset=4 local.tee $0 i32.store @@ -3267,7 +3238,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3958,23 +3929,23 @@ i32.const 0 i32.gt_s if - loop $while-continue|012 + loop $while-continue|08 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|012 + br $while-continue|08 end end end call $~lib/rt/itcms/step drop - loop $while-continue|113 + loop $while-continue|19 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|113 + br $while-continue|19 end end global.get $~lib/rt/itcms/total diff --git a/tests/compiler/optional-typeparameters.optimized.wat b/tests/compiler/optional-typeparameters.optimized.wat index ff307566c8..37addd0173 100644 --- a/tests/compiler/optional-typeparameters.optimized.wat +++ b/tests/compiler/optional-typeparameters.optimized.wat @@ -181,16 +181,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1440 i32.load i32.gt_u @@ -202,7 +202,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1444 @@ -218,26 +218,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -346,8 +346,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -355,11 +353,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -367,25 +366,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -594,7 +594,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -602,6 +601,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -617,7 +617,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -625,6 +624,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -679,11 +679,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -707,11 +707,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -871,17 +871,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -941,15 +941,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1077,12 +1077,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1220,20 +1218,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if - i32.const 4 memory.size - local.tee $1 + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1242,18 +1241,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1261,15 +1258,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1296,12 +1293,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1311,7 +1308,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1320,19 +1317,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1363,26 +1360,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 + local.get $2 local.get $1 - local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total diff --git a/tests/compiler/reexport.optimized.wat b/tests/compiler/reexport.optimized.wat index 302addcb7e..086dc6b05a 100644 --- a/tests/compiler/reexport.optimized.wat +++ b/tests/compiler/reexport.optimized.wat @@ -258,16 +258,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1488 i32.load i32.gt_u @@ -279,7 +279,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1492 @@ -295,26 +295,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -423,8 +423,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -432,11 +430,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -444,25 +443,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -671,7 +671,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -679,6 +678,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -694,7 +694,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -702,6 +701,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -756,11 +756,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1440 @@ -784,11 +784,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1440 @@ -948,17 +948,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1018,15 +1018,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1154,12 +1154,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1297,20 +1295,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if - i32.const 4 memory.size - local.tee $1 + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1319,18 +1318,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1338,15 +1335,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1373,12 +1370,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1388,7 +1385,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1397,19 +1394,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1440,26 +1437,26 @@ i32.const 4 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 + local.get $2 local.get $1 - local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1474,34 +1471,34 @@ local.get $1 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 $0 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 ) (func $export/sub (param $0 i32) (param $1 i32) (result i32) local.get $0 diff --git a/tests/compiler/rereexport.optimized.wat b/tests/compiler/rereexport.optimized.wat index 669d222193..93061282ba 100644 --- a/tests/compiler/rereexport.optimized.wat +++ b/tests/compiler/rereexport.optimized.wat @@ -1,9 +1,9 @@ (module (type $none_=>_none (func)) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_i32 (func (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 $i32_=>_i32 (func (param i32) (result i32))) @@ -220,16 +220,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1536 i32.load i32.gt_u @@ -241,7 +241,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1540 @@ -257,26 +257,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -385,8 +385,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -394,11 +392,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -406,25 +405,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -633,7 +633,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -641,6 +640,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -656,7 +656,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -664,6 +663,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -718,11 +718,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1440 @@ -746,11 +746,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1440 @@ -910,17 +910,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -980,15 +980,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1116,12 +1116,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1203,11 +1201,197 @@ end end ) - (func $~lib/rt/itcms/__new (result i32) + (func $export-default/theDefault + nop + ) + (func $export/sub (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $exports/Car + 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 $exports/Car $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return + end + return + end + unreachable + ) + (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 + 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 + 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 + return + 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) (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 + global.get $~lib/memory/__stack_pointer + i32.const 1572 + i32.lt_s + if + i32.const 17984 + i32.const 18032 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + i32.const 0 + i32.store global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1259,20 +1443,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz if - i32.const 4 memory.size - local.tee $0 + local.tee $1 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $1 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1281,18 +1466,16 @@ i32.and i32.const 16 i32.shr_u - local.set $2 - local.get $0 - local.get $2 + local.tee $0 local.get $0 - local.get $2 - i32.gt_s + local.get $1 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $0 memory.grow i32.const 0 i32.lt_s @@ -1300,15 +1483,15 @@ unreachable end end + local.get $2 local.get $1 - local.get $0 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $1 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1335,12 +1518,12 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load - local.tee $2 + local.tee $1 i32.const -4 i32.and i32.const 28 @@ -1350,7 +1533,7 @@ i32.ge_u if local.get $0 - local.get $2 + local.get $1 i32.const 2 i32.and i32.const 28 @@ -1359,19 +1542,19 @@ local.get $0 i32.const 32 i32.add - local.tee $2 + local.tee $1 local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $1 local.get $2 + local.get $1 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $2 + local.get $1 i32.const -2 i32.and i32.store @@ -1402,26 +1585,26 @@ 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 $1 + local.set $3 local.get $0 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 local.get $0 - local.get $1 + local.get $3 i32.load offset=4 i32.const 3 i32.and 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 @@ -1436,236 +1619,46 @@ local.get $0 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 $0 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 - ) - (func $export-default/theDefault - nop - ) - (func $export/sub (param $0 i32) (param $1 i32) (result i32) - local.get $0 + local.get $4 local.get $1 - i32.sub - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $exports/Car - 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 $exports/Car $invalid - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (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 - 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 - 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 - return - 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) - 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 - if - i32.const 17984 - i32.const 18032 - 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 - i32.store - local.get $0 + local.get $1 i32.const 2 i32.store - local.get $0 + local.get $1 i32.const 2 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 ) ) diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index e1a7792156..1ff470d080 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -175,16 +175,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 3296 i32.load i32.gt_u @@ -196,7 +196,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 3300 @@ -212,26 +212,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -359,8 +359,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -368,11 +366,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -380,25 +379,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -607,7 +607,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -615,6 +614,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -630,7 +630,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -638,6 +637,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -692,11 +692,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1424 @@ -720,11 +720,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1424 @@ -884,17 +884,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -954,15 +954,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1090,12 +1090,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1135,13 +1133,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1181,10 +1179,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1193,7 +1191,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1202,6 +1199,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1215,12 +1213,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1233,7 +1231,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1242,6 +1239,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1321,7 +1319,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $3 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1333,7 +1331,6 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $2 i32.const 12 i32.le_u @@ -1350,9 +1347,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if + memory.size + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1371,14 +1370,13 @@ local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $3 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1388,18 +1386,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1407,18 +1403,18 @@ unreachable end end - local.get $3 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1430,7 +1426,7 @@ end end local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1443,12 +1439,12 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $4 + local.get $3 i32.load - local.set $6 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1462,54 +1458,54 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const -4 i32.and local.get $2 i32.sub - local.tee $5 + local.tee $6 i32.const 16 i32.ge_u if - local.get $4 + local.get $3 local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.and i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add local.tee $2 - local.get $5 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $3 local.get $4 - local.get $6 i32.const -2 i32.and i32.store - local.get $4 + local.get $3 i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1519,37 +1515,37 @@ i32.and i32.store end - local.get $4 + local.get $3 local.get $1 i32.store offset=12 - local.get $4 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $4 - local.get $1 + local.set $1 + local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $2 - local.get $4 - local.get $2 + local.get $1 + local.get $3 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1557,22 +1553,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.const 20 i32.add - local.tee $2 - local.set $3 + local.tee $3 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $3 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1581,18 +1577,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $3 + 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 @@ -1601,10 +1597,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1613,38 +1609,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 - local.get $3 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1657,20 +1653,20 @@ i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 - local.get $5 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1693,8 +1689,8 @@ i32.sub i32.const 0 i32.store - local.get $5 - local.get $5 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1702,7 +1698,7 @@ local.tee $0 i32.add local.set $1 - local.get $3 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1735,7 +1731,7 @@ end end end - local.get $2 + local.get $3 ) (func $~lib/util/memory/memcpy (param $0 i32) (local $1 i32) @@ -1906,29 +1902,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $3 - i32.const 1 - i32.add - local.tee $3 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $1 i32.const 2 i32.add + local.tee $2 + i32.const 1 + i32.add local.set $0 local.get $3 - local.tee $2 i32.const 2 i32.add + local.tee $1 + i32.const 1 + i32.add local.set $3 - local.get $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $1 + i32.load8_u + i32.store8 local.get $5 i32.const 3 i32.sub @@ -2186,143 +2180,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $3 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.tee $0 + local.set $3 + local.get $1 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 local.get $3 - i32.const 1 - i32.add - local.tee $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $3 - i32.load8_u - i32.store8 + local.set $3 + local.get $1 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $3 - i32.const 1 - i32.add - local.tee $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $3 - i32.load8_u - i32.store8 + local.set $3 + local.get $1 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $3 - i32.const 1 - i32.add - local.tee $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $3 - i32.load8_u - i32.store8 + local.set $3 + local.get $1 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $3 - i32.const 1 - i32.add - local.tee $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $3 - i32.load8_u - i32.store8 + local.set $3 + local.get $1 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $3 - i32.const 1 - i32.add - local.tee $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $3 - i32.load8_u - i32.store8 + local.set $3 + local.get $1 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $3 - i32.const 1 - i32.add - local.tee $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $3 - i32.load8_u - i32.store8 + local.set $3 + local.get $1 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $3 - i32.const 1 - i32.add - local.tee $3 i32.load8_u i32.store8 local.get $0 @@ -2349,63 +2329,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $3 - i32.load8_u - i32.store8 + local.set $3 + local.get $1 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $3 - i32.const 1 - i32.add - local.tee $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $3 - i32.load8_u - i32.store8 + local.set $3 + local.get $1 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $3 - i32.const 1 - i32.add - local.tee $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $3 - i32.load8_u - i32.store8 + local.set $3 + local.get $1 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $3 - i32.const 1 - i32.add - local.tee $3 i32.load8_u i32.store8 local.get $0 @@ -2432,23 +2406,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $3 - i32.load8_u - i32.store8 + local.set $3 + local.get $1 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $3 - i32.const 1 - i32.add - local.tee $3 i32.load8_u i32.store8 local.get $0 @@ -2514,13 +2486,13 @@ i32.const 10000 i32.div_u local.set $1 - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 100 @@ -2549,13 +2521,13 @@ i32.const 100 i32.ge_u if - local.get $0 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 @@ -2575,12 +2547,12 @@ i32.const 10 i32.ge_u if - local.get $0 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 2 @@ -2590,12 +2562,12 @@ i32.load i32.store else - local.get $0 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 48 @@ -2789,22 +2761,22 @@ i32.rem_u local.tee $4 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 1740 i32.add i64.load32_u + i64.const 32 + i64.shl local.get $4 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 1740 i32.add i64.load32_u - i64.const 32 - i64.shl i64.or i64.store local.get $2 @@ -2820,22 +2792,22 @@ i32.div_u local.tee $3 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 1740 i32.add i64.load32_u + i64.const 32 + i64.shl local.get $3 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 1740 i32.add i64.load32_u - i64.const 32 - i64.shl i64.or i64.store br $while-continue|0 @@ -2855,38 +2827,45 @@ local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $resolve-access/Container - 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 + block $invalid + block $resolve-access/Container + block $~lib/array/Array + 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 $~lib/array/Array $resolve-access/Container $invalid + end + return end return end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end return end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit return end - unreachable + return end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit + unreachable ) (func $~start memory.size @@ -2953,87 +2932,87 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $7 i32.const 0 i32.store i32.const 1056 local.set $0 i32.const 8 - local.set $7 + local.set $5 block $~lib/util/memory/memmove|inlined.0 i32.const 8 i32.const 0 call $~lib/rt/itcms/__new local.tee $4 - local.tee $3 + local.tee $1 i32.const 1056 i32.eq br_if $~lib/util/memory/memmove|inlined.0 i32.const 1048 - local.get $3 + local.get $1 i32.sub i32.const -16 i32.le_u if - local.get $3 + local.get $1 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end - local.get $3 + local.get $1 i32.const 1056 i32.lt_u if - local.get $3 + local.get $1 i32.const 7 i32.and i32.eqz if loop $while-continue|0 - local.get $3 + local.get $1 i32.const 7 i32.and if - local.get $7 + local.get $5 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $7 + local.get $5 i32.const 1 i32.sub - local.set $7 - local.get $3 - local.tee $2 + local.set $5 + local.get $1 + local.tee $3 i32.const 1 i32.add - local.set $3 + local.set $1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.add local.set $0 + local.get $3 local.get $2 - local.get $1 i32.load8_u i32.store8 br $while-continue|0 end end loop $while-continue|1 - local.get $7 + local.get $5 i32.const 8 i32.ge_u if - local.get $3 + local.get $1 local.get $0 i64.load i64.store - local.get $7 + local.get $5 i32.const 8 i32.sub - local.set $7 - local.get $3 + local.set $5 + local.get $1 i32.const 8 i32.add - local.set $3 + local.set $1 local.get $0 i32.const 8 i32.add @@ -3043,77 +3022,73 @@ end end loop $while-continue|2 - local.get $7 + local.get $5 if - local.get $3 - local.tee $2 + local.get $1 + local.tee $3 i32.const 1 i32.add - local.set $3 + local.set $1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.add local.set $0 + local.get $3 local.get $2 - local.get $1 i32.load8_u i32.store8 - local.get $7 + local.get $5 i32.const 1 i32.sub - local.set $7 + local.set $5 br $while-continue|2 end end else - local.get $3 + local.get $1 i32.const 7 i32.and i32.eqz if loop $while-continue|3 - local.get $3 - local.get $7 + local.get $1 + local.get $5 i32.add i32.const 7 i32.and if - local.get $7 + local.get $5 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $7 + local.get $1 + local.get $5 i32.const 1 i32.sub - local.tee $7 - i32.const 1056 + local.tee $5 i32.add - local.set $0 - local.get $3 - local.get $7 + local.get $5 + i32.const 1056 i32.add - local.get $0 i32.load8_u i32.store8 br $while-continue|3 end end loop $while-continue|4 - local.get $7 + local.get $5 i32.const 8 i32.ge_u if - local.get $7 + local.get $1 + local.get $5 i32.const 8 i32.sub - local.tee $7 - i32.const 1056 + local.tee $5 i32.add - local.set $0 - local.get $3 - local.get $7 + local.get $5 + i32.const 1056 i32.add - local.get $0 i64.load i64.store br $while-continue|4 @@ -3121,19 +3096,17 @@ end end loop $while-continue|5 - local.get $7 + local.get $5 if - local.get $7 + local.get $1 + local.get $5 i32.const 1 i32.sub - local.tee $7 - i32.const 1056 + local.tee $5 i32.add - local.set $0 - local.get $3 - local.get $7 + local.get $5 + i32.const 1056 i32.add - local.get $0 i32.load8_u i32.store8 br $while-continue|5 @@ -3141,20 +3114,20 @@ end end end - local.get $5 + local.get $7 local.get $4 local.tee $0 i32.store i32.const 16 i32.const 3 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 local.get $0 i32.store local.get $0 local.tee $1 if - local.get $3 + local.get $2 i32.eqz if i32.const 0 @@ -3168,13 +3141,13 @@ local.get $1 i32.const 20 i32.sub - local.tee $2 + local.tee $3 i32.load offset=4 i32.const 3 i32.and i32.eq if - local.get $3 + local.get $2 i32.const 20 i32.sub i32.load offset=4 @@ -3185,7 +3158,7 @@ i32.eqz i32.eq if - local.get $2 + local.get $3 call $~lib/rt/itcms/Object#makeGray else global.get $~lib/rt/itcms/state @@ -3197,19 +3170,19 @@ i32.eq select if - local.get $2 + local.get $3 call $~lib/rt/itcms/Object#makeGray end end end end - local.get $3 + local.get $2 local.get $0 i32.store offset=4 - local.get $3 + local.get $2 i32.const 8 i32.store offset=8 - local.get $3 + local.get $2 i32.const 1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -3217,9 +3190,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 - local.get $3 + local.get $2 i32.store - local.get $3 + local.get $2 i32.load offset=12 i32.eqz if @@ -3230,7 +3203,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.load offset=4 i64.load call $~lib/number/U64#toString diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index 5cdb9606af..95e13468f1 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -510,16 +510,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 11248 i32.load i32.gt_u @@ -531,7 +531,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 11252 @@ -547,26 +547,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -675,8 +675,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -684,11 +682,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -696,25 +695,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -923,7 +923,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -931,6 +930,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -946,7 +946,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -954,6 +953,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -1008,11 +1008,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1776 @@ -1036,11 +1036,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1776 @@ -1200,17 +1200,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1270,15 +1270,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1406,12 +1406,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1451,13 +1449,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1497,10 +1495,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1509,7 +1507,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1518,6 +1515,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1531,12 +1529,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1549,7 +1547,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1558,6 +1555,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1637,7 +1635,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $3 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1649,7 +1647,6 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $2 i32.const 12 i32.le_u @@ -1666,9 +1663,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if + memory.size + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1687,14 +1686,13 @@ local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $3 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1704,18 +1702,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1723,18 +1719,18 @@ unreachable end end - local.get $3 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1746,7 +1742,7 @@ end end local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1759,12 +1755,12 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $4 + local.get $3 i32.load - local.set $6 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1778,54 +1774,54 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const -4 i32.and local.get $2 i32.sub - local.tee $5 + local.tee $6 i32.const 16 i32.ge_u if - local.get $4 + local.get $3 local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.and i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add local.tee $2 - local.get $5 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $3 local.get $4 - local.get $6 i32.const -2 i32.and i32.store - local.get $4 + local.get $3 i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1835,37 +1831,37 @@ i32.and i32.store end - local.get $4 + local.get $3 local.get $1 i32.store offset=12 - local.get $4 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $4 - local.get $1 + local.set $1 + local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $2 - local.get $4 - local.get $2 + local.get $1 + local.get $3 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1873,22 +1869,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.const 20 i32.add - local.tee $2 - local.set $3 + local.tee $3 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $3 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1897,18 +1893,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $3 + 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 @@ -1917,10 +1913,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1929,38 +1925,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 - local.get $3 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1973,20 +1969,20 @@ i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 - local.get $5 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -2009,8 +2005,8 @@ i32.sub i32.const 0 i32.store - local.get $5 - local.get $5 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -2018,7 +2014,7 @@ local.tee $0 i32.add local.set $1 - local.get $3 + local.get $2 local.get $0 i32.sub local.set $0 @@ -2051,7 +2047,7 @@ end end end - local.get $2 + local.get $3 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2068,13 +2064,13 @@ i32.const 10000 i32.div_u local.set $1 - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 100 @@ -2103,13 +2099,13 @@ i32.const 100 i32.ge_u if - local.get $0 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 @@ -2129,12 +2125,12 @@ i32.const 10 i32.ge_u if - local.get $0 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 2 @@ -2144,12 +2140,12 @@ i32.load i32.store else - local.get $0 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 48 @@ -2870,29 +2866,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2914,25 +2908,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -3005,25 +2999,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -3092,25 +3086,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -3150,143 +3144,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3313,63 +3293,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3396,23 +3370,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -4025,30 +3997,26 @@ local.tee $3 i64.const 4294967295 i64.and - local.set $1 - local.get $3 - i64.const 32 - i64.shr_u - local.tee $3 + local.tee $0 i64.const 31 i64.shl - local.get $1 + local.set $5 + local.get $0 i64.const 31 i64.shl - local.get $1 + local.get $0 i64.const 10 i64.shl i64.const 32 i64.shr_u i64.add - local.tee $0 - i64.const 32 - i64.shr_u - i64.add - local.get $0 + local.tee $1 i64.const 4294967295 i64.and local.get $3 + i64.const 32 + i64.shr_u + local.tee $3 i64.const 10 i64.shl i64.add @@ -4056,30 +4024,30 @@ i64.add i64.const 32 i64.shr_u + local.get $3 + i64.const 31 + i64.shl + local.get $1 + i64.const 32 + i64.shr_u + i64.add i64.add i64.const 1 i64.sub - local.tee $5 + local.tee $1 local.get $3 - i64.const 2147483647 + i64.const 4294966784 i64.mul - local.get $1 + local.get $0 i64.const 2147483647 i64.mul - local.get $1 + local.get $0 i64.const 4294966784 i64.mul i64.const 32 i64.shr_u i64.add local.tee $0 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - i64.const 4294966784 - i64.mul - local.get $0 i64.const 4294967295 i64.and i64.add @@ -4087,6 +4055,13 @@ i64.add i64.const 32 i64.shr_u + local.get $3 + i64.const 2147483647 + i64.mul + local.get $0 + i64.const 32 + i64.shr_u + i64.add i64.add i64.const 1 i64.add @@ -4095,14 +4070,11 @@ local.get $3 i64.const 31 i64.shl - local.get $1 - i64.const 31 - i64.shl - local.tee $1 + local.get $5 i64.const 32 i64.shr_u i64.add - local.get $1 + local.get $5 i64.const 4294967295 i64.and i64.const 2147483647 @@ -4110,7 +4082,7 @@ i64.const 32 i64.shr_u i64.add - local.get $5 + local.get $1 global.get $~lib/util/number/_exp_pow i32.const 3 i32.add diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index 0e1ea2fec3..ea630e2c02 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -227,16 +227,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 4800 i32.load i32.gt_u @@ -248,7 +248,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 4804 @@ -264,26 +264,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -411,8 +411,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -420,11 +418,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -432,25 +431,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -659,7 +659,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -667,6 +666,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -682,7 +682,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -690,6 +689,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -744,11 +744,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1504 @@ -772,11 +772,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1504 @@ -936,17 +936,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1006,15 +1006,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1142,12 +1142,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1187,13 +1185,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1233,10 +1231,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1245,7 +1243,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1254,6 +1251,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1267,12 +1265,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1285,7 +1283,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1294,6 +1291,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1500,12 +1498,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1521,14 +1519,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1542,14 +1540,15 @@ local.get $0 i32.const 16 i32.add - local.set $6 + 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 $6 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1560,14 +1559,13 @@ call $~lib/builtins/abort unreachable end - local.tee $2 - local.get $6 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $6 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1575,19 +1573,21 @@ i32.const 4 i32.sub end - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if - local.get $3 + memory.size + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl @@ -1595,17 +1595,16 @@ i32.sub i32.add else - local.get $3 + local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1615,18 +1614,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1634,18 +1631,18 @@ unreachable end end - local.get $2 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if i32.const 0 @@ -1656,8 +1653,8 @@ unreachable end end + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1670,13 +1667,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $6 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $6 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1689,54 +1686,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $6 local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $2 local.get $3 - local.get $6 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $6 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $6 + local.get $3 i32.const 4 i32.add - local.tee $3 - local.get $6 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1746,37 +1743,37 @@ i32.and i32.store end - local.get $6 + local.get $3 local.get $1 i32.store offset=12 - local.get $6 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 local.set $1 - local.get $6 local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $6 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $6 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $6 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.load i32.const -4 i32.and @@ -1784,7 +1781,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -1792,69 +1789,68 @@ call $~lib/memory/memory.fill local.get $1 ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) - local.get $0 + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 - i32.store + i32.eqz + if + return + end + 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.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 + 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 + i32.const 0 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 + select if local.get $1 call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - i32.const 0 - local.get $0 - i32.const 3 - i32.eq - select - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end end end end ) (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 f32) - local.get $1 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1568 @@ -1873,12 +1869,12 @@ f32.store ) (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) - local.get $1 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1568 @@ -2490,29 +2486,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2534,25 +2528,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2625,25 +2619,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2712,25 +2706,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2770,143 +2764,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2933,63 +2913,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.get $1 - i32.const 1 - i32.add - local.tee $1 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 @@ -3016,23 +2990,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3289,13 +3261,13 @@ i32.const 10000 i32.div_u local.set $1 - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 100 @@ -3324,13 +3296,13 @@ i32.const 100 i32.ge_u if - local.get $0 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 @@ -3350,12 +3322,12 @@ i32.const 10 i32.ge_u if - local.get $0 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 2 @@ -3365,12 +3337,12 @@ i32.load i32.store else - local.get $0 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 48 @@ -3724,21 +3696,17 @@ (local $3 i32) (local $4 i32) (local $5 i64) - (local $6 i32) + (local $6 i64) (local $7 i32) - (local $8 i64) + (local $8 i32) (local $9 i64) (local $10 i64) (local $11 i64) - (local $12 f64) - (local $13 i64) - (local $14 i64) - (local $15 i64) - (local $16 i64) + (local $12 i64) local.get $0 f64.const 0 f64.lt - local.tee $6 + local.tee $7 if (result f64) i32.const 1776 i32.const 45 @@ -3761,17 +3729,6 @@ i64.extend_i32_u i64.const 52 i64.shl - local.set $2 - local.get $4 - i32.const 1 - local.get $4 - select - i32.const 1075 - i32.sub - local.tee $4 - i32.const 1 - i32.sub - local.get $2 local.get $1 i64.const 4503599627370495 i64.and @@ -3784,14 +3741,24 @@ local.tee $1 i64.clz i32.wrap_i64 - local.tee $3 - i32.sub - local.set $7 + local.set $3 local.get $1 local.get $3 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus + local.get $4 + i32.const 1 + local.get $4 + select + i32.const 1075 + i32.sub + local.tee $8 + i32.const 1 + i32.sub + local.get $3 + i32.sub + local.set $4 local.get $2 local.get $2 i64.const 4503599627370496 @@ -3803,19 +3770,20 @@ i64.shl i64.const 1 i64.sub - local.get $4 + local.get $8 local.get $3 i32.sub - local.get $7 + local.get $4 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $7 + local.get $4 global.set $~lib/util/number/_exp + i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $7 + local.tee $4 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -3825,12 +3793,9 @@ local.tee $0 i32.trunc_f64_s local.tee $3 - f64.convert_i32_s - local.set $12 - i32.const 348 - local.get $3 local.get $0 - local.get $12 + local.get $3 + f64.convert_i32_s f64.ne i32.add i32.const 3 @@ -3840,10 +3805,10 @@ local.tee $3 i32.const 3 i32.shl - local.tee $4 + local.tee $8 i32.sub global.set $~lib/util/number/_K - local.get $4 + local.get $8 i32.const 1832 i32.add i64.load @@ -3856,7 +3821,7 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $13 + local.tee $9 i64.const 4294967295 i64.and local.tee $1 @@ -3864,95 +3829,93 @@ local.get $2 i64.clz i64.shl - local.tee $8 + local.tee $10 i64.const 4294967295 i64.and - local.tee $14 + local.tee $11 i64.mul - local.set $9 - global.get $~lib/util/number/_frc_plus - local.tee $5 - i64.const 4294967295 - i64.and - local.set $2 - local.get $1 - local.get $5 + local.set $5 + local.get $9 i64.const 32 i64.shr_u - local.tee $15 + local.tee $2 + local.get $11 i64.mul local.get $1 - local.get $2 + local.get $10 + i64.const 32 + i64.shr_u + local.tee $9 i64.mul + local.get $5 i64.const 32 i64.shr_u i64.add - local.set $5 - global.get $~lib/util/number/_frc_minus local.tee $10 i64.const 4294967295 i64.and + i64.add + i64.const 2147483647 + i64.add local.set $11 - local.get $1 - local.get $8 - i64.const 32 - i64.shr_u - local.tee $16 + local.get $2 + global.get $~lib/util/number/_frc_plus + local.tee $5 + i64.const 4294967295 + i64.and + local.tee $6 i64.mul - local.get $9 - i64.const 32 - i64.shr_u - i64.add - local.set $8 local.get $1 - local.get $10 + local.get $5 i64.const 32 i64.shr_u - local.tee $10 + local.tee $5 i64.mul local.get $1 - local.get $11 + local.get $6 i64.mul i64.const 32 i64.shr_u i64.add - local.set $9 - local.get $13 + local.tee $6 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add i64.const 32 i64.shr_u - local.tee $1 - local.get $15 - i64.mul + local.get $2 local.get $5 + i64.mul + local.get $6 i64.const 32 i64.shr_u i64.add - local.get $1 + i64.add + i64.const 1 + i64.sub + local.tee $5 local.get $2 - i64.mul - local.get $5 + global.get $~lib/util/number/_frc_minus + local.tee $6 i64.const 4294967295 i64.and - i64.add - i64.const 2147483647 - i64.add + local.tee $12 + i64.mul + local.get $1 + local.get $6 i64.const 32 i64.shr_u - i64.add - i64.const 1 - i64.sub - local.tee $2 + local.tee $6 + i64.mul local.get $1 - local.get $10 + local.get $12 i64.mul - local.get $9 i64.const 32 i64.shr_u i64.add - local.get $1 - local.get $11 - i64.mul - local.get $9 + local.tee $1 i64.const 4294967295 i64.and i64.add @@ -3960,49 +3923,48 @@ i64.add i64.const 32 i64.shr_u + local.get $2 + local.get $6 + i64.mul + local.get $1 + i64.const 32 + i64.shr_u + i64.add i64.add i64.const 1 i64.add i64.sub - local.set $5 - local.get $6 + local.set $1 + local.get $7 i32.const 1 i32.shl i32.const 1776 i32.add - local.get $1 - local.get $16 + local.get $2 + local.get $9 i64.mul - local.get $8 + local.get $10 i64.const 32 i64.shr_u i64.add - local.get $1 - local.get $14 - i64.mul - local.get $8 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add + local.get $11 i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $5 + local.get $4 global.get $~lib/util/number/_exp_pow - local.get $7 i32.add i32.const -64 i32.sub - local.get $5 - local.get $6 + local.get $1 + local.get $7 call $~lib/util/number/genDigits - local.get $6 + local.get $7 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $6 + local.get $7 i32.add ) (func $~lib/number/F32#toString (param $0 f32) (result i32) @@ -4212,10 +4174,10 @@ i32.eqz ) (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 local.get $0 i32.load offset=8 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1568 @@ -4232,10 +4194,10 @@ i32.store8 ) (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=8 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1568 @@ -4351,31 +4313,21 @@ end ) (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-inner1 $folding-inner0 $invalid - end - return + 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-inner0 $folding-inner0 $folding-inner0 $invalid end return end - unreachable - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit + return end - return + unreachable end local.get $0 i32.load @@ -4863,7 +4815,10 @@ end local.get $0 i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer + i32.store + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link local.get $0 i32.const 0 i32.store offset=4 @@ -4897,7 +4852,10 @@ call $~lib/memory/memory.fill local.get $0 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#set:buffer + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link local.get $0 local.get $1 i32.store offset=4 diff --git a/tests/compiler/resolve-function-expression.optimized.wat b/tests/compiler/resolve-function-expression.optimized.wat index b2dec3b3bf..6bff940043 100644 --- a/tests/compiler/resolve-function-expression.optimized.wat +++ b/tests/compiler/resolve-function-expression.optimized.wat @@ -209,16 +209,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 3424 i32.load i32.gt_u @@ -230,7 +230,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 3428 @@ -246,26 +246,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -374,8 +374,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -383,11 +381,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -395,25 +394,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -622,7 +622,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -630,6 +629,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -645,7 +645,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -653,6 +652,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -707,11 +707,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1792 @@ -735,11 +735,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1792 @@ -899,17 +899,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -969,15 +969,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1105,12 +1105,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1150,13 +1148,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1196,10 +1194,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1208,7 +1206,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1217,6 +1214,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1230,12 +1228,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1248,7 +1246,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1257,6 +1254,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1314,8 +1312,8 @@ br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1329,15 +1327,15 @@ local.get $0 i32.const 16 i32.add - local.set $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.set $4 - local.get $2 + local.tee $3 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1348,14 +1346,13 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1363,19 +1360,21 @@ i32.const 4 i32.sub end - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if - local.get $2 + memory.size + local.tee $4 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 1 i32.const 27 - local.get $2 + local.get $1 i32.clz i32.sub i32.shl @@ -1383,17 +1382,16 @@ i32.sub i32.add else - local.get $2 + local.get $1 end i32.const 4 - memory.size - local.tee $5 + local.get $3 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $4 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1403,18 +1401,16 @@ i32.and i32.const 16 i32.shr_u - local.set $1 - local.get $5 - local.get $1 - local.get $1 - local.get $5 + local.tee $2 + local.get $2 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1422,18 +1418,18 @@ unreachable end end + local.get $3 local.get $4 - local.get $5 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1444,8 +1440,8 @@ unreachable end end + local.get $1 local.get $2 - local.get $3 i32.load i32.const -4 i32.and @@ -1458,13 +1454,13 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $5 local.get $2 + i32.load + local.set $4 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -1477,54 +1473,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $2 + local.get $1 i32.sub - local.tee $1 + local.tee $5 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $5 + local.get $1 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $1 local.get $2 - local.get $3 i32.const 4 i32.add i32.add - local.tee $2 - local.get $1 + local.tee $1 + local.get $5 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $1 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.get $1 local.get $2 - local.get $3 i32.load i32.const -4 i32.and @@ -1534,37 +1530,37 @@ i32.and i32.store end - local.get $3 + local.get $2 i32.const 1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $3 i32.load offset=8 - local.set $4 - local.get $3 + local.set $1 local.get $2 + local.get $3 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $3 - local.get $4 + local.get $2 + local.get $1 i32.store offset=8 - local.get $4 - local.get $3 - local.get $4 + local.get $1 + local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1572,10 +1568,10 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add - local.tee $4 + local.tee $3 local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 @@ -1750,7 +1746,7 @@ end end end - local.get $4 + local.get $3 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -1794,416 +1790,413 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3460 - i32.lt_s - if - i32.const 19872 - i32.const 19920 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - i32.const 2 - i32.const 1056 - i32.load - call_indirect $0 (type $i32_=>_i32) - i32.const 42 - i32.ne - if - i32.const 0 - i32.const 1088 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 3460 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 2 + i32.const 1056 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 1 + i32.const 1168 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 6 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 19844 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 1168 - i32.load - call_indirect $0 (type $i32_=>_i32) - i32.const 42 - i32.ne - if + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1572 + i32.const 1568 + i32.store + i32.const 1576 + i32.const 1568 + i32.store + i32.const 1568 + global.set $~lib/rt/itcms/pinSpace + i32.const 1604 + i32.const 1600 + i32.store + i32.const 1608 + i32.const 1600 + i32.store + i32.const 1600 + global.set $~lib/rt/itcms/toSpace + i32.const 1748 + i32.const 1744 + i32.store + i32.const 1752 + i32.const 1744 + i32.store + i32.const 1744 + global.set $~lib/rt/itcms/fromSpace i32.const 0 - i32.const 1088 - i32.const 6 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - memory.size - i32.const 16 - i32.shl - i32.const 19844 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1572 - i32.const 1568 - i32.store - i32.const 1576 - i32.const 1568 - i32.store - i32.const 1568 - global.set $~lib/rt/itcms/pinSpace - i32.const 1604 - i32.const 1600 - i32.store - i32.const 1608 - i32.const 1600 - i32.store - i32.const 1600 - global.set $~lib/rt/itcms/toSpace - i32.const 1748 - i32.const 1744 - i32.store - i32.const 1752 - i32.const 1744 - 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 $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 3460 - i32.lt_s - if - i32.const 19872 - i32.const 19920 - 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 $1 - 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 $1 - br $__inlined_func$~lib/util/number/itoa32 - end + i32.const 1200 + i32.load + call_indirect $0 (type $i32_=>_i32) + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 + i32.const 4 i32.sub - local.get $1 - local.get $1 - i32.const 31 - i32.shr_u - local.tee $3 - select - local.tee $0 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) + 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 $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.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1424 + local.set $1 + br $__inlined_func$~lib/util/number/itoa32 end - else + i32.const 0 + local.get $1 + i32.sub local.get $1 - i32.const 10000000 + local.get $1 + i32.const 31 + i32.shr_u + local.tee $4 + select + local.tee $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 100000 i32.lt_u if (result i32) local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - 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 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 + 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 $4 + i32.add + local.tee $2 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $while-continue|0 + local.get $0 + i32.const 10000 i32.ge_u - i32.add + if + local.get $0 + i32.const 10000 + i32.rem_u + local.set $3 + 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 $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1836 + i32.add + i64.load32_u + local.get $3 + 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 $1 - i32.store - loop $while-continue|0 local.get $0 - i32.const 10000 + i32.const 100 i32.ge_u 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 local.get $2 - i32.const 4 + i32.const 2 i32.sub local.tee $2 i32.const 1 i32.shl 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 + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + 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 + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.const 48 + i32.add + i32.store16 end - end - local.get $0 - i32.const 100 - i32.ge_u - if - local.get $1 - local.get $2 - i32.const 2 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1836 - i32.add - i32.load - i32.store - local.get $0 - i32.const 100 - i32.div_u - local.set $0 - end - local.get $0 - i32.const 10 - i32.ge_u - if - local.get $1 - local.get $2 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 2 - i32.shl - i32.const 1836 - i32.add - i32.load - i32.store - else - local.get $1 - local.get $2 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 48 + local.get $4 + if + local.get $1 + 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 $1 - 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 - local.get $1 - local.set $0 - 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 $1 + i32.store local.get $0 i32.const 3408 - i32.eq - br_if $__inlined_func$~lib/string/String.__eq - drop - i32.const 0 - local.get $0 - i32.eqz - br_if $__inlined_func$~lib/string/String.__eq - drop - i32.const 0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - i32.const 3404 - i32.load - i32.const 1 - i32.shr_u - 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 $2 - i32.const 7 - i32.and + i32.store offset=4 + block $__inlined_func$~lib/string/String.__eq (result i32) i32.const 1 local.get $1 - local.tee $0 - i32.const 4 - i32.ge_u + i32.const 3408 + i32.eq + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 + i32.const 3408 + i32.const 0 + local.get $1 select i32.eqz - if - loop $do-continue|0 - local.get $2 - i64.load - 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 + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const 3404 + i32.load + i32.const 1 + i32.shr_u + 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 $4 + local.get $1 + local.tee $0 + i32.const 7 + i32.and + i32.const 1 + local.get $2 + local.tee $1 + i32.const 4 + i32.ge_u + select + i32.eqz + if + loop $do-continue|0 local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-continue|0 + i64.load + local.get $4 + i64.load + i64.eq + if + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $4 + i32.const 8 + i32.add + local.set $4 + local.get $1 + i32.const 4 + i32.sub + local.tee $1 + i32.const 4 + i32.ge_u + br_if $do-continue|0 + end end end - end - loop $while-continue|1 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $1 - if + loop $while-continue|1 + local.get $1 + local.tee $2 + i32.const 1 + i32.sub + local.set $1 local.get $2 - i32.load16_u - local.tee $4 - local.get $3 - i32.load16_u - local.tee $1 - i32.ne if local.get $4 - local.get $1 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl + i32.load16_u + local.tee $2 + local.get $0 + i32.load16_u + local.tee $3 + i32.ne + if + local.get $3 + local.get $2 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $4 + i32.const 2 + i32.add + local.set $4 + br $while-continue|1 end - 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 + i32.const 0 end - i32.const 0 + i32.eqz end i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 11 + 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 - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 11 - 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 + i32.const 19872 + i32.const 19920 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) ) diff --git a/tests/compiler/resolve-nested.optimized.wat b/tests/compiler/resolve-nested.optimized.wat index 0ee6fbac89..92429aaf40 100644 --- a/tests/compiler/resolve-nested.optimized.wat +++ b/tests/compiler/resolve-nested.optimized.wat @@ -178,16 +178,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1440 i32.load i32.gt_u @@ -199,7 +199,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1444 @@ -215,26 +215,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -343,8 +343,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -352,11 +350,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -364,25 +363,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -591,7 +591,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -599,6 +598,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -614,7 +614,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -622,6 +621,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -676,11 +676,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -704,11 +704,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -868,17 +868,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -938,15 +938,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1074,12 +1074,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1217,20 +1215,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if - i32.const 4 memory.size - local.tee $1 + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1239,18 +1238,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1258,15 +1255,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1293,12 +1290,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1308,7 +1305,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1317,19 +1314,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1360,26 +1357,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 + local.get $2 local.get $1 - local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total diff --git a/tests/compiler/resolve-new.optimized.wat b/tests/compiler/resolve-new.optimized.wat index 2c5ee07dfd..f0ef00803a 100644 --- a/tests/compiler/resolve-new.optimized.wat +++ b/tests/compiler/resolve-new.optimized.wat @@ -174,16 +174,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1440 i32.load i32.gt_u @@ -195,7 +195,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1444 @@ -211,26 +211,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -339,8 +339,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -348,11 +346,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -360,25 +359,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -587,7 +587,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -595,6 +594,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -610,7 +610,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -618,6 +617,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -672,11 +672,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -700,11 +700,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -864,17 +864,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -934,15 +934,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1070,12 +1070,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1274,7 +1272,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store global.get $~lib/rt/itcms/total @@ -1328,20 +1326,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz if - i32.const 4 memory.size - local.tee $0 + local.tee $1 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $1 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1350,18 +1349,16 @@ i32.and i32.const 16 i32.shr_u - local.set $2 - local.get $0 - local.get $2 + local.tee $0 local.get $0 - local.get $2 - i32.gt_s + local.get $1 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $0 memory.grow i32.const 0 i32.lt_s @@ -1369,15 +1366,15 @@ unreachable end end + local.get $2 local.get $1 - local.get $0 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $1 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1404,22 +1401,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load - local.tee $2 + local.tee $1 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 $0 - local.get $2 + local.get $1 i32.const 2 i32.and i32.const 28 @@ -1428,19 +1425,19 @@ local.get $0 i32.const 32 i32.add - local.tee $2 - local.get $4 + local.tee $1 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $1 local.get $2 + local.get $1 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $2 + local.get $1 i32.const -2 i32.and i32.store @@ -1471,26 +1468,26 @@ 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 $1 + local.set $3 local.get $0 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 local.get $0 - local.get $1 + local.get $3 i32.load offset=4 i32.const 3 i32.and 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 @@ -1502,16 +1499,16 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $4 local.get $0 i32.const 20 i32.add - local.tee $0 + local.tee $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 $4 ) ) diff --git a/tests/compiler/resolve-propertyaccess.optimized.wat b/tests/compiler/resolve-propertyaccess.optimized.wat index ef53c0bd57..cca6a9149e 100644 --- a/tests/compiler/resolve-propertyaccess.optimized.wat +++ b/tests/compiler/resolve-propertyaccess.optimized.wat @@ -209,16 +209,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 3680 i32.load i32.gt_u @@ -230,7 +230,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 3684 @@ -246,26 +246,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -374,8 +374,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -383,11 +381,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -395,25 +394,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -622,7 +622,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -630,6 +629,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -645,7 +645,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -653,6 +652,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -707,11 +707,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1616 @@ -735,11 +735,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1616 @@ -899,17 +899,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -969,15 +969,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1105,12 +1105,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1150,13 +1148,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1196,10 +1194,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1208,7 +1206,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1217,6 +1214,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1230,12 +1228,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1248,7 +1246,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1257,6 +1254,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1336,7 +1334,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $3 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1348,7 +1346,6 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $2 i32.const 12 i32.le_u @@ -1365,9 +1362,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if + memory.size + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1386,14 +1385,13 @@ local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $3 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1403,18 +1401,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1422,18 +1418,18 @@ unreachable end end - local.get $3 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1445,7 +1441,7 @@ end end local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1458,12 +1454,12 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $4 + local.get $3 i32.load - local.set $6 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1477,54 +1473,54 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const -4 i32.and local.get $2 i32.sub - local.tee $5 + local.tee $6 i32.const 16 i32.ge_u if - local.get $4 + local.get $3 local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.and i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add local.tee $2 - local.get $5 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $3 local.get $4 - local.get $6 i32.const -2 i32.and i32.store - local.get $4 + local.get $3 i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1534,37 +1530,37 @@ i32.and i32.store end - local.get $4 + local.get $3 local.get $1 i32.store offset=12 - local.get $4 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $4 - local.get $1 + local.set $1 + local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $2 - local.get $4 - local.get $2 + local.get $1 + local.get $3 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1572,22 +1568,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.const 20 i32.add - local.tee $2 - local.set $3 + local.tee $3 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $3 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1596,18 +1592,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $3 + 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 @@ -1616,10 +1612,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1628,38 +1624,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 - local.get $3 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1672,20 +1668,20 @@ i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 - local.get $5 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1708,8 +1704,8 @@ i32.sub i32.const 0 i32.store - local.get $5 - local.get $5 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1717,7 +1713,7 @@ local.tee $0 i32.add local.set $1 - local.get $3 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1750,7 +1746,7 @@ end end end - local.get $2 + local.get $3 ) (func $~lib/number/I32#toString (param $0 i32) (result i32) (local $1 i32) @@ -1784,10 +1780,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1248 - local.set $0 + local.set $1 br $__inlined_func$~lib/util/number/itoa32 end - global.get $~lib/memory/__stack_pointer i32.const 0 local.get $0 i32.sub @@ -1797,48 +1792,50 @@ i32.shr_u local.tee $3 select - local.tee $1 local.tee $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add @@ -1851,22 +1848,22 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $while-continue|0 - local.get $1 + local.get $0 i32.const 10000 i32.ge_u if - local.get $1 + local.get $0 i32.const 10000 i32.rem_u local.set $4 - local.get $1 + local.get $0 i32.const 10000 i32.div_u - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 i32.const 4 i32.sub @@ -1897,11 +1894,11 @@ br $while-continue|0 end end - local.get $1 + local.get $0 i32.const 100 i32.ge_u if - local.get $0 + local.get $1 local.get $2 i32.const 2 i32.sub @@ -1909,7 +1906,7 @@ i32.const 1 i32.shl i32.add - local.get $1 + local.get $0 i32.const 100 i32.rem_u i32.const 2 @@ -1918,23 +1915,23 @@ i32.add i32.load i32.store - local.get $1 + local.get $0 i32.const 100 i32.div_u - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 10 i32.ge_u if - local.get $0 + local.get $1 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 1660 @@ -1942,21 +1939,21 @@ i32.load i32.store else - local.get $0 + local.get $1 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.get $1 + local.get $0 i32.const 48 i32.add i32.store16 end local.get $3 if - local.get $0 + local.get $1 i32.const 45 i32.store16 end @@ -1965,7 +1962,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $0 + local.get $1 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index 11bd5e1b04..da56a8608e 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -213,16 +213,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 4608 i32.load i32.gt_u @@ -234,7 +234,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 4612 @@ -250,26 +250,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -378,8 +378,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -387,11 +385,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -399,25 +398,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -626,7 +626,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -634,6 +633,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -649,7 +649,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -657,6 +656,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -711,11 +711,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1616 @@ -739,11 +739,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1616 @@ -903,17 +903,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -973,15 +973,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1109,12 +1109,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1154,13 +1152,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1200,10 +1198,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1212,7 +1210,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1221,6 +1218,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1234,12 +1232,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1252,7 +1250,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1261,6 +1258,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1318,8 +1316,8 @@ br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1333,15 +1331,15 @@ local.get $0 i32.const 16 i32.add - local.set $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.set $4 - local.get $2 + local.tee $3 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1352,14 +1350,13 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1367,19 +1364,21 @@ i32.const 4 i32.sub end - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if - local.get $2 + memory.size + local.tee $4 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 1 i32.const 27 - local.get $2 + local.get $1 i32.clz i32.sub i32.shl @@ -1387,17 +1386,16 @@ i32.sub i32.add else - local.get $2 + local.get $1 end i32.const 4 - memory.size - local.tee $5 + local.get $3 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $4 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1407,18 +1405,16 @@ i32.and i32.const 16 i32.shr_u - local.set $1 - local.get $5 - local.get $1 - local.get $1 - local.get $5 + local.tee $2 + local.get $2 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1426,18 +1422,18 @@ unreachable end end + local.get $3 local.get $4 - local.get $5 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1448,8 +1444,8 @@ unreachable end end + local.get $1 local.get $2 - local.get $3 i32.load i32.const -4 i32.and @@ -1462,13 +1458,13 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $5 local.get $2 + i32.load + local.set $4 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -1481,54 +1477,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $2 + local.get $1 i32.sub - local.tee $1 + local.tee $5 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $5 + local.get $1 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $1 local.get $2 - local.get $3 i32.const 4 i32.add i32.add - local.tee $2 - local.get $1 + local.tee $1 + local.get $5 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $1 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.get $1 local.get $2 - local.get $3 i32.load i32.const -4 i32.and @@ -1538,37 +1534,37 @@ i32.and i32.store end - local.get $3 + local.get $2 i32.const 1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $3 i32.load offset=8 - local.set $4 - local.get $3 + local.set $1 local.get $2 + local.get $3 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $3 - local.get $4 + local.get $2 + local.get $1 i32.store offset=8 - local.get $4 - local.get $3 - local.get $4 + local.get $1 + local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1576,10 +1572,10 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add - local.tee $4 + local.tee $3 local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 @@ -1754,7 +1750,7 @@ end end end - local.get $4 + local.get $3 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -1771,13 +1767,13 @@ i32.const 10000 i32.div_u local.set $1 - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 100 @@ -1806,13 +1802,13 @@ i32.const 100 i32.ge_u if - local.get $0 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 @@ -1832,12 +1828,12 @@ i32.const 10 i32.ge_u if - local.get $0 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 2 @@ -1847,12 +1843,12 @@ i32.load i32.store else - local.get $0 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 48 @@ -2572,29 +2568,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2616,25 +2610,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2707,25 +2701,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2794,25 +2788,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2852,143 +2846,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3015,63 +2995,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3098,23 +3072,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3753,11 +3725,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 4644 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -3801,11 +3773,12 @@ global.get $~lib/memory/__stack_pointer i32.const 4644 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 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 2 call $~lib/rt/itcms/__new local.tee $0 @@ -3844,7 +3817,7 @@ global.get $~lib/memory/__stack_pointer i32.const 4644 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -3857,14 +3830,7 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $1 - i64.const 32 - i64.shr_u - local.tee $4 - i64.const 31 - i64.shl - local.tee $6 - local.get $1 + local.tee $3 i64.const 4294967295 i64.and local.tee $1 @@ -3877,14 +3843,13 @@ i64.const 32 i64.shr_u i64.add - local.tee $3 - i64.const 32 - i64.shr_u - i64.add - local.get $3 + local.tee $4 i64.const 4294967295 i64.and - local.get $4 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $3 i64.const 10 i64.shl i64.add @@ -3892,59 +3857,68 @@ i64.add i64.const 32 i64.shr_u + local.get $3 + i64.const 31 + i64.shl + local.tee $6 + local.get $4 + i64.const 32 + i64.shr_u + i64.add i64.add i64.const 1 i64.sub - local.set $3 - local.get $6 - local.get $5 + local.tee $4 + local.get $3 + i64.const 4294966784 + 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.get $5 + local.tee $1 i64.const 4294967295 i64.and + i64.add i64.const 2147483647 i64.add i64.const 32 i64.shr_u - i64.add local.get $3 - global.get $~lib/util/number/_exp_pow - i32.const 1 - i32.add - local.get $3 - local.get $4 - 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.add + i64.const 1 + i64.add + i64.sub + local.set $1 + local.get $6 + local.get $5 i64.const 32 i64.shr_u i64.add - local.get $4 - i64.const 4294966784 - i64.mul - local.get $1 + local.get $5 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 + local.get $4 + global.get $~lib/util/number/_exp_pow + i32.const 1 + i32.add + local.get $1 call $~lib/util/number/genDigits global.get $~lib/util/number/_K call $~lib/util/number/prettify diff --git a/tests/compiler/resolve-unary.optimized.wat b/tests/compiler/resolve-unary.optimized.wat index d32f2bd0c1..8ceaeaca6c 100644 --- a/tests/compiler/resolve-unary.optimized.wat +++ b/tests/compiler/resolve-unary.optimized.wat @@ -229,16 +229,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 3728 i32.load i32.gt_u @@ -250,7 +250,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 3732 @@ -266,26 +266,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -394,8 +394,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -403,11 +401,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -415,25 +414,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -642,7 +642,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -650,6 +649,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -665,7 +665,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -673,6 +672,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -727,11 +727,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1616 @@ -755,11 +755,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1616 @@ -919,17 +919,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -989,15 +989,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1125,12 +1125,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1170,13 +1168,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1216,10 +1214,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1228,7 +1226,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1237,6 +1234,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1250,12 +1248,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1268,7 +1266,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1277,6 +1274,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1356,7 +1354,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $3 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1368,7 +1366,6 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $2 i32.const 12 i32.le_u @@ -1385,9 +1382,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if + memory.size + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1406,14 +1405,13 @@ local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $3 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1423,18 +1421,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1442,18 +1438,18 @@ unreachable end end - local.get $3 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1465,7 +1461,7 @@ end end local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1478,12 +1474,12 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $4 + local.get $3 i32.load - local.set $6 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1497,54 +1493,54 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const -4 i32.and local.get $2 i32.sub - local.tee $5 + local.tee $6 i32.const 16 i32.ge_u if - local.get $4 + local.get $3 local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.and i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add local.tee $2 - local.get $5 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $3 local.get $4 - local.get $6 i32.const -2 i32.and i32.store - local.get $4 + local.get $3 i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1554,37 +1550,37 @@ i32.and i32.store end - local.get $4 + local.get $3 local.get $1 i32.store offset=12 - local.get $4 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $4 - local.get $1 + local.set $1 + local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $2 - local.get $4 - local.get $2 + local.get $1 + local.get $3 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1592,22 +1588,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.const 20 i32.add - local.tee $2 - local.set $3 + local.tee $3 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $3 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1616,18 +1612,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $3 + 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 @@ -1636,10 +1632,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1648,38 +1644,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 - local.get $3 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1692,20 +1688,20 @@ i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 - local.get $5 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1728,8 +1724,8 @@ i32.sub i32.const 0 i32.store - local.get $5 - local.get $5 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1737,7 +1733,7 @@ local.tee $0 i32.add local.set $1 - local.get $3 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1770,7 +1766,7 @@ end end end - local.get $2 + local.get $3 ) (func $~lib/number/I32#toString (param $0 i32) (result i32) (local $1 i32) @@ -1804,10 +1800,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1248 - local.set $0 + local.set $1 br $__inlined_func$~lib/util/number/itoa32 end - global.get $~lib/memory/__stack_pointer i32.const 0 local.get $0 i32.sub @@ -1817,48 +1812,50 @@ i32.shr_u local.tee $3 select - local.tee $1 local.tee $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add @@ -1871,22 +1868,22 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $while-continue|0 - local.get $1 + local.get $0 i32.const 10000 i32.ge_u if - local.get $1 + local.get $0 i32.const 10000 i32.rem_u local.set $4 - local.get $1 + local.get $0 i32.const 10000 i32.div_u - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 i32.const 4 i32.sub @@ -1917,11 +1914,11 @@ br $while-continue|0 end end - local.get $1 + local.get $0 i32.const 100 i32.ge_u if - local.get $0 + local.get $1 local.get $2 i32.const 2 i32.sub @@ -1929,7 +1926,7 @@ i32.const 1 i32.shl i32.add - local.get $1 + local.get $0 i32.const 100 i32.rem_u i32.const 2 @@ -1938,23 +1935,23 @@ i32.add i32.load i32.store - local.get $1 + local.get $0 i32.const 100 i32.div_u - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 10 i32.ge_u if - local.get $0 + local.get $1 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 1660 @@ -1962,21 +1959,21 @@ i32.load i32.store else - local.get $0 + local.get $1 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.get $1 + local.get $0 i32.const 48 i32.add i32.store16 end local.get $3 if - local.get $0 + local.get $1 i32.const 45 i32.store16 end @@ -1985,7 +1982,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $0 + local.get $1 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/rt/finalize.optimized.wat b/tests/compiler/rt/finalize.optimized.wat index da8125e469..5d2e896d7c 100644 --- a/tests/compiler/rt/finalize.optimized.wat +++ b/tests/compiler/rt/finalize.optimized.wat @@ -172,16 +172,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1488 i32.load i32.gt_u @@ -193,7 +193,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1492 @@ -209,26 +209,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -337,8 +337,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -346,11 +344,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -358,25 +357,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -585,7 +585,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -593,6 +592,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -608,7 +608,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -616,6 +615,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -670,11 +670,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1440 @@ -698,11 +698,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1440 @@ -862,17 +862,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -932,15 +932,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1083,12 +1083,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1224,7 +1222,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store global.get $~lib/rt/itcms/total @@ -1278,20 +1276,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz if - i32.const 4 memory.size - local.tee $0 + local.tee $1 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $1 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1300,18 +1299,16 @@ i32.and i32.const 16 i32.shr_u - local.set $2 - local.get $0 - local.get $2 + local.tee $0 local.get $0 - local.get $2 - i32.gt_s + local.get $1 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $0 memory.grow i32.const 0 i32.lt_s @@ -1319,15 +1316,15 @@ unreachable end end + local.get $2 local.get $1 - local.get $0 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $1 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1354,22 +1351,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load - local.tee $2 + local.tee $1 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 $0 - local.get $2 + local.get $1 i32.const 2 i32.and i32.const 28 @@ -1378,19 +1375,19 @@ local.get $0 i32.const 32 i32.add - local.tee $2 - local.get $4 + local.tee $1 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $1 local.get $2 + local.get $1 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $2 + local.get $1 i32.const -2 i32.and i32.store @@ -1421,26 +1418,26 @@ 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 $1 + local.set $3 local.get $0 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 local.get $0 - local.get $1 + local.get $3 i32.load offset=4 i32.const 3 i32.and 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 @@ -1452,17 +1449,17 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $4 local.get $0 i32.const 20 i32.add - local.tee $0 + local.tee $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 $4 global.set $rt/finalize/expect global.get $~lib/rt/itcms/state i32.const 0 diff --git a/tests/compiler/rt/flags.optimized.wat b/tests/compiler/rt/flags.optimized.wat index 226e38f4e9..8290635509 100644 --- a/tests/compiler/rt/flags.optimized.wat +++ b/tests/compiler/rt/flags.optimized.wat @@ -15,10 +15,10 @@ (export "memory" (memory $0)) (start $~start) (func $~lib/rt/__typeinfo (param $0 i32) (result i32) - local.get $0 i32.const 1200 i32.load - i32.gt_u + local.get $0 + i32.lt_u if i32.const 1056 i32.const 1120 diff --git a/tests/compiler/rt/instanceof.optimized.wat b/tests/compiler/rt/instanceof.optimized.wat index 3eba342979..854d28e7b5 100644 --- a/tests/compiler/rt/instanceof.optimized.wat +++ b/tests/compiler/rt/instanceof.optimized.wat @@ -47,50 +47,38 @@ (local $1 i32) global.get $rt/instanceof/animal local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end global.get $rt/instanceof/cat local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end global.get $rt/instanceof/blackcat local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end global.get $rt/instanceof/nullableAnimal local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end global.get $rt/instanceof/nullableCat local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end global.get $rt/instanceof/nullableBlackcat local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end i32.const 1248 @@ -224,16 +212,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1504 i32.load i32.gt_u @@ -245,7 +233,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1508 @@ -261,26 +249,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -389,8 +377,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -398,11 +384,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -410,25 +397,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -637,7 +625,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -645,6 +632,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -660,7 +648,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -668,6 +655,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -722,11 +710,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -750,11 +738,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -914,17 +902,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -984,15 +972,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1120,12 +1108,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1263,20 +1249,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if - i32.const 4 memory.size - local.tee $1 + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1285,18 +1272,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1304,15 +1289,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1339,12 +1324,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1354,7 +1339,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1363,19 +1348,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1406,26 +1391,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 + local.get $2 local.get $1 - local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total diff --git a/tests/compiler/rt/runtime-incremental-export.optimized.wat b/tests/compiler/rt/runtime-incremental-export.optimized.wat index 3bbf08ee89..6ddfa285f3 100644 --- a/tests/compiler/rt/runtime-incremental-export.optimized.wat +++ b/tests/compiler/rt/runtime-incremental-export.optimized.wat @@ -134,11 +134,11 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 ) @@ -152,7 +152,7 @@ if local.get $0 i32.load offset=8 - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -162,7 +162,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 global.set $~lib/rt/itcms/iter end local.get $0 @@ -352,8 +352,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -361,11 +359,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -373,25 +372,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -600,7 +600,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -608,6 +607,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -623,7 +623,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -631,6 +630,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -685,11 +685,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -713,11 +713,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -877,17 +877,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -947,15 +947,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1083,12 +1083,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1128,13 +1126,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1174,10 +1172,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1186,7 +1184,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1195,6 +1192,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1208,12 +1206,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1226,7 +1224,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1235,6 +1232,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1314,7 +1312,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $3 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1326,7 +1324,6 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $2 i32.const 12 i32.le_u @@ -1343,9 +1340,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if + memory.size + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1364,14 +1363,13 @@ local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $3 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1381,18 +1379,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1400,18 +1396,18 @@ unreachable end end - local.get $3 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1423,7 +1419,7 @@ end end local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1436,12 +1432,12 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $4 + local.get $3 i32.load - local.set $6 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1455,54 +1451,54 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const -4 i32.and local.get $2 i32.sub - local.tee $5 + local.tee $6 i32.const 16 i32.ge_u if - local.get $4 + local.get $3 local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.and i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add local.tee $2 - local.get $5 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $3 local.get $4 - local.get $6 i32.const -2 i32.and i32.store - local.get $4 + local.get $3 i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1512,37 +1508,37 @@ i32.and i32.store end - local.get $4 + local.get $3 local.get $1 i32.store offset=12 - local.get $4 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $4 - local.get $1 + local.set $1 + local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $2 - local.get $4 - local.get $2 + local.get $1 + local.get $3 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1550,22 +1546,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.const 20 i32.add - local.tee $2 - local.set $3 + local.tee $3 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $3 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1574,18 +1570,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $3 + 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 @@ -1594,10 +1590,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1606,38 +1602,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 - local.get $3 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1650,20 +1646,20 @@ i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 - local.get $5 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1686,8 +1682,8 @@ i32.sub i32.const 0 i32.store - local.get $5 - local.get $5 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1695,7 +1691,7 @@ local.tee $0 i32.add local.set $1 - local.get $3 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1728,7 +1724,7 @@ end end end - local.get $2 + local.get $3 ) (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/rt/runtime-minimal-export.optimized.wat b/tests/compiler/rt/runtime-minimal-export.optimized.wat index 3971c2f831..c0721525ea 100644 --- a/tests/compiler/rt/runtime-minimal-export.optimized.wat +++ b/tests/compiler/rt/runtime-minimal-export.optimized.wat @@ -133,8 +133,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -142,11 +140,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -154,25 +153,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -381,7 +381,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -389,6 +388,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -404,7 +404,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -412,6 +411,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -466,11 +466,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1184 @@ -494,11 +494,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1184 @@ -643,13 +643,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -689,10 +689,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -701,7 +701,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -710,6 +709,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -723,12 +723,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -741,7 +741,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -750,6 +749,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -777,14 +777,15 @@ local.get $0 i32.const 16 i32.add - local.set $6 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $6 + local.tee $5 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -795,14 +796,13 @@ call $~lib/builtins/abort unreachable end - local.tee $2 - local.get $6 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $6 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -812,9 +812,11 @@ end local.tee $3 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $2 i32.eqz if + memory.size + local.tee $4 local.get $3 i32.const 536870910 i32.lt_u @@ -833,14 +835,13 @@ local.get $3 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -850,18 +851,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $2 + local.get $2 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -869,18 +868,18 @@ unreachable end end - local.get $2 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $5 local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $2 i32.eqz if i32.const 0 @@ -892,7 +891,7 @@ end end local.get $3 - local.get $6 + local.get $2 i32.load i32.const -4 i32.and @@ -905,12 +904,12 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $2 - local.get $6 call $~lib/rt/tlsf/removeBlock - local.get $6 + local.get $2 i32.load - local.set $5 + local.set $4 local.get $3 i32.const 4 i32.add @@ -924,54 +923,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and local.get $3 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $6 + local.get $2 local.get $3 - local.get $5 + local.get $4 i32.const 2 i32.and i32.or i32.store local.get $3 - local.get $6 + 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 $2 + local.get $5 local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $6 - local.get $5 + local.get $2 + local.get $4 i32.const -2 i32.and i32.store - local.get $6 + local.get $2 i32.const 4 i32.add local.tee $3 - local.get $6 + local.get $2 i32.load i32.const -4 i32.and i32.add local.get $3 - local.get $6 + local.get $2 i32.load i32.const -4 i32.and @@ -981,26 +980,26 @@ i32.and i32.store end - local.get $6 + local.get $2 local.get $1 i32.store offset=12 - local.get $6 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/tcms/fromSpace local.tee $1 i32.load offset=8 local.set $0 - local.get $6 + local.get $2 local.get $1 global.get $~lib/rt/tcms/white i32.or i32.store offset=4 - local.get $6 + local.get $2 local.get $0 i32.store offset=8 local.get $0 - local.get $6 + local.get $2 local.get $0 i32.load offset=4 i32.const 3 @@ -1008,10 +1007,10 @@ i32.or i32.store offset=4 local.get $1 - local.get $6 + local.get $2 i32.store offset=8 global.get $~lib/rt/tcms/total - local.get $6 + local.get $2 i32.load i32.const -4 i32.and @@ -1019,7 +1018,7 @@ i32.add i32.add global.set $~lib/rt/tcms/total - local.get $6 + local.get $2 i32.const 20 i32.add ) @@ -1066,11 +1065,11 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 ) @@ -1241,11 +1240,11 @@ local.get $5 i32.ne if - local.get $4 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $4 i32.ne if i32.const 0 @@ -1268,14 +1267,14 @@ end end global.get $~lib/rt/tcms/fromSpace - local.tee $2 + local.tee $3 i32.load offset=4 i32.const -4 i32.and local.set $0 loop $while-continue|2 local.get $0 - local.get $2 + local.get $3 i32.ne if global.get $~lib/rt/tcms/white @@ -1332,7 +1331,7 @@ local.get $0 i32.const 4 i32.sub - local.set $3 + local.set $2 local.get $0 i32.const 15 i32.and @@ -1342,7 +1341,7 @@ if (result i32) i32.const 1 else - local.get $3 + local.get $2 i32.load i32.const 1 i32.and @@ -1355,13 +1354,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $3 + local.get $2 + local.tee $0 + local.get $0 i32.load i32.const 1 i32.or i32.store - local.get $3 + local.get $0 call $~lib/rt/tlsf/insertBlock end end @@ -1369,15 +1369,15 @@ br $while-continue|2 end end - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.store offset=4 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.store offset=8 local.get $5 global.set $~lib/rt/tcms/fromSpace - local.get $2 + local.get $3 global.set $~lib/rt/tcms/toSpace local.get $4 global.set $~lib/rt/tcms/white diff --git a/tests/compiler/rt/runtime-stub-export.optimized.wat b/tests/compiler/rt/runtime-stub-export.optimized.wat index 7a9ee9f9ef..46e0e6bc25 100644 --- a/tests/compiler/rt/runtime-stub-export.optimized.wat +++ b/tests/compiler/rt/runtime-stub-export.optimized.wat @@ -41,7 +41,7 @@ local.get $0 i32.const 16 i32.add - local.tee $2 + local.tee $7 i32.const 1073741820 i32.gt_u if @@ -53,34 +53,34 @@ unreachable end global.get $~lib/rt/stub/offset - local.tee $6 + local.tee $5 i32.const 4 i32.add - local.tee $4 - local.get $2 + local.tee $2 + local.get $7 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.tee $7 + local.tee $4 i32.add - local.tee $2 + local.tee $3 memory.size - local.tee $5 + local.tee $6 i32.const 16 i32.shl i32.const 15 i32.add i32.const -16 i32.and - local.tee $3 + local.tee $7 i32.gt_u if - local.get $5 - local.get $2 + local.get $6 local.get $3 + local.get $7 i32.sub i32.const 65535 i32.add @@ -88,16 +88,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $5 - i32.lt_s + local.tee $7 + local.get $6 + local.get $7 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -106,27 +106,28 @@ end end end - local.get $2 + local.get $3 global.set $~lib/rt/stub/offset - local.get $6 - local.get $7 - i32.store + local.get $5 local.get $4 + i32.store + local.get $2 + local.tee $3 i32.const 4 i32.sub - local.tee $2 + local.tee $7 i32.const 0 i32.store offset=4 - local.get $2 + local.get $7 i32.const 0 i32.store offset=8 - local.get $2 + local.get $7 local.get $1 i32.store offset=12 - local.get $2 + local.get $7 local.get $0 i32.store offset=16 - local.get $4 + local.get $3 i32.const 16 i32.add ) diff --git a/tests/compiler/std-wasi/console.optimized.wat b/tests/compiler/std-wasi/console.optimized.wat index a899cf8df1..8bfae98696 100644 --- a/tests/compiler/std-wasi/console.optimized.wat +++ b/tests/compiler/std-wasi/console.optimized.wat @@ -1,11 +1,11 @@ (module (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_none (func)) (type $i32_=>_i32 (func (param i32) (result i32))) + (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 $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) @@ -297,12 +297,12 @@ i32.const 1 i32.shl i32.add - local.set $4 + local.set $5 local.get $2 local.set $1 loop $while-continue|0 local.get $0 - local.get $4 + local.get $5 i32.lt_u if local.get $0 @@ -347,7 +347,7 @@ i32.const 55296 i32.eq if - local.get $4 + local.get $5 local.get $0 i32.const 2 i32.add @@ -360,13 +360,12 @@ if local.get $0 i32.load16_u offset=2 - local.tee $5 + local.tee $4 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $1 local.get $3 i32.const 1023 i32.and @@ -374,18 +373,26 @@ i32.shl i32.const 65536 i32.add - local.get $5 + local.get $4 i32.const 1023 i32.and i32.or - local.tee $3 + local.tee $4 i32.const 63 i32.and i32.const 128 i32.or + local.set $3 + local.get $1 + local.get $4 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + local.get $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 6 i32.shr_u i32.const 63 @@ -395,7 +402,7 @@ i32.const 16 i32.shl i32.or - local.get $3 + local.get $4 i32.const 12 i32.shr_u i32.const 63 @@ -405,11 +412,6 @@ i32.const 8 i32.shl i32.or - local.get $3 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or i32.or i32.store local.get $1 @@ -1103,8 +1105,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -1112,11 +1112,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -1124,25 +1125,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -1351,7 +1353,6 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -1359,6 +1360,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -1374,7 +1376,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -1382,6 +1383,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -1436,11 +1438,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 4336 @@ -1464,11 +1466,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 4336 @@ -1613,13 +1615,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1659,10 +1661,10 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1671,7 +1673,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1680,6 +1681,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1693,12 +1695,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1711,7 +1713,6 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1720,6 +1721,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1727,11 +1729,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - local.get $1 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $1 + local.get $0 i32.const 1073741820 i32.gt_u if @@ -1743,14 +1753,12 @@ unreachable end local.get $0 - local.tee $2 - local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1760,9 +1768,11 @@ end local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if + memory.size + local.tee $3 local.get $0 i32.const 536870910 i32.lt_u @@ -1781,14 +1791,13 @@ local.get $0 end i32.const 4 - memory.size - local.tee $1 + local.get $1 + i32.load offset=1568 + local.get $3 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1798,18 +1807,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 - local.get $1 + local.tee $2 + local.get $2 local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1817,18 +1824,18 @@ unreachable end end - local.get $2 local.get $1 + local.get $3 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -1840,7 +1847,7 @@ end end local.get $0 - local.get $1 + local.get $2 i32.load i32.const -4 i32.and @@ -1853,12 +1860,15 @@ call $~lib/wasi/index/abort unreachable end - local.get $2 local.get $1 + local.get $2 call $~lib/rt/tlsf/removeBlock local.get $1 - i32.load local.set $3 + local.get $2 + local.tee $1 + i32.load + local.set $2 local.get $0 i32.const 4 i32.add @@ -1872,7 +1882,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $3 + local.get $2 i32.const -4 i32.and local.get $0 @@ -1883,7 +1893,7 @@ if local.get $1 local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.or @@ -1900,12 +1910,12 @@ i32.const 1 i32.or i32.store - local.get $2 + local.get $3 local.get $0 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1930,6 +1940,8 @@ i32.store end local.get $1 + i32.const 4 + i32.add ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) @@ -1974,12 +1986,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -2055,10 +2065,10 @@ i32.add i32.store i32.const 1144 - local.get $5 local.get $2 i32.const 8 i32.shl + local.get $5 i32.or local.get $3 i32.const 16 @@ -2098,15 +2108,15 @@ i32.sub i32.load offset=16 i32.add - local.set $4 + local.set $5 loop $while-continue|0 local.get $2 - local.get $4 + local.get $5 i32.lt_u if local.get $2 i32.load16_u - local.tee $5 + local.tee $4 i32.const 128 i32.lt_u if (result i32) @@ -2114,7 +2124,7 @@ i32.const 1 i32.add else - local.get $5 + local.get $4 i32.const 2048 i32.lt_u if (result i32) @@ -2122,13 +2132,13 @@ i32.const 2 i32.add else - local.get $4 + local.get $5 local.get $2 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $5 + local.get $4 i32.const 64512 i32.and i32.const 55296 @@ -2167,32 +2177,22 @@ end end local.get $3 + call $~lib/rt/tlsf/__alloc 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 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $3 local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.set $5 + local.set $4 i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 - local.get $3 - call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $4 local.get $2 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $3 i32.ne if i32.const 0 @@ -2203,10 +2203,10 @@ unreachable end i32.const 1136 - local.get $3 + local.get $2 i32.store i32.const 1140 - local.get $2 + local.get $3 i32.store local.get $0 i32.const 1136 @@ -2214,7 +2214,7 @@ i32.const 1144 call $~lib/bindings/wasi_snapshot_preview1/fd_write local.set $0 - local.get $3 + local.get $2 call $~lib/rt/tlsf/__free local.get $0 i32.const 65535 @@ -2364,16 +2364,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 7936 i32.load i32.gt_u @@ -2385,7 +2385,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 7940 @@ -2401,26 +2401,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -2477,17 +2477,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -2547,15 +2547,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -2904,15 +2904,9 @@ local.get $0 i32.const 16 i32.add - 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 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -3059,44 +3053,44 @@ local.get $7 i32.le_u if - local.get $2 local.get $1 i32.load i32.const -2048144777 i32.mul + local.get $2 i32.add i32.const 13 i32.rotl i32.const -1640531535 i32.mul local.set $2 - local.get $4 local.get $1 i32.load offset=4 i32.const -2048144777 i32.mul + local.get $4 i32.add i32.const 13 i32.rotl i32.const -1640531535 i32.mul local.set $4 - local.get $6 local.get $1 i32.load offset=8 i32.const -2048144777 i32.mul + local.get $6 i32.add i32.const 13 i32.rotl i32.const -1640531535 i32.mul local.set $6 - local.get $5 local.get $1 i32.load offset=12 i32.const -2048144777 i32.mul + local.get $5 i32.add i32.const 13 i32.rotl @@ -3110,7 +3104,6 @@ br $while-continue|0 end end - local.get $3 local.get $2 i32.const 1 i32.rotl @@ -3126,6 +3119,7 @@ i32.const 18 i32.rotl i32.add + local.get $3 i32.add else local.get $3 @@ -3144,11 +3138,11 @@ local.get $4 i32.le_u if - local.get $2 local.get $1 i32.load i32.const -1028477379 i32.mul + local.get $2 i32.add i32.const 17 i32.rotl @@ -3171,11 +3165,11 @@ local.get $1 i32.gt_u if - local.get $2 local.get $1 i32.load8_u i32.const 374761393 i32.mul + local.get $2 i32.add i32.const 11 i32.rotl @@ -3190,23 +3184,23 @@ end end local.get $2 - local.get $2 i32.const 15 i32.shr_u + local.get $2 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 else i32.const 0 @@ -3390,13 +3384,13 @@ i32.const 10000 i32.div_u local.set $1 - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 100 @@ -3425,13 +3419,13 @@ i32.const 100 i32.ge_u if - local.get $0 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 @@ -3451,12 +3445,12 @@ i32.const 10 i32.ge_u if - local.get $0 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 2 @@ -3466,12 +3460,12 @@ i32.load i32.store else - local.get $0 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 48 @@ -3665,22 +3659,22 @@ i32.rem_u local.tee $4 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 6012 i32.add i64.load32_u + i64.const 32 + i64.shl local.get $4 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 6012 i32.add i64.load32_u - i64.const 32 - i64.shl i64.or i64.store local.get $2 @@ -3696,22 +3690,22 @@ i32.div_u local.tee $3 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 6012 i32.add i64.load32_u + i64.const 32 + i64.shl local.get $3 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 6012 i32.add i64.load32_u - i64.const 32 - i64.shl i64.or i64.store br $while-continue|0 @@ -3917,11 +3911,11 @@ i32.shl i32.add i32.load - local.set $0 + local.set $5 loop $while-continue|0 - local.get $0 + local.get $5 if - local.get $0 + local.get $5 i32.load offset=16 local.tee $6 i32.const 1 @@ -3930,35 +3924,35 @@ i32.const 0 else global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 i32.load - local.tee $2 + local.tee $4 i32.store block $__inlined_func$~lib/string/String.__eq (result i32) i32.const 1 local.get $1 - local.tee $4 - local.get $2 + local.tee $2 + local.get $4 i32.eq br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 - local.get $4 - i32.const 0 local.get $2 + i32.const 0 + local.get $4 select i32.eqz br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 - local.get $2 + local.get $4 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u local.tee $3 - local.get $4 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -3968,41 +3962,40 @@ br_if $__inlined_func$~lib/string/String.__eq drop block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $2 - local.tee $5 + local.get $4 i32.const 7 i32.and - local.get $4 + local.get $2 i32.const 7 i32.and i32.or i32.const 1 local.get $3 - local.tee $2 + local.tee $0 i32.const 4 i32.ge_u select i32.eqz if loop $do-continue|0 - local.get $5 - i64.load local.get $4 i64.load + local.get $2 + i64.load i64.eq if - local.get $5 - i32.const 8 - i32.add - local.set $5 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 $2 + local.tee $0 i32.const 4 i32.ge_u br_if $do-continue|0 @@ -4010,14 +4003,14 @@ end end loop $while-continue|1 - local.get $2 + local.get $0 local.tee $3 i32.const 1 i32.sub - local.set $2 + local.set $0 local.get $3 if - local.get $5 + local.get $2 i32.load16_u local.tee $3 local.get $4 @@ -4025,19 +4018,19 @@ local.tee $7 i32.ne if - local.get $3 local.get $7 + local.get $3 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $5 - i32.const 2 - i32.add - local.set $5 local.get $4 i32.const 2 i32.add local.set $4 + local.get $2 + i32.const 2 + i32.add + local.set $2 br $while-continue|1 end end @@ -4051,13 +4044,13 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $5 return end local.get $6 i32.const -2 i32.and - local.set $0 + local.set $5 br $while-continue|0 end end @@ -4131,34 +4124,31 @@ i32.const 7972 i32.lt_s br_if $folding-inner0 - local.get $0 - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store local.get $1 - local.tee $0 - local.get $2 - local.get $2 + local.get $0 + local.get $0 call $~lib/util/hash/HASH<~lib/string/String> local.tee $4 call $~lib/map/Map<~lib/string/String,u64>#find - local.tee $1 + local.tee $2 if - local.get $1 + local.get $2 local.get $3 i64.store offset=8 else - local.get $0 + local.get $1 i32.load offset=16 - local.get $0 + local.get $1 i32.load offset=12 i32.eq if - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=20 - local.get $0 + local.get $1 i32.load offset=12 i32.const 3 i32.mul @@ -4166,10 +4156,10 @@ i32.div_s i32.lt_s if (result i32) - local.get $0 + local.get $1 i32.load offset=4 else - local.get $0 + local.get $1 i32.load offset=4 i32.const 1 i32.shl @@ -4179,43 +4169,43 @@ call $~lib/map/Map<~lib/string/String,u64>#rehash end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=8 - local.tee $5 + local.tee $2 i32.store - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=16 - local.tee $1 + local.tee $5 i32.const 1 i32.add i32.store offset=16 + local.get $2 local.get $5 - local.get $1 i32.const 24 i32.mul i32.add - local.tee $1 - local.get $2 + local.tee $2 + local.get $0 i32.store + local.get $1 local.get $0 - local.get $2 i32.const 1 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 local.get $3 i64.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 + local.get $2 local.get $1 - local.get $0 i32.load local.get $4 - local.get $0 + local.get $1 i32.load offset=4 i32.and i32.const 2 @@ -4225,7 +4215,7 @@ i32.load i32.store offset=16 local.get $0 - local.get $1 + local.get $2 i32.store end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index 9e7744fee7..cabd42745e 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -253,12 +253,12 @@ i32.const 1 i32.shl i32.add - local.set $4 + local.set $5 local.get $2 local.set $1 loop $while-continue|0 local.get $0 - local.get $4 + local.get $5 i32.lt_u if local.get $0 @@ -303,7 +303,7 @@ i32.const 55296 i32.eq if - local.get $4 + local.get $5 local.get $0 i32.const 2 i32.add @@ -316,13 +316,12 @@ if local.get $0 i32.load16_u offset=2 - local.tee $5 + local.tee $4 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $1 local.get $3 i32.const 1023 i32.and @@ -330,18 +329,26 @@ i32.shl i32.const 65536 i32.add - local.get $5 + local.get $4 i32.const 1023 i32.and i32.or - local.tee $3 + local.tee $4 i32.const 63 i32.and i32.const 128 i32.or + local.set $3 + local.get $1 + local.get $4 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + local.get $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 6 i32.shr_u i32.const 63 @@ -351,7 +358,7 @@ i32.const 16 i32.shl i32.or - local.get $3 + local.get $4 i32.const 12 i32.shr_u i32.const 63 @@ -361,11 +368,6 @@ i32.const 8 i32.shl i32.or - local.get $3 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or i32.or i32.store local.get $1 @@ -793,16 +795,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 6864 i32.load i32.gt_u @@ -814,7 +816,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 6868 @@ -830,26 +832,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -977,8 +979,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -986,11 +986,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -998,25 +999,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -1225,7 +1227,6 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -1233,6 +1234,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -1248,7 +1250,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -1256,6 +1257,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -1310,11 +1312,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1616 @@ -1338,11 +1340,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1616 @@ -1515,12 +1517,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1554,17 +1554,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1624,15 +1624,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1758,13 +1758,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1804,10 +1804,10 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1816,7 +1816,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1825,6 +1824,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1838,12 +1838,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1856,7 +1856,6 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1865,6 +1864,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1872,11 +1872,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - local.get $1 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $1 + local.get $0 i32.const 1073741820 i32.gt_u if @@ -1888,14 +1896,12 @@ unreachable end local.get $0 - local.tee $2 - local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1905,9 +1911,11 @@ end local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if + memory.size + local.tee $3 local.get $0 i32.const 536870910 i32.lt_u @@ -1926,14 +1934,13 @@ local.get $0 end i32.const 4 - memory.size - local.tee $1 + local.get $1 + i32.load offset=1568 + local.get $3 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1943,18 +1950,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 - local.get $1 + local.tee $2 + local.get $2 local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1962,18 +1967,18 @@ unreachable end end - local.get $2 local.get $1 + local.get $3 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -1985,7 +1990,7 @@ end end local.get $0 - local.get $1 + local.get $2 i32.load i32.const -4 i32.and @@ -1998,12 +2003,15 @@ call $~lib/wasi/index/abort unreachable end - local.get $2 local.get $1 + local.get $2 call $~lib/rt/tlsf/removeBlock local.get $1 - i32.load local.set $3 + local.get $2 + local.tee $1 + i32.load + local.set $2 local.get $0 i32.const 4 i32.add @@ -2017,7 +2025,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $3 + local.get $2 i32.const -4 i32.and local.get $0 @@ -2028,7 +2036,7 @@ if local.get $1 local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.or @@ -2045,12 +2053,12 @@ i32.const 1 i32.or i32.store - local.get $2 + local.get $3 local.get $0 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -2075,6 +2083,8 @@ i32.store end local.get $1 + i32.const 4 + i32.add ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (local $2 i32) @@ -2314,15 +2324,9 @@ local.get $0 i32.const 16 i32.add - 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 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -2781,13 +2785,13 @@ i32.const 10000 i32.div_u local.set $1 - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 100 @@ -2816,13 +2820,13 @@ i32.const 100 i32.ge_u if - local.get $0 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 @@ -2842,12 +2846,12 @@ i32.const 10 i32.ge_u if - local.get $0 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 2 @@ -2857,12 +2861,12 @@ i32.load i32.store else - local.get $0 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 48 @@ -3108,29 +3112,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -3152,25 +3154,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -3243,25 +3245,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -3330,25 +3332,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -3388,143 +3390,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3551,63 +3539,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3634,23 +3616,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3892,346 +3872,7 @@ end end ) - (func $~lib/typedarray/Uint8Array#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.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-inner1 - 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 - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 - i32.const 1 - i32.sub - local.tee $2 - 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 - block $folding-inner0 - local.get $2 - i32.eqz - if - block $__inlined_func$~lib/util/number/utoa32 (result i32) - local.get $3 - i32.load8_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 6900 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 5072 - br $__inlined_func$~lib/util/number/utoa32 - end - global.get $~lib/memory/__stack_pointer - local.get $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.tee $0 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $1 - local.get $0 - 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 - end - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 6652 - 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 $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $5 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $4 - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 6656 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $1 - local.get $4 - 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 $6 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $3 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $2 - i32.gt_s - 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 6900 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $3 - i32.gt_s - local.set $4 - block $__inlined_func$~lib/string/String#substring - i32.const 0 - local.get $1 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $3 - local.get $1 - local.get $4 - select - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - i32.const 1 - i32.shl - local.tee $4 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.lt_s - select - i32.const 1 - i32.shl - local.tee $2 - i32.sub - local.tee $3 - i32.eqz - 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/string/String#substring - end - i32.const 0 - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.eq - local.get $2 - select - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#substring - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $2 - i32.add - 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 $1 - local.set $0 - end - br $folding-inner0 - 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 - local.get $0 - return - end - i32.const 23312 - i32.const 23360 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (result i32) + (func $~lib/string/String.__concat (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4262,7 +3903,6 @@ i32.shl local.tee $2 local.get $0 - local.tee $1 i32.const 20 i32.sub i32.load offset=16 @@ -4272,7 +3912,7 @@ i32.shl local.tee $3 i32.add - local.tee $0 + local.tee $1 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -4280,23 +3920,23 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 4848 - local.set $0 + local.set $1 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 4768 local.get $2 call $~lib/memory/memory.copy - local.get $0 + local.get $1 local.get $2 i32.add - local.get $1 + local.get $0 local.get $3 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer @@ -4304,7 +3944,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $0 + local.get $1 ) (func $~lib/process/writeString (param $0 i32) (local $1 i32) @@ -4316,7 +3956,7 @@ i32.const -1 local.set $2 i32.const -1 - local.set $4 + local.set $3 block $break|0 block $case4|0 block $case3|0 @@ -4333,7 +3973,7 @@ end local.get $0 i32.load16_u offset=6 - local.tee $4 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 @@ -4354,7 +3994,7 @@ end local.get $0 i32.load16_u - local.tee $3 + local.tee $4 i32.const 128 i32.ge_u br_if $break|0 @@ -4371,13 +4011,13 @@ i32.const -1 i32.ne i32.add - local.get $4 + local.get $3 i32.const -1 i32.ne i32.add i32.store i32.const 6680 - local.get $3 + local.get $4 local.get $1 i32.const 8 i32.shl @@ -4386,7 +4026,7 @@ i32.const 16 i32.shl i32.or - local.get $4 + local.get $3 i32.const 24 i32.shl i32.or @@ -4396,9 +4036,7 @@ i32.const 1 i32.const 6684 call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.tee $2 - local.set $0 - local.get $2 + local.tee $0 i32.const 65535 i32.and if @@ -4423,15 +4061,15 @@ i32.sub i32.load offset=16 i32.add - local.set $4 + local.set $3 loop $while-continue|0 local.get $1 - local.get $4 + local.get $3 i32.lt_u if local.get $1 i32.load16_u - local.tee $3 + local.tee $4 i32.const 128 i32.lt_u if (result i32) @@ -4439,7 +4077,7 @@ i32.const 1 i32.add else - local.get $3 + local.get $4 i32.const 2048 i32.lt_u if (result i32) @@ -4447,13 +4085,13 @@ i32.const 2 i32.add else - local.get $4 + local.get $3 local.get $1 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $3 + local.get $4 i32.const 64512 i32.and i32.const 55296 @@ -4492,17 +4130,7 @@ end end local.get $2 - local.set $3 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $3 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $1 local.get $0 i32.const 20 @@ -4510,14 +4138,14 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $4 + local.set $3 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $3 local.get $1 call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $3 + local.get $2 i32.ne if i32.const 0 @@ -4531,18 +4159,17 @@ local.get $1 i32.store i32.const 6676 - local.get $3 + local.get $2 i32.store i32.const 1 i32.const 6672 i32.const 1 i32.const 6680 call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.tee $2 local.set $0 local.get $1 call $~lib/rt/tlsf/__free - local.get $2 + local.get $0 i32.const 65535 i32.and if @@ -4556,10 +4183,10 @@ end ) (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=8 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1472 i32.const 1680 @@ -4633,7 +4260,10 @@ i32.const 6656 i32.store local.get $0 - call $~lib/typedarray/Uint8Array#join + i32.load offset=4 + local.get $0 + i32.load offset=8 + call $~lib/util/string/joinIntegerArray global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -4878,58 +4508,481 @@ call $~lib/wasi/index/abort unreachable end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/buf + local.tee $0 + i32.store + local.get $0 + local.get $1 + i32.const 4 + i32.add + call $~lib/typedarray/Uint8Array#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/b2 + local.tee $2 + i32.store + local.get $2 + local.get $1 + call $~lib/typedarray/Uint8Array#__get + local.get $0 + i32.ne + if + i32.const 0 + i32.const 6816 + i32.const 20 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 23312 + i32.const 23360 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + ) + (func $~lib/typedarray/Uint8Array.wrap (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 + 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 + local.get $1 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $3 + i32.gt_u + if + i32.const 1472 + i32.const 1680 + i32.const 1872 + i32.const 5 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 + i32.const -1 + i32.eq + if (result i32) + local.get $3 + local.get $1 + i32.sub + else + i32.const 1168 + i32.const 1680 + i32.const 1881 + i32.const 7 + call $~lib/wasi/index/abort + unreachable + end + local.set $2 + else + local.get $3 + local.get $1 + local.get $2 + i32.add + i32.lt_s + if + i32.const 1168 + i32.const 1680 + i32.const 1886 + i32.const 7 + call $~lib/wasi/index/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + i32.store + local.get $3 + local.get $0 + call $~lib/rt/itcms/__link + local.get $3 + local.get $2 + i32.store offset=8 + local.get $3 + local.get $0 + local.get $1 + i32.add + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (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-inner1 + 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 + local.get $1 + i32.const 1 + i32.sub + local.tee $3 + 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 + return + end + block $folding-inner0 + local.get $3 + i32.eqz + if + local.get $0 + i32.load8_u + 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 6900 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa32 + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 5072 + local.set $0 + br $__inlined_func$~lib/util/number/utoa32 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $1 + 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 $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 + end + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 6652 + 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 $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $4 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 6656 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end end - end - i32.const 0 - local.set $1 - loop $for-loop|1 + local.get $6 local.get $1 - i32.const 4 - i32.lt_s + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $3 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $3 + i32.gt_s if global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $0 - i32.store - local.get $0 - local.get $1 i32.const 4 - i32.add - call $~lib/typedarray/Uint8Array#__get - local.set $0 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/b2 - local.tee $2 + i32.const 6900 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $2 - local.get $1 - call $~lib/typedarray/Uint8Array#__get - local.get $0 - i32.ne - if + block $__inlined_func$~lib/string/String#substring i32.const 0 - i32.const 6816 + local.get $1 i32.const 20 - i32.const 3 - call $~lib/wasi/index/abort - unreachable + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + local.tee $3 + local.get $0 + local.get $0 + local.get $3 + i32.gt_s + select + local.tee $3 + local.get $2 + local.get $3 + i32.gt_s + select + i32.const 1 + i32.shl + local.tee $4 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + i32.const 1 + i32.shl + local.tee $2 + i32.sub + local.tee $3 + i32.eqz + 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/string/String#substring + end + i32.const 0 + local.get $4 + local.get $0 + i32.const 1 + i32.shl + i32.eq + local.get $2 + select + if + 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/string/String#substring + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + i32.add + 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 end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + br $folding-inner0 end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end i32.const 23312 @@ -4939,102 +4992,6 @@ call $~lib/wasi/index/abort unreachable ) - (func $~lib/typedarray/Uint8Array.wrap (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 - 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 - local.get $1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $3 - i32.gt_u - if - i32.const 1472 - i32.const 1680 - i32.const 1872 - i32.const 5 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - i32.const -1 - i32.eq - if (result i32) - local.get $3 - local.get $1 - i32.sub - else - i32.const 1168 - i32.const 1680 - i32.const 1881 - i32.const 7 - call $~lib/wasi/index/abort - unreachable - end - local.set $2 - else - local.get $3 - local.get $1 - local.get $2 - i32.add - i32.lt_s - if - i32.const 1168 - i32.const 1680 - i32.const 1886 - i32.const 7 - call $~lib/wasi/index/abort - unreachable - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - call $~lib/rt/itcms/__link - local.get $3 - local.get $2 - i32.store offset=8 - local.get $3 - local.get $0 - local.get $1 - i32.add - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) (func $~lib/typedarray/Uint8Array#slice (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -5059,19 +5016,12 @@ i32.const 0 local.get $0 i32.load offset=8 - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 0 i32.gt_s select local.set $5 - local.get $1 - local.get $5 - i32.sub - local.tee $2 - i32.const 0 - i32.gt_s - local.set $3 local.get $4 i32.const 4 i32.sub @@ -5091,8 +5041,13 @@ local.tee $1 i32.store local.get $2 + local.get $5 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 i32.const 0 - local.get $3 + i32.gt_s select local.tee $6 local.set $2 diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index e0b9c8b131..20f74a9e54 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -283,12 +283,12 @@ i32.const 1 i32.shl i32.add - local.set $4 + local.set $5 local.get $2 local.set $1 loop $while-continue|0 local.get $0 - local.get $4 + local.get $5 i32.lt_u if local.get $0 @@ -333,7 +333,7 @@ i32.const 55296 i32.eq if - local.get $4 + local.get $5 local.get $0 i32.const 2 i32.add @@ -346,13 +346,12 @@ if local.get $0 i32.load16_u offset=2 - local.tee $5 + local.tee $4 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $1 local.get $3 i32.const 1023 i32.and @@ -360,18 +359,26 @@ i32.shl i32.const 65536 i32.add - local.get $5 + local.get $4 i32.const 1023 i32.and i32.or - local.tee $3 + local.tee $4 i32.const 63 i32.and i32.const 128 i32.or + local.set $3 + local.get $1 + local.get $4 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + local.get $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 6 i32.shr_u i32.const 63 @@ -381,7 +388,7 @@ i32.const 16 i32.shl i32.or - local.get $3 + local.get $4 i32.const 12 i32.shr_u i32.const 63 @@ -391,11 +398,6 @@ i32.const 8 i32.shl i32.or - local.get $3 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or i32.or i32.store local.get $1 @@ -1089,8 +1091,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -1098,11 +1098,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -1110,25 +1111,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -1337,7 +1339,6 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -1345,6 +1346,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -1360,7 +1362,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -1368,6 +1369,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -1422,11 +1424,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 4288 @@ -1450,11 +1452,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 4288 @@ -1599,13 +1601,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1645,10 +1647,10 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1657,7 +1659,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1666,6 +1667,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1679,12 +1681,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1697,7 +1699,6 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1706,6 +1707,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1713,11 +1715,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - local.get $1 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $1 + local.get $0 i32.const 1073741820 i32.gt_u if @@ -1729,14 +1739,12 @@ unreachable end local.get $0 - local.tee $2 - local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1746,9 +1754,11 @@ end local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if + memory.size + local.tee $3 local.get $0 i32.const 536870910 i32.lt_u @@ -1767,14 +1777,13 @@ local.get $0 end i32.const 4 - memory.size - local.tee $1 + local.get $1 + i32.load offset=1568 + local.get $3 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1784,18 +1793,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 - local.get $1 + local.tee $2 + local.get $2 local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1803,18 +1810,18 @@ unreachable end end - local.get $2 local.get $1 + local.get $3 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -1826,7 +1833,7 @@ end end local.get $0 - local.get $1 + local.get $2 i32.load i32.const -4 i32.and @@ -1839,12 +1846,15 @@ call $~lib/wasi/index/abort unreachable end - local.get $2 local.get $1 + local.get $2 call $~lib/rt/tlsf/removeBlock local.get $1 - i32.load local.set $3 + local.get $2 + local.tee $1 + i32.load + local.set $2 local.get $0 i32.const 4 i32.add @@ -1858,7 +1868,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $3 + local.get $2 i32.const -4 i32.and local.get $0 @@ -1869,7 +1879,7 @@ if local.get $1 local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.or @@ -1886,12 +1896,12 @@ i32.const 1 i32.or i32.store - local.get $2 + local.get $3 local.get $0 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1916,6 +1926,8 @@ i32.store end local.get $1 + i32.const 4 + i32.add ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) @@ -1960,12 +1972,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1980,7 +1990,7 @@ i32.const -1 local.set $2 i32.const -1 - local.set $4 + local.set $3 block $break|0 block $case4|0 block $case3|0 @@ -1997,7 +2007,7 @@ end local.get $0 i32.load16_u offset=6 - local.tee $4 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 @@ -2018,7 +2028,7 @@ end local.get $0 i32.load16_u - local.tee $3 + local.tee $4 i32.const 128 i32.ge_u br_if $break|0 @@ -2035,13 +2045,13 @@ i32.const -1 i32.ne i32.add - local.get $4 + local.get $3 i32.const -1 i32.ne i32.add i32.store i32.const 1096 - local.get $3 + local.get $4 local.get $1 i32.const 8 i32.shl @@ -2050,7 +2060,7 @@ i32.const 16 i32.shl i32.or - local.get $4 + local.get $3 i32.const 24 i32.shl i32.or @@ -2060,9 +2070,7 @@ i32.const 1 i32.const 1100 call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.tee $2 - local.set $0 - local.get $2 + local.tee $0 i32.const 65535 i32.and if @@ -2087,15 +2095,15 @@ i32.sub i32.load offset=16 i32.add - local.set $4 + local.set $3 loop $while-continue|0 local.get $1 - local.get $4 + local.get $3 i32.lt_u if local.get $1 i32.load16_u - local.tee $3 + local.tee $4 i32.const 128 i32.lt_u if (result i32) @@ -2103,7 +2111,7 @@ i32.const 1 i32.add else - local.get $3 + local.get $4 i32.const 2048 i32.lt_u if (result i32) @@ -2111,13 +2119,13 @@ i32.const 2 i32.add else - local.get $4 + local.get $3 local.get $1 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $3 + local.get $4 i32.const 64512 i32.and i32.const 55296 @@ -2156,17 +2164,7 @@ end end local.get $2 - local.set $3 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $3 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $1 local.get $0 i32.const 20 @@ -2174,14 +2172,14 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $4 + local.set $3 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $3 local.get $1 call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $3 + local.get $2 i32.ne if i32.const 0 @@ -2195,18 +2193,17 @@ local.get $1 i32.store i32.const 1092 - local.get $3 + local.get $2 i32.store i32.const 1 i32.const 1088 i32.const 1 i32.const 1096 call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.tee $2 local.set $0 local.get $1 call $~lib/rt/tlsf/__free - local.get $2 + local.get $0 i32.const 65535 i32.and if @@ -2228,42 +2225,32 @@ call $~lib/rt/itcms/__visit global.get $~lib/process/process.argv local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end global.get $~lib/process/process.env local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end global.get $std-wasi/process/argv local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end global.get $std-wasi/process/env local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end global.get $std-wasi/process/envKeys local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end i32.const 4784 @@ -2394,16 +2381,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 7360 i32.load i32.gt_u @@ -2415,7 +2402,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 7364 @@ -2431,26 +2418,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -2507,17 +2494,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -2577,15 +2564,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -2934,15 +2921,9 @@ local.get $0 i32.const 16 i32.add - 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 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -3212,29 +3193,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -3256,25 +3235,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -3347,25 +3326,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -3434,25 +3413,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -3492,143 +3471,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3655,63 +3620,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3738,23 +3697,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3999,7 +3956,6 @@ (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $1 local.get $0 i32.const 20 i32.sub @@ -4009,7 +3965,8 @@ i32.and i32.const 16 i32.sub - i32.le_u + local.get $1 + i32.ge_u if local.get $2 local.get $1 @@ -4037,7 +3994,6 @@ (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) local.get $1 local.get $0 i32.load offset=8 @@ -4068,7 +4024,7 @@ local.set $1 local.get $0 i32.load - local.tee $5 + local.tee $4 local.get $2 if local.get $3 @@ -4076,19 +4032,15 @@ i32.shl local.tee $2 i32.const 1073741820 - i32.lt_u - local.set $4 - local.get $1 local.get $2 i32.const 1073741820 - local.get $4 + i32.lt_u select local.tee $2 - i32.lt_u - local.set $4 - local.get $2 local.get $1 - local.get $4 + local.get $1 + local.get $2 + i32.lt_u select local.set $1 end @@ -4102,7 +4054,7 @@ i32.sub call $~lib/memory/memory.fill local.get $2 - local.get $5 + local.get $4 i32.ne if local.get $0 @@ -4123,10 +4075,10 @@ ) (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if local.get $1 i32.const 0 @@ -4283,44 +4235,44 @@ local.get $7 i32.le_u if - local.get $2 local.get $1 i32.load i32.const -2048144777 i32.mul + local.get $2 i32.add i32.const 13 i32.rotl i32.const -1640531535 i32.mul local.set $2 - local.get $4 local.get $1 i32.load offset=4 i32.const -2048144777 i32.mul + local.get $4 i32.add i32.const 13 i32.rotl i32.const -1640531535 i32.mul local.set $4 - local.get $6 local.get $1 i32.load offset=8 i32.const -2048144777 i32.mul + local.get $6 i32.add i32.const 13 i32.rotl i32.const -1640531535 i32.mul local.set $6 - local.get $5 local.get $1 i32.load offset=12 i32.const -2048144777 i32.mul + local.get $5 i32.add i32.const 13 i32.rotl @@ -4334,7 +4286,6 @@ br $while-continue|0 end end - local.get $3 local.get $2 i32.const 1 i32.rotl @@ -4350,6 +4301,7 @@ i32.const 18 i32.rotl i32.add + local.get $3 i32.add else local.get $3 @@ -4368,11 +4320,11 @@ local.get $4 i32.le_u if - local.get $2 local.get $1 i32.load i32.const -1028477379 i32.mul + local.get $2 i32.add i32.const 17 i32.rotl @@ -4395,11 +4347,11 @@ local.get $1 i32.gt_u if - local.get $2 local.get $1 i32.load8_u i32.const 374761393 i32.mul + local.get $2 i32.add i32.const 11 i32.rotl @@ -4414,23 +4366,23 @@ end end local.get $2 - local.get $2 i32.const 15 i32.shr_u + local.get $2 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 else i32.const 0 @@ -4451,13 +4403,13 @@ i32.const 10000 i32.div_u local.set $1 - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 100 @@ -4486,13 +4438,13 @@ i32.const 100 i32.ge_u if - local.get $0 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 @@ -4512,12 +4464,12 @@ i32.const 10 i32.ge_u if - local.get $0 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 2 @@ -4527,12 +4479,12 @@ i32.load i32.store else - local.get $0 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 48 @@ -4548,13 +4500,13 @@ i64.const 100000000 i64.ge_u if - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 local.get $1 @@ -4570,53 +4522,53 @@ i32.rem_u local.tee $4 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 5708 i32.add i64.load32_u + i64.const 32 + i64.shl local.get $4 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 5708 i32.add i64.load32_u - i64.const 32 - i64.shl i64.or i64.store - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 10000 i32.div_u local.tee $3 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 5708 i32.add i64.load32_u + i64.const 32 + i64.shl local.get $3 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 5708 i32.add i64.load32_u - i64.const 32 - i64.shl i64.or i64.store br $while-continue|0 @@ -4935,17 +4887,7 @@ i32.load i32.add local.tee $8 - 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 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $4 local.get $0 local.get $4 @@ -4964,7 +4906,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5016,7 +4958,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 local.get $0 local.tee $1 i32.store @@ -5039,7 +4981,7 @@ local.get $4 i32.sub call $~lib/string/String.UTF8.decodeUnsafe - local.tee $2 + local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 5168 @@ -5056,32 +4998,32 @@ br_if $__inlined_func$~lib/string/String#indexOf i32.const -1 local.set $0 - local.get $2 + local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $__inlined_func$~lib/string/String#indexOf i32.const 0 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.const 0 i32.gt_s select local.set $0 - local.get $3 + local.get $2 local.get $6 i32.sub - local.set $3 + local.set $2 loop $for-loop|00 local.get $0 - local.get $3 + local.get $2 i32.le_s if - local.get $2 + local.get $3 local.get $0 i32.const 5168 local.get $6 @@ -5102,15 +5044,15 @@ i32.const -1 i32.xor if - local.get $2 + local.get $3 i32.const 0 local.get $0 call $~lib/string/String#substring - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 local.get $2 + i32.store offset=8 + local.get $3 local.get $0 i32.const 1 i32.add @@ -5121,7 +5063,7 @@ local.get $0 i32.store offset=12 local.get $1 - local.get $3 + local.get $2 local.get $0 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set else @@ -5129,7 +5071,7 @@ i32.const 5200 i32.store offset=12 local.get $1 - local.get $2 + local.get $3 i32.const 5200 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set end @@ -5165,24 +5107,23 @@ (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-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 7404 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 1056 i32.store i32.const 1056 @@ -5241,18 +5182,18 @@ global.get $~lib/memory/__stack_pointer i32.const 7404 i32.lt_s - br_if $folding-inner1 + 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 $1 + local.tee $0 i32.const 65535 i32.and if - local.get $1 + local.get $0 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 66 @@ -5262,35 +5203,25 @@ end i32.const 1088 i32.load - local.tee $6 + local.tee $0 i32.const 2 i32.shl - local.tee $4 + local.tee $5 i32.const 1092 i32.load i32.add - local.tee $8 - 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 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $1 - local.get $1 - local.get $4 + local.tee $7 + call $~lib/rt/tlsf/__alloc + local.tee $3 + local.get $3 + local.get $5 i32.add call $~lib/bindings/wasi_snapshot_preview1/args_get - local.tee $4 + local.tee $5 i32.const 65535 i32.and if - local.get $4 + local.get $5 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 73 @@ -5299,49 +5230,49 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $4 + local.tee $5 i32.store loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s + local.get $0 + local.get $4 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $1 local.get $3 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $7 + local.tee $6 + local.get $6 local.get $7 - local.get $8 i32.add - local.get $1 + local.get $3 i32.sub call $~lib/string/String.UTF8.decodeUnsafe - local.tee $7 + local.tee $6 i32.store offset=4 + local.get $5 local.get $4 - local.get $3 - local.get $7 + local.get $6 call $~lib/array/Array<~lib/string/String>#__set - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end - local.get $1 + local.get $3 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 + local.get $5 global.set $~lib/process/process.argv global.get $~lib/process/process.argv global.set $std-wasi/process/argv @@ -5352,33 +5283,33 @@ call $~lib/console/console.log global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/argv - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 local.set $3 loop $for-loop|00 - local.get $0 + local.get $1 local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/argv - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 local.get $0 + local.get $1 call $~lib/array/Array<~lib/string/String>#__get - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - call $~lib/console/console.log local.get $0 + call $~lib/console/console.log + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|00 end end @@ -5387,83 +5318,86 @@ global.get $~lib/process/process.env global.set $std-wasi/process/env global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 global.get $std-wasi/process/env local.tee $1 i32.store i32.const 0 + local.set $3 + i32.const 0 local.set $0 - local.get $3 + local.get $4 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-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i64.const 0 i64.store local.get $1 i32.load offset=8 - local.set $6 - local.get $3 + local.set $5 + local.get $4 local.get $1 i32.load offset=16 - local.tee $3 + local.tee $7 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $1 + local.tee $4 i32.store - loop $for-loop|002 + loop $for-loop|01 local.get $3 - local.get $5 - i32.gt_s + local.get $7 + i32.lt_s if - local.get $6 local.get $5 + local.get $3 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $6 i32.load offset=8 i32.const 1 i32.and i32.eqz if + local.get $0 + local.tee $1 + i32.const 1 + i32.add + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.load - local.tee $4 + local.tee $6 i32.store offset=4 - local.get $1 - local.get $0 local.get $4 + local.get $1 + local.get $6 call $~lib/array/Array<~lib/string/String>#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 - br $for-loop|002 + local.set $3 + br $for-loop|01 end end - local.get $1 + local.get $4 local.get $0 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + 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 $1 + local.get $4 global.set $std-wasi/process/envKeys global.get $~lib/memory/__stack_pointer i32.const 5232 @@ -5471,36 +5405,36 @@ i32.const 5232 call $~lib/console/console.log i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/envKeys - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 local.set $3 loop $for-loop|1 - local.get $0 + local.get $1 local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std-wasi/process/envKeys - local.tee $5 + local.tee $4 i32.store - local.get $1 - local.get $5 local.get $0 + local.get $4 + local.get $1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $1 + local.tee $0 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 $1 + local.get $0 call $~lib/console/console.log global.get $~lib/memory/__stack_pointer i32.const 5312 @@ -5509,14 +5443,14 @@ call $~lib/process/writeString global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/env - local.tee $5 + local.tee $4 i32.store offset=4 - local.get $5 - local.get $1 - local.get $1 + local.get $4 + local.get $0 + local.get $0 call $~lib/util/hash/HASH<~lib/string/String> call $~lib/map/Map<~lib/string/String,~lib/string/String>#find - local.tee $1 + local.tee $0 i32.eqz if i32.const 5344 @@ -5527,16 +5461,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 - local.tee $1 + local.tee $0 i32.store - local.get $1 - call $~lib/console/console.log local.get $0 + call $~lib/console/console.log + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end @@ -5549,11 +5483,11 @@ i64.const 1000000 i32.const 1088 call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.tee $1 + local.tee $0 i32.const 65535 i32.and if - local.get $1 + local.get $0 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 53 @@ -5573,7 +5507,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7404 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -5586,7 +5520,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 5696 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/number/itoa64 end i64.const 0 @@ -5597,7 +5531,7 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.tee $0 + local.tee $1 select local.tee $2 i64.const 4294967295 @@ -5606,65 +5540,65 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.wrap_i64 - local.tee $5 - local.tee $1 + local.tee $3 + local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.get $0 + local.get $1 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 - local.get $5 + local.get $0 local.get $3 + local.get $4 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer @@ -5718,23 +5652,23 @@ i32.add end end - local.get $0 + local.get $1 i32.add local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 local.get $2 local.get $3 call $~lib/util/number/utoa64_dec_lut end - local.get $0 + local.get $1 if - local.get $1 + local.get $0 i32.const 45 i32.store16 end @@ -5744,9 +5678,9 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/console/console.log global.get $~lib/memory/__stack_pointer i32.const 7280 @@ -5757,11 +5691,11 @@ i64.const 0 i32.const 1088 call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.tee $1 + local.tee $0 i32.const 65535 i32.and if - local.get $1 + local.get $0 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 59 @@ -5779,7 +5713,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7404 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -5803,47 +5737,47 @@ local.get $2 i32.wrap_i64 local.tee $3 - local.tee $1 + local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add @@ -5943,29 +5877,27 @@ call $~lib/bindings/wasi_snapshot_preview1/proc_exit i32.const 0 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 - local.set $0 + local.set $1 i32.const 1088 - local.get $1 + local.get $0 i32.store i32.const 1092 - local.get $0 + 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 $1 - local.set $0 - local.get $1 + local.tee $0 i32.const 65535 i32.and if diff --git a/tests/compiler/std/array-access.optimized.wat b/tests/compiler/std/array-access.optimized.wat index fca4126d01..c46c10c769 100644 --- a/tests/compiler/std/array-access.optimized.wat +++ b/tests/compiler/std/array-access.optimized.wat @@ -24,22 +24,21 @@ (local $2 i32) (local $3 i32) (local $4 i32) + i32.const 0 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $2 - i32.const 0 - i32.ne - local.set $1 - local.get $2 - i32.const 0 - local.get $2 + local.tee $1 local.get $1 + i32.const 0 + i32.gt_s select - local.tee $2 + local.set $2 + local.get $1 + local.get $2 i32.const 1292 i32.load i32.const 1 @@ -64,6 +63,7 @@ i32.and i32.const 1 local.get $1 + local.tee $0 i32.const 4 i32.ge_u select @@ -84,10 +84,10 @@ i32.const 8 i32.add local.set $3 - local.get $1 + local.get $0 i32.const 4 i32.sub - local.tee $1 + local.tee $0 i32.const 4 i32.ge_u br_if $do-continue|0 @@ -95,23 +95,23 @@ end end loop $while-continue|1 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 if - local.get $3 - i32.load16_u - local.tee $0 local.get $2 i32.load16_u + local.tee $1 + local.get $3 + i32.load16_u local.tee $4 i32.ne if + local.get $1 local.get $4 - local.get $0 i32.sub br $__inlined_func$~lib/util/string/compareImpl end diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index 751145df31..3f07d7dc62 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -56,10 +56,10 @@ (export "memory" (memory $0)) (start $~start) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1200 i32.const 1264 @@ -68,17 +68,17 @@ call $~lib/builtins/abort unreachable end + local.get $1 local.get $0 i32.load offset=4 - local.get $1 i32.add i32.load8_s ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1200 i32.const 1264 @@ -104,42 +104,32 @@ call $~lib/rt/itcms/__visit global.get $std/array-literal/emptyArrayI32 local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end global.get $std/array-literal/dynamicArrayI8 local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end global.get $std/array-literal/dynamicArrayI32 local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end global.get $std/array-literal/dynamicArrayRef local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end global.get $std/array-literal/dynamicArrayRefWithCtor local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end i32.const 1200 @@ -258,16 +248,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1792 i32.load i32.gt_u @@ -279,7 +269,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1796 @@ -295,26 +285,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -442,8 +432,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -451,11 +439,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -463,25 +452,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -690,7 +680,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -698,6 +687,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -713,7 +703,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -721,6 +710,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -775,11 +765,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1744 @@ -803,11 +793,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1744 @@ -967,17 +957,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1037,15 +1027,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1173,12 +1163,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1218,13 +1206,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1264,10 +1252,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1276,7 +1264,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1285,6 +1272,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1298,12 +1286,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1316,7 +1304,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1325,6 +1312,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1404,7 +1392,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $3 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1416,7 +1404,6 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $2 i32.const 12 i32.le_u @@ -1433,9 +1420,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if + memory.size + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1454,14 +1443,13 @@ local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $3 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1471,18 +1459,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1490,18 +1476,18 @@ unreachable end end - local.get $3 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1513,7 +1499,7 @@ end end local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1526,12 +1512,12 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $4 + local.get $3 i32.load - local.set $6 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1545,54 +1531,54 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const -4 i32.and local.get $2 i32.sub - local.tee $5 + local.tee $6 i32.const 16 i32.ge_u if - local.get $4 + local.get $3 local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.and i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add local.tee $2 - local.get $5 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $3 local.get $4 - local.get $6 i32.const -2 i32.and i32.store - local.get $4 + local.get $3 i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1602,37 +1588,37 @@ i32.and i32.store end - local.get $4 + local.get $3 local.get $1 i32.store offset=12 - local.get $4 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $4 - local.get $1 + local.set $1 + local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $2 - local.get $4 - local.get $2 + local.get $1 + local.get $3 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1640,22 +1626,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.const 20 i32.add - local.tee $2 - local.set $3 + local.tee $3 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $3 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1664,18 +1650,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $3 + 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 @@ -1684,10 +1670,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1696,38 +1682,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 - local.get $3 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1740,20 +1726,20 @@ i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 - local.get $5 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1776,8 +1762,8 @@ i32.sub i32.const 0 i32.store - local.get $5 - local.get $5 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1785,7 +1771,7 @@ local.tee $0 i32.add local.set $1 - local.get $3 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1818,7 +1804,7 @@ end end end - local.get $2 + local.get $3 ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -1894,81 +1880,96 @@ i32.const 1 call $~lib/rt/itcms/__link ) - (func $~lib/rt/__visit_members (param $0 i32) + (func $~lib/array/Array~visit (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $std/array-literal/RefWithCtor - block $std/array-literal/Ref - 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 $folding-inner1 $std/array-literal/RefWithCtor $folding-inner1 $invalid - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - return - end - unreachable - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end local.get $0 - local.tee $1 i32.load offset=4 - local.tee $2 + local.tee $1 local.get $0 i32.load offset=12 i32.const 2 i32.shl i32.add - local.set $3 + local.set $2 loop $while-continue|0 + local.get $1 local.get $2 - local.get $3 i32.lt_u if - local.get $2 + local.get $1 i32.load - local.tee $0 + local.tee $3 if - local.get $0 + local.get $3 call $~lib/rt/itcms/__visit end - local.get $2 + local.get $1 i32.const 4 i32.add - local.set $2 + local.set $1 br $while-continue|0 end end - local.get $1 + local.get $0 i32.load call $~lib/rt/itcms/__visit ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/array/Array + block $std/array-literal/RefWithCtor + block $~lib/array/Array + block $std/array-literal/Ref + block $~lib/array/Array + 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 $~lib/array/Array $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 $~lib/rt/itcms/__visit + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + local.get $0 + call $~lib/array/Array~visit + return + end + return + end + local.get $0 + call $~lib/array/Array~visit + return + end + unreachable + ) (func $~start call $start:std/array-literal ) diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index ff45c5b53e..e5aa7307e5 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -701,28 +701,22 @@ (local $1 i32) global.get $std/array/arr local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end i32.const 7488 call $~lib/rt/itcms/__visit global.get $std/array/inputStabArr local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end global.get $std/array/outputStabArr local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end i32.const 1344 @@ -853,16 +847,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 14960 i32.load i32.gt_u @@ -874,7 +868,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 14964 @@ -890,26 +884,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -1037,8 +1031,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -1046,11 +1038,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -1058,25 +1051,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -1285,7 +1279,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -1293,6 +1286,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -1308,7 +1302,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -1316,6 +1309,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -1370,11 +1364,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1488 @@ -1398,11 +1392,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1488 @@ -1575,12 +1569,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1614,17 +1606,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1684,15 +1676,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1818,13 +1810,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1864,10 +1856,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1876,7 +1868,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1885,6 +1876,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1898,12 +1890,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1916,7 +1908,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1925,6 +1916,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1932,11 +1924,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - local.get $1 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $1 + local.get $0 i32.const 1073741820 i32.gt_u if @@ -1948,14 +1948,12 @@ unreachable end local.get $0 - local.tee $2 - local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1965,9 +1963,11 @@ end local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if + memory.size + local.tee $3 local.get $0 i32.const 536870910 i32.lt_u @@ -1986,14 +1986,13 @@ local.get $0 end i32.const 4 - memory.size - local.tee $1 + local.get $1 + i32.load offset=1568 + local.get $3 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -2003,18 +2002,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 - local.get $1 + local.tee $2 + local.get $2 local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -2022,18 +2019,18 @@ unreachable end end - local.get $2 local.get $1 + local.get $3 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -2045,7 +2042,7 @@ end end local.get $0 - local.get $1 + local.get $2 i32.load i32.const -4 i32.and @@ -2058,12 +2055,15 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 + local.get $2 call $~lib/rt/tlsf/removeBlock local.get $1 - i32.load local.set $3 + local.get $2 + local.tee $1 + i32.load + local.set $2 local.get $0 i32.const 4 i32.add @@ -2077,7 +2077,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const -4 i32.and local.get $0 @@ -2088,7 +2088,7 @@ if local.get $1 local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.or @@ -2105,12 +2105,12 @@ i32.const 1 i32.or i32.store - local.get $2 + local.get $3 local.get $0 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -2135,6 +2135,8 @@ i32.store end local.get $1 + i32.const 4 + i32.add ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2292,9 +2294,9 @@ local.get $0 i64.extend_i32_u local.tee $4 - local.get $4 i64.const 32 i64.shl + local.get $4 i64.or local.set $4 loop $while-continue|0 @@ -2389,15 +2391,9 @@ local.get $0 i32.const 16 i32.add - 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 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -2668,29 +2664,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2712,25 +2706,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2803,25 +2797,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2890,25 +2884,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2948,143 +2942,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3111,63 +3091,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3194,23 +3168,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3519,10 +3491,10 @@ local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1344 i32.const 1104 @@ -3531,23 +3503,20 @@ call $~lib/builtins/abort unreachable end + local.get $1 local.get $0 i32.load offset=4 - local.get $1 i32.add i32.load8_u ) (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) local.get $0 i32.load offset=12 local.tee $3 - local.set $4 local.get $1 i32.load offset=12 - local.get $3 i32.ne if i32.const 0 @@ -3562,7 +3531,7 @@ end loop $for-loop|0 local.get $2 - local.get $4 + local.get $3 i32.lt_s if local.get $0 @@ -3586,10 +3555,10 @@ i32.const 1 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1344 i32.const 1104 @@ -3609,14 +3578,11 @@ (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) local.get $0 i32.load offset=12 local.tee $3 - local.set $4 local.get $1 i32.load offset=12 - local.get $3 i32.ne if i32.const 0 @@ -3631,7 +3597,7 @@ end loop $for-loop|0 local.get $2 - local.get $4 + local.get $3 i32.lt_s if local.get $0 @@ -3658,19 +3624,19 @@ (local $4 i32) (local $5 i32) (local $6 i32) - local.get $1 local.get $0 i32.load offset=8 local.tee $5 local.get $2 i32.shr_u - i32.gt_u + local.get $1 + i32.lt_u if - local.get $1 i32.const 1073741820 local.get $2 i32.shr_u - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1056 i32.const 1104 @@ -3802,10 +3768,10 @@ local.get $2 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1344 i32.const 1104 @@ -3868,7 +3834,6 @@ ) (func $~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $1 i32.const 0 local.get $0 i32.load offset=12 @@ -3877,6 +3842,7 @@ i32.const 0 i32.ge_s select + local.get $1 i32.add local.tee $1 local.get $2 @@ -3937,7 +3903,6 @@ i32.const 2 i32.shl i32.add - local.get $5 local.get $2 i32.const 0 i32.lt_s @@ -3962,6 +3927,7 @@ local.tee $2 i32.const 2 i32.shl + local.get $5 i32.add local.get $3 i32.const 0 @@ -4082,10 +4048,10 @@ ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if local.get $1 i32.const 0 @@ -4339,10 +4305,10 @@ f32.convert_i32_s ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1344 i32.const 1104 @@ -4470,46 +4436,46 @@ i32.const 1 global.set $~lib/math/random_seeded local.get $0 - local.get $0 i64.const 33 i64.shr_u + local.get $0 i64.xor i64.const -49064778989728563 i64.mul local.tee $2 - local.get $2 i64.const 33 i64.shr_u + local.get $2 i64.xor i64.const -4265267296055464877 i64.mul local.tee $2 - local.get $2 i64.const 33 i64.shr_u + local.get $2 i64.xor global.set $~lib/math/random_state0_64 global.get $~lib/math/random_state0_64 i64.const -1 i64.xor local.tee $2 - local.get $2 i64.const 33 i64.shr_u + local.get $2 i64.xor i64.const -49064778989728563 i64.mul local.tee $2 - local.get $2 i64.const 33 i64.shr_u + local.get $2 i64.xor i64.const -4265267296055464877 i64.mul local.tee $2 - local.get $2 i64.const 33 i64.shr_u + local.get $2 i64.xor global.set $~lib/math/random_state1_64 local.get $0 @@ -4517,62 +4483,62 @@ i32.const 1831565813 i32.add local.tee $1 + i32.const 1 + i32.or local.get $1 i32.const 15 i32.shr_u - i32.xor local.get $1 - i32.const 1 - i32.or + i32.xor i32.mul local.tee $1 - local.get $1 - local.get $1 i32.const 61 i32.or local.get $1 - local.get $1 i32.const 7 i32.shr_u + local.get $1 i32.xor i32.mul + local.get $1 i32.add + local.get $1 i32.xor local.tee $1 - local.get $1 i32.const 14 i32.shr_u + local.get $1 i32.xor global.set $~lib/math/random_state0_32 global.get $~lib/math/random_state0_32 i32.const 1831565813 i32.add local.tee $1 + i32.const 1 + i32.or local.get $1 i32.const 15 i32.shr_u - i32.xor local.get $1 - i32.const 1 - i32.or + i32.xor i32.mul local.tee $1 - local.get $1 - local.get $1 i32.const 61 i32.or local.get $1 - local.get $1 i32.const 7 i32.shr_u + local.get $1 i32.xor i32.mul + local.get $1 i32.add + local.get $1 i32.xor local.tee $1 - local.get $1 i32.const 14 i32.shr_u + local.get $1 i32.xor global.set $~lib/math/random_state1_32 global.get $~lib/math/random_state1_32 @@ -4606,25 +4572,24 @@ (local $6 f32) (local $7 f32) (local $8 i32) - local.get $1 + local.get $3 local.get $2 local.get $1 i32.sub i32.const 1 i32.add local.tee $8 - i32.const 1 - i32.and - local.get $3 - local.get $8 local.get $3 i32.sub i32.const 1 i32.and i32.sub + local.get $8 + i32.const 1 + i32.and local.get $3 - i32.eqz select + local.get $1 i32.add local.set $8 loop $for-loop|0 @@ -4638,12 +4603,12 @@ i32.shl i32.add local.tee $3 - f32.load - local.set $5 - local.get $3 f32.load offset=4 local.tee $7 local.set $6 + local.get $3 + f32.load + local.set $5 i32.const 2 global.set $~argumentsLength local.get $5 @@ -4669,10 +4634,10 @@ i32.le_s if block $while-break|1 - local.get $0 local.get $3 i32.const 2 i32.shl + local.get $0 i32.add f32.load local.set $7 @@ -4686,10 +4651,10 @@ i32.const 0 i32.le_s br_if $while-break|1 - local.get $0 local.get $3 i32.const 2 i32.shl + local.get $0 i32.add local.get $7 f32.store offset=8 @@ -4701,10 +4666,10 @@ end end end - local.get $0 local.get $3 i32.const 2 i32.shl + local.get $0 i32.add local.get $5 f32.store offset=8 @@ -4714,10 +4679,10 @@ i32.le_s if block $while-break|2 - local.get $0 local.get $3 i32.const 2 i32.shl + local.get $0 i32.add f32.load local.set $5 @@ -4731,10 +4696,10 @@ i32.const 0 i32.le_s br_if $while-break|2 - local.get $0 local.get $3 i32.const 2 i32.shl + local.get $0 i32.add local.get $5 f32.store offset=4 @@ -4746,10 +4711,10 @@ end end end - local.get $0 local.get $3 i32.const 2 i32.shl + local.get $0 i32.add local.get $6 f32.store offset=4 @@ -4773,19 +4738,19 @@ local.get $1 return end - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add f32.load - local.get $0 local.get $1 i32.const 1 i32.add local.tee $4 i32.const 2 i32.shl + local.get $0 i32.add f32.load i32.const 2 @@ -4946,17 +4911,17 @@ local.get $6 i32.gt_s if - local.get $4 local.get $9 local.get $6 i32.sub i32.const 2 i32.shl + local.get $4 i32.add - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add f32.load offset=4 f32.store @@ -4972,17 +4937,17 @@ local.get $3 i32.le_s if - local.get $4 local.get $6 i32.const 2 i32.shl + local.get $4 i32.add f32.load local.set $7 - local.get $4 local.get $2 i32.const 2 i32.shl + local.get $4 i32.add f32.load local.set $8 @@ -4996,10 +4961,10 @@ i32.const 0 i32.lt_s if - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.get $7 f32.store @@ -5008,10 +4973,10 @@ i32.sub local.set $6 else - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.get $8 f32.store @@ -5035,14 +5000,14 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 f32) (local $10 i32) - (local $11 i32) - (local $12 f32) - (local $13 i32) - (local $14 f32) + (local $11 f32) + (local $12 i32) + (local $13 f32) + (local $14 i32) (local $15 i32) - (local $16 f32) + (local $16 i64) local.get $1 i32.const 48 i32.le_s @@ -5067,17 +5032,17 @@ end local.get $0 f32.load - local.set $16 + local.set $13 local.get $0 f32.load offset=4 - local.set $14 + local.set $9 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $14 - local.get $16 - local.get $16 - local.get $14 + local.get $9 + local.get $13 + local.get $13 + local.get $9 local.get $2 i32.load call_indirect $0 (type $f32_f32_=>_i32) @@ -5088,15 +5053,15 @@ f32.store local.get $0 f32.load offset=8 - local.set $12 + local.set $11 i32.const 2 global.set $~argumentsLength - local.get $16 - local.get $14 + local.get $13 + local.get $9 local.get $1 select - local.tee $16 - local.get $12 + local.tee $9 + local.get $11 local.get $2 i32.load call_indirect $0 (type $f32_f32_=>_i32) @@ -5104,31 +5069,31 @@ i32.gt_s local.set $1 local.get $0 - local.get $12 - local.get $16 + local.get $11 + local.get $9 local.get $1 select f32.store offset=4 local.get $0 - local.get $16 - local.get $12 + local.get $9 + local.get $11 local.get $1 select f32.store offset=8 end local.get $0 f32.load - local.set $16 + local.set $11 local.get $0 f32.load offset=4 - local.set $14 + local.set $9 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $14 - local.get $16 - local.get $16 - local.get $14 + local.get $9 + local.get $11 + local.get $11 + local.get $9 local.get $2 i32.load call_indirect $0 (type $f32_f32_=>_i32) @@ -5138,8 +5103,8 @@ select f32.store local.get $0 - local.get $16 - local.get $14 + local.get $11 + local.get $9 local.get $1 select f32.store offset=4 @@ -5159,174 +5124,156 @@ local.get $1 i32.clz i32.sub - local.tee $5 + local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $13 - local.get $7 + call $~lib/rt/tlsf/__alloc + local.tee $12 + local.get $5 i32.add - local.set $11 + local.set $14 i32.const 0 - local.set $7 + local.set $5 loop $for-loop|1 local.get $5 - local.get $7 - i32.gt_u + local.get $6 + i32.lt_u if - local.get $13 - local.get $7 + local.get $5 i32.const 2 i32.shl + local.get $12 i32.add i32.const -1 i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|1 end end local.get $1 i32.const 2 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $10 + call $~lib/rt/tlsf/__alloc + local.set $15 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $15 + local.tee $10 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $7 i32.const 1 i32.add - local.tee $7 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $15 + local.get $10 i32.const 31 - local.get $15 + local.get $10 i32.const 31 i32.lt_s select - local.tee $1 - local.get $7 + local.tee $7 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $15 + local.get $7 + local.get $10 i32.lt_s if local.get $0 - local.get $1 + local.get $7 i32.const 1 i32.add - local.tee $5 - local.get $15 + local.tee $6 + local.get $10 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 - local.get $5 + local.tee $5 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $4 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $5 - local.get $15 - local.get $5 + local.get $6 + local.get $10 + local.get $6 i32.const 31 i32.add - local.tee $7 - local.get $7 - local.get $15 + local.tee $1 + local.get $1 + local.get $10 i32.gt_s select - local.tee $7 - local.get $4 + local.tee $5 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $5 + local.get $6 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $15 + local.get $10 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $16 i64.div_u local.get $5 - local.get $7 + local.get $6 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $16 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $4 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $6 + local.get $1 + local.get $8 i32.lt_u if - local.get $13 - local.get $6 + local.get $8 i32.const 2 i32.shl + local.get $12 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 + local.get $14 local.get $8 - local.get $11 - local.get $6 i32.const 2 i32.shl local.tee $3 @@ -5334,54 +5281,54 @@ i32.load i32.const 1 i32.add - local.get $1 - local.get $10 + local.get $7 + local.get $15 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $13 + local.get $12 i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $6 + local.get $8 i32.const 1 i32.sub - local.set $6 + local.set $8 br $for-loop|3 end end - local.get $13 - local.get $4 + local.get $12 + local.get $1 i32.const 2 i32.shl - local.tee $6 + local.tee $4 i32.add local.get $3 i32.store - local.get $6 - local.get $11 + local.get $4 + local.get $14 i32.add - local.get $1 + local.get $7 i32.store - local.get $5 + local.get $6 local.set $3 - local.get $7 - local.set $1 - local.get $4 - local.set $6 + local.get $5 + local.set $7 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $6 + local.get $4 if - local.get $13 - local.get $6 + local.get $4 i32.const 2 i32.shl + local.get $12 i32.add i32.load local.tee $1 @@ -5390,29 +5337,29 @@ if local.get $0 local.get $1 - local.get $11 - local.get $6 + local.get $4 i32.const 2 i32.shl + local.get $14 i32.add i32.load i32.const 1 i32.add - local.get $15 local.get $10 + local.get $15 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $6 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|4 end end - local.get $10 + local.get $15 call $~lib/rt/tlsf/__free - local.get $13 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) @@ -5421,21 +5368,21 @@ local.get $0 i32.reinterpret_f32 local.tee $2 - local.get $2 i32.const 31 i32.shr_s i32.const 1 i32.shr_u + local.get $2 i32.xor local.tee $2 local.get $1 i32.reinterpret_f32 local.tee $3 - local.get $3 i32.const 31 i32.shr_s i32.const 1 i32.shr_u + local.get $3 i32.xor local.tee $3 i32.gt_s @@ -5448,14 +5395,11 @@ (local $2 i32) (local $3 f32) (local $4 i32) - (local $5 i32) local.get $0 i32.load offset=12 local.tee $4 - local.set $5 local.get $1 i32.load offset=12 - local.get $4 i32.ne if i32.const 0 @@ -5470,7 +5414,7 @@ end loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if local.get $0 @@ -5517,25 +5461,24 @@ (local $6 f64) (local $7 f64) (local $8 i32) - local.get $1 + local.get $3 local.get $2 local.get $1 i32.sub i32.const 1 i32.add local.tee $8 - i32.const 1 - i32.and - local.get $3 - local.get $8 local.get $3 i32.sub i32.const 1 i32.and i32.sub + local.get $8 + i32.const 1 + i32.and local.get $3 - i32.eqz select + local.get $1 i32.add local.set $8 loop $for-loop|0 @@ -5549,12 +5492,12 @@ i32.shl i32.add local.tee $3 - f64.load - local.set $5 - local.get $3 f64.load offset=8 local.tee $7 local.set $6 + local.get $3 + f64.load + local.set $5 i32.const 2 global.set $~argumentsLength local.get $5 @@ -5580,10 +5523,10 @@ i32.le_s if block $while-break|1 - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add f64.load local.set $7 @@ -5597,10 +5540,10 @@ i32.const 0 i32.le_s br_if $while-break|1 - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add local.get $7 f64.store offset=16 @@ -5612,10 +5555,10 @@ end end end - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add local.get $5 f64.store offset=16 @@ -5625,10 +5568,10 @@ i32.le_s if block $while-break|2 - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add f64.load local.set $5 @@ -5642,10 +5585,10 @@ i32.const 0 i32.le_s br_if $while-break|2 - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add local.get $5 f64.store offset=8 @@ -5657,10 +5600,10 @@ end end end - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add local.get $6 f64.store offset=8 @@ -5684,19 +5627,19 @@ local.get $1 return end - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add f64.load - local.get $0 local.get $1 i32.const 1 i32.add local.tee $4 i32.const 3 i32.shl + local.get $0 i32.add f64.load i32.const 2 @@ -5857,17 +5800,17 @@ local.get $6 i32.gt_s if - local.get $4 local.get $9 local.get $6 i32.sub i32.const 3 i32.shl + local.get $4 i32.add - local.get $0 local.get $6 i32.const 3 i32.shl + local.get $0 i32.add f64.load offset=8 f64.store @@ -5883,17 +5826,17 @@ local.get $3 i32.le_s if - local.get $4 local.get $6 i32.const 3 i32.shl + local.get $4 i32.add f64.load local.set $7 - local.get $4 local.get $2 i32.const 3 i32.shl + local.get $4 i32.add f64.load local.set $8 @@ -5907,10 +5850,10 @@ i32.const 0 i32.lt_s if - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add local.get $7 f64.store @@ -5919,10 +5862,10 @@ i32.sub local.set $6 else - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add local.get $8 f64.store @@ -5946,14 +5889,14 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 f64) (local $10 i32) - (local $11 i32) - (local $12 f64) - (local $13 i32) - (local $14 f64) + (local $11 f64) + (local $12 i32) + (local $13 f64) + (local $14 i32) (local $15 i32) - (local $16 f64) + (local $16 i64) local.get $1 i32.const 48 i32.le_s @@ -5978,17 +5921,17 @@ end local.get $0 f64.load - local.set $16 + local.set $13 local.get $0 f64.load offset=8 - local.set $14 + local.set $9 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $14 - local.get $16 - local.get $16 - local.get $14 + local.get $9 + local.get $13 + local.get $13 + local.get $9 local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) @@ -5999,15 +5942,15 @@ f64.store local.get $0 f64.load offset=16 - local.set $12 + local.set $11 i32.const 2 global.set $~argumentsLength - local.get $16 - local.get $14 + local.get $13 + local.get $9 local.get $1 select - local.tee $16 - local.get $12 + local.tee $9 + local.get $11 local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) @@ -6015,31 +5958,31 @@ i32.gt_s local.set $1 local.get $0 - local.get $12 - local.get $16 + local.get $11 + local.get $9 local.get $1 select f64.store offset=8 local.get $0 - local.get $16 - local.get $12 + local.get $9 + local.get $11 local.get $1 select f64.store offset=16 end local.get $0 f64.load - local.set $16 + local.set $11 local.get $0 f64.load offset=8 - local.set $14 + local.set $9 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $14 - local.get $16 - local.get $16 - local.get $14 + local.get $9 + local.get $11 + local.get $11 + local.get $9 local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) @@ -6049,8 +5992,8 @@ select f64.store local.get $0 - local.get $16 - local.get $14 + local.get $11 + local.get $9 local.get $1 select f64.store offset=8 @@ -6070,174 +6013,156 @@ local.get $1 i32.clz i32.sub - local.tee $5 + local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $13 - local.get $7 + call $~lib/rt/tlsf/__alloc + local.tee $12 + local.get $5 i32.add - local.set $11 + local.set $14 i32.const 0 - local.set $7 + local.set $5 loop $for-loop|1 local.get $5 - local.get $7 - i32.gt_u + local.get $6 + i32.lt_u if - local.get $13 - local.get $7 + local.get $5 i32.const 2 i32.shl + local.get $12 i32.add i32.const -1 i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|1 end end local.get $1 i32.const 3 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $10 + call $~lib/rt/tlsf/__alloc + local.set $15 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $15 + local.tee $10 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $7 i32.const 1 i32.add - local.tee $7 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $15 + local.get $10 i32.const 31 - local.get $15 + local.get $10 i32.const 31 i32.lt_s select - local.tee $1 - local.get $7 + local.tee $7 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $15 + local.get $7 + local.get $10 i32.lt_s if local.get $0 - local.get $1 + local.get $7 i32.const 1 i32.add - local.tee $5 - local.get $15 + local.tee $6 + local.get $10 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 - local.get $5 + local.tee $5 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $4 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $5 - local.get $15 - local.get $5 + local.get $6 + local.get $10 + local.get $6 i32.const 31 i32.add - local.tee $7 - local.get $7 - local.get $15 + local.tee $1 + local.get $1 + local.get $10 i32.gt_s select - local.tee $7 - local.get $4 + local.tee $5 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $5 + local.get $6 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $15 + local.get $10 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $16 i64.div_u local.get $5 - local.get $7 + local.get $6 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $16 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $4 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $6 + local.get $1 + local.get $8 i32.lt_u if - local.get $13 - local.get $6 + local.get $8 i32.const 2 i32.shl + local.get $12 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 + local.get $14 local.get $8 - local.get $11 - local.get $6 i32.const 2 i32.shl local.tee $3 @@ -6245,54 +6170,54 @@ i32.load i32.const 1 i32.add - local.get $1 - local.get $10 + local.get $7 + local.get $15 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $13 + local.get $12 i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $6 + local.get $8 i32.const 1 i32.sub - local.set $6 + local.set $8 br $for-loop|3 end end - local.get $13 - local.get $4 + local.get $12 + local.get $1 i32.const 2 i32.shl - local.tee $6 + local.tee $4 i32.add local.get $3 i32.store - local.get $6 - local.get $11 + local.get $4 + local.get $14 i32.add - local.get $1 + local.get $7 i32.store - local.get $5 + local.get $6 local.set $3 - local.get $7 - local.set $1 - local.get $4 - local.set $6 + local.get $5 + local.set $7 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $6 + local.get $4 if - local.get $13 - local.get $6 + local.get $4 i32.const 2 i32.shl + local.get $12 i32.add i32.load local.tee $1 @@ -6301,29 +6226,29 @@ if local.get $0 local.get $1 - local.get $11 - local.get $6 + local.get $4 i32.const 2 i32.shl + local.get $14 i32.add i32.load i32.const 1 i32.add - local.get $15 local.get $10 + local.get $15 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $6 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|4 end end - local.get $10 + local.get $15 call $~lib/rt/tlsf/__free - local.get $13 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) @@ -6332,21 +6257,21 @@ local.get $0 i64.reinterpret_f64 local.tee $2 - local.get $2 i64.const 63 i64.shr_s i64.const 1 i64.shr_u + local.get $2 i64.xor local.tee $2 local.get $1 i64.reinterpret_f64 local.tee $3 - local.get $3 i64.const 63 i64.shr_s i64.const 1 i64.shr_u + local.get $3 i64.xor local.tee $3 i64.gt_s @@ -6356,10 +6281,10 @@ i32.sub ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1344 i32.const 1104 @@ -6381,25 +6306,24 @@ (local $6 i32) (local $7 i32) (local $8 i32) - local.get $1 + local.get $3 local.get $2 local.get $1 i32.sub i32.const 1 i32.add local.tee $5 - i32.const 1 - i32.and - local.get $3 - local.get $5 local.get $3 i32.sub i32.const 1 i32.and i32.sub + local.get $5 + i32.const 1 + i32.and local.get $3 - i32.eqz select + local.get $1 i32.add local.set $7 loop $for-loop|0 @@ -6412,13 +6336,13 @@ i32.const 2 i32.shl i32.add - local.tee $5 - i32.load - local.set $3 - local.get $5 + local.tee $3 i32.load offset=4 local.tee $6 local.set $5 + local.get $3 + i32.load + local.set $3 i32.const 2 global.set $~argumentsLength local.get $3 @@ -6444,10 +6368,10 @@ i32.le_s if block $while-break|1 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.set $8 @@ -6461,10 +6385,10 @@ i32.const 0 i32.le_s br_if $while-break|1 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $8 i32.store offset=8 @@ -6476,10 +6400,10 @@ end end end - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $3 i32.store offset=8 @@ -6489,10 +6413,10 @@ i32.le_s if block $while-break|2 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.set $3 @@ -6506,10 +6430,10 @@ i32.const 0 i32.le_s br_if $while-break|2 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $3 i32.store offset=4 @@ -6521,10 +6445,10 @@ end end end - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $5 i32.store offset=4 @@ -6547,19 +6471,19 @@ local.get $1 return end - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load - local.get $0 local.get $1 i32.const 1 i32.add local.tee $4 i32.const 2 i32.shl + local.get $0 i32.add i32.load i32.const 2 @@ -6718,17 +6642,17 @@ local.get $6 i32.gt_s if - local.get $4 local.get $7 local.get $6 i32.sub i32.const 2 i32.shl + local.get $4 i32.add - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.store @@ -6744,17 +6668,17 @@ local.get $3 i32.le_s if - local.get $4 local.get $6 i32.const 2 i32.shl + local.get $4 i32.add i32.load local.set $7 - local.get $4 local.get $2 i32.const 2 i32.shl + local.get $4 i32.add i32.load local.set $8 @@ -6768,10 +6692,10 @@ i32.const 0 i32.lt_s if - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.get $7 i32.store @@ -6780,10 +6704,10 @@ i32.sub local.set $6 else - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.get $8 i32.store @@ -6807,10 +6731,10 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 i64) + (local $12 i32) (local $13 i32) local.get $1 i32.const 48 @@ -6836,7 +6760,7 @@ end local.get $0 i32.load - local.set $1 + local.set $7 local.get $0 i32.load offset=4 local.set $4 @@ -6844,15 +6768,15 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $7 + local.get $7 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $5 + local.tee $1 select i32.store local.get $0 @@ -6860,34 +6784,34 @@ local.set $3 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $7 local.get $4 - local.get $5 + local.get $1 select - local.tee $1 + local.tee $4 local.get $3 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $4 + local.set $1 local.get $0 local.get $3 - local.get $1 local.get $4 + local.get $1 select i32.store offset=4 local.get $0 - local.get $1 - local.get $3 local.get $4 + local.get $3 + local.get $1 select i32.store offset=8 end local.get $0 i32.load - local.set $1 + local.set $3 local.get $0 i32.load offset=4 local.set $4 @@ -6895,21 +6819,21 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store local.get $0 - local.get $1 + local.get $3 local.get $4 - local.get $2 + local.get $1 select i32.store offset=4 return @@ -6931,123 +6855,103 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT + call $~lib/rt/tlsf/__alloc + local.tee $12 local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 i32.add - local.tee $9 - local.get $5 - i32.add - local.set $10 + local.set $11 i32.const 0 - local.set $5 + local.set $7 loop $for-loop|1 - local.get $5 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $9 - local.get $5 + local.get $7 i32.const 2 i32.shl + local.get $12 i32.add i32.const -1 i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|1 end end local.get $1 i32.const 2 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $11 + call $~lib/rt/tlsf/__alloc + local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $8 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $5 i32.const 1 i32.add - local.tee $5 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $8 + local.get $13 i32.const 31 - local.get $8 + local.get $13 i32.const 31 i32.lt_s select - local.tee $1 - local.get $5 + local.tee $5 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $8 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $1 + local.get $5 i32.const 1 i32.add local.tee $6 - local.get $8 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 local.get $6 - local.get $8 + local.get $13 local.get $6 i32.const 31 i32.add - local.tee $5 - local.get $5 - local.get $8 + local.tee $1 + local.get $1 + local.get $13 i32.gt_s select - local.tee $5 - local.get $7 + local.tee $7 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end @@ -7057,45 +6961,47 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $8 + local.get $13 i32.const 1 i32.add i64.extend_i32_u - local.tee $12 + local.tee $9 i64.div_u - local.get $5 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $12 + local.get $9 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $9 - local.get $4 + local.get $8 i32.const 2 i32.shl + local.get $12 i32.add i32.load - local.tee $13 + local.tee $4 i32.const -1 i32.ne if local.get $0 - local.get $13 - local.get $10 local.get $4 + local.get $11 + local.get $8 i32.const 2 i32.shl local.tee $3 @@ -7103,27 +7009,27 @@ i32.load i32.const 1 i32.add - local.get $1 - local.get $11 + local.get $5 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $9 + local.get $12 i32.add i32.const -1 i32.store - local.get $13 + local.get $4 local.set $3 end - local.get $4 + local.get $8 i32.const 1 i32.sub - local.set $4 + local.set $8 br $for-loop|3 end end - local.get $9 - local.get $7 + local.get $12 + local.get $1 i32.const 2 i32.shl local.tee $4 @@ -7131,15 +7037,15 @@ local.get $3 i32.store local.get $4 - local.get $10 + local.get $11 i32.add - local.get $1 + local.get $5 i32.store local.get $6 local.set $3 - local.get $5 - local.set $1 local.get $7 + local.set $5 + local.get $1 local.set $4 br $while-continue|2 end @@ -7147,10 +7053,10 @@ loop $for-loop|4 local.get $4 if - local.get $9 local.get $4 i32.const 2 i32.shl + local.get $12 i32.add i32.load local.tee $1 @@ -7159,16 +7065,16 @@ if local.get $0 local.get $1 - local.get $10 local.get $4 i32.const 2 i32.shl + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $8 - local.get $11 + local.get $13 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end @@ -7179,9 +7085,9 @@ br $for-loop|4 end end - local.get $11 + local.get $10 call $~lib/rt/tlsf/__free - local.get $9 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) @@ -7194,25 +7100,24 @@ (local $6 i32) (local $7 i32) (local $8 i32) - local.get $1 + local.get $3 local.get $2 local.get $1 i32.sub i32.const 1 i32.add local.tee $5 - i32.const 1 - i32.and - local.get $3 - local.get $5 local.get $3 i32.sub i32.const 1 i32.and i32.sub + local.get $5 + i32.const 1 + i32.and local.get $3 - i32.eqz select + local.get $1 i32.add local.set $7 loop $for-loop|0 @@ -7225,13 +7130,13 @@ i32.const 2 i32.shl i32.add - local.tee $5 - i32.load - local.set $3 - local.get $5 + local.tee $3 i32.load offset=4 local.tee $6 local.set $5 + local.get $3 + i32.load + local.set $3 i32.const 2 global.set $~argumentsLength local.get $3 @@ -7257,10 +7162,10 @@ i32.le_s if block $while-break|1 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.set $8 @@ -7274,10 +7179,10 @@ i32.const 0 i32.le_s br_if $while-break|1 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $8 i32.store offset=8 @@ -7289,10 +7194,10 @@ end end end - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $3 i32.store offset=8 @@ -7302,10 +7207,10 @@ i32.le_s if block $while-break|2 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.set $3 @@ -7319,10 +7224,10 @@ i32.const 0 i32.le_s br_if $while-break|2 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $3 i32.store offset=4 @@ -7334,10 +7239,10 @@ end end end - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $5 i32.store offset=4 @@ -7360,19 +7265,19 @@ local.get $1 return end - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load - local.get $0 local.get $1 i32.const 1 i32.add local.tee $4 i32.const 2 i32.shl + local.get $0 i32.add i32.load i32.const 2 @@ -7531,17 +7436,17 @@ local.get $6 i32.gt_s if - local.get $4 local.get $7 local.get $6 i32.sub i32.const 2 i32.shl + local.get $4 i32.add - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.store @@ -7557,17 +7462,17 @@ local.get $3 i32.le_s if - local.get $4 local.get $6 i32.const 2 i32.shl + local.get $4 i32.add i32.load local.set $7 - local.get $4 local.get $2 i32.const 2 i32.shl + local.get $4 i32.add i32.load local.set $8 @@ -7581,10 +7486,10 @@ i32.const 0 i32.lt_s if - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.get $7 i32.store @@ -7593,10 +7498,10 @@ i32.sub local.set $6 else - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.get $8 i32.store @@ -7620,10 +7525,10 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 i64) + (local $12 i32) (local $13 i32) local.get $1 i32.const 48 @@ -7649,7 +7554,7 @@ end local.get $0 i32.load - local.set $1 + local.set $7 local.get $0 i32.load offset=4 local.set $4 @@ -7657,15 +7562,15 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $7 + local.get $7 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $5 + local.tee $1 select i32.store local.get $0 @@ -7673,34 +7578,34 @@ local.set $3 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $7 local.get $4 - local.get $5 + local.get $1 select - local.tee $1 + local.tee $4 local.get $3 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $4 + local.set $1 local.get $0 local.get $3 - local.get $1 local.get $4 + local.get $1 select i32.store offset=4 local.get $0 - local.get $1 - local.get $3 local.get $4 + local.get $3 + local.get $1 select i32.store offset=8 end local.get $0 i32.load - local.set $1 + local.set $3 local.get $0 i32.load offset=4 local.set $4 @@ -7708,21 +7613,21 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store local.get $0 - local.get $1 + local.get $3 local.get $4 - local.get $2 + local.get $1 select i32.store offset=4 return @@ -7744,123 +7649,103 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT + call $~lib/rt/tlsf/__alloc + local.tee $12 local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 i32.add - local.tee $9 - local.get $5 - i32.add - local.set $10 + local.set $11 i32.const 0 - local.set $5 + local.set $7 loop $for-loop|1 - local.get $5 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $9 - local.get $5 + local.get $7 i32.const 2 i32.shl + local.get $12 i32.add i32.const -1 i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|1 end end local.get $1 i32.const 2 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $11 + call $~lib/rt/tlsf/__alloc + local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $8 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $5 i32.const 1 i32.add - local.tee $5 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $8 + local.get $13 i32.const 31 - local.get $8 + local.get $13 i32.const 31 i32.lt_s select - local.tee $1 - local.get $5 + local.tee $5 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $8 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $1 + local.get $5 i32.const 1 i32.add local.tee $6 - local.get $8 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 local.get $6 - local.get $8 + local.get $13 local.get $6 i32.const 31 i32.add - local.tee $5 - local.get $5 - local.get $8 + local.tee $1 + local.get $1 + local.get $13 i32.gt_s select - local.tee $5 - local.get $7 + local.tee $7 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end @@ -7870,45 +7755,47 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $8 + local.get $13 i32.const 1 i32.add i64.extend_i32_u - local.tee $12 + local.tee $9 i64.div_u - local.get $5 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $12 + local.get $9 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $9 - local.get $4 + local.get $8 i32.const 2 i32.shl + local.get $12 i32.add i32.load - local.tee $13 + local.tee $4 i32.const -1 i32.ne if local.get $0 - local.get $13 - local.get $10 local.get $4 + local.get $11 + local.get $8 i32.const 2 i32.shl local.tee $3 @@ -7916,27 +7803,27 @@ i32.load i32.const 1 i32.add - local.get $1 - local.get $11 + local.get $5 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $9 + local.get $12 i32.add i32.const -1 i32.store - local.get $13 + local.get $4 local.set $3 end - local.get $4 + local.get $8 i32.const 1 i32.sub - local.set $4 + local.set $8 br $for-loop|3 end end - local.get $9 - local.get $7 + local.get $12 + local.get $1 i32.const 2 i32.shl local.tee $4 @@ -7944,15 +7831,15 @@ local.get $3 i32.store local.get $4 - local.get $10 + local.get $11 i32.add - local.get $1 + local.get $5 i32.store local.get $6 local.set $3 - local.get $5 - local.set $1 local.get $7 + local.set $5 + local.get $1 local.set $4 br $while-continue|2 end @@ -7960,10 +7847,10 @@ loop $for-loop|4 local.get $4 if - local.get $9 local.get $4 i32.const 2 i32.shl + local.get $12 i32.add i32.load local.tee $1 @@ -7972,16 +7859,16 @@ if local.get $0 local.get $1 - local.get $10 local.get $4 i32.const 2 i32.shl + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $8 - local.get $11 + local.get $13 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end @@ -7992,9 +7879,9 @@ br $for-loop|4 end end - local.get $11 + local.get $10 call $~lib/rt/tlsf/__free - local.get $9 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) @@ -8023,14 +7910,14 @@ global.set $~lib/math/random_state0_64 local.get $1 local.get $0 - local.get $0 i64.const 23 i64.shl + local.get $0 i64.xor local.tee $0 - local.get $0 i64.const 17 i64.shr_u + local.get $0 i64.xor i64.xor local.get $1 @@ -8078,23 +7965,22 @@ i64.const 0 i64.store local.get $1 + local.get $3 local.get $2 local.get $1 i32.sub i32.const 1 i32.add local.tee $6 - i32.const 1 - i32.and - local.get $3 - local.get $6 local.get $3 i32.sub i32.const 1 i32.and i32.sub + local.get $6 + i32.const 1 + i32.and local.get $3 - i32.eqz select i32.add local.set $8 @@ -8567,17 +8453,7 @@ local.tee $5 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $9 local.get $5 i32.add @@ -8606,17 +8482,7 @@ local.get $1 i32.const 2 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $11 local.get $0 i32.const 0 @@ -8834,10 +8700,10 @@ ) (func $~lib/array/Array<~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if local.get $1 i32.const 0 @@ -9222,13 +9088,13 @@ i32.const 10000 i32.div_u local.set $1 - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 100 @@ -9257,13 +9123,13 @@ i32.const 100 i32.ge_u if - local.get $0 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 @@ -9283,12 +9149,12 @@ i32.const 10 i32.ge_u if - local.get $0 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 2 @@ -9298,12 +9164,12 @@ i32.load i32.store else - local.get $0 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 48 @@ -10563,18 +10429,19 @@ ) (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) (local $2 i64) - (local $3 i64) + (local $3 i32) (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 i64) - (local $8 i64) + (local $5 i64) + (local $6 i64) + (local $7 i32) + (local $8 i32) (local $9 i32) - (local $10 i32) + (local $10 i64) + (local $11 i64) local.get $1 f64.const 0 f64.lt - local.tee $9 + local.tee $8 if (result f64) local.get $0 i32.const 45 @@ -10591,66 +10458,66 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $5 + local.tee $3 + i32.const 1 + local.get $3 + select + i32.const 1075 + i32.sub + local.tee $9 + i32.const 1 + i32.sub + local.get $2 + i64.const 4503599627370495 + i64.and + local.get $3 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl - local.get $2 - i64.const 4503599627370495 - i64.and i64.add - local.tee $3 + local.tee $2 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $2 - local.get $2 + local.tee $4 i64.clz i32.wrap_i64 - local.tee $6 + local.tee $7 + i32.sub + local.set $3 + local.get $4 + local.get $7 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $5 - i32.const 1 - local.get $5 - select - i32.const 1075 - i32.sub - local.tee $10 - i32.const 1 - i32.sub - local.get $6 - i32.sub - local.set $5 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $6 + local.tee $7 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $10 - local.get $6 + local.get $9 + local.get $7 i32.sub - local.get $5 + local.get $3 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $5 + local.get $3 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $5 + local.tee $9 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -10659,9 +10526,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $6 + local.tee $3 local.get $1 - local.get $6 + local.get $3 f64.convert_i32_s f64.ne i32.add @@ -10669,59 +10536,60 @@ i32.shr_s i32.const 1 i32.add - local.tee $6 + local.tee $3 i32.const 3 i32.shl - local.tee $10 + local.tee $7 i32.sub global.set $~lib/util/number/_K - local.get $10 + local.get $7 i32.const 11752 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $6 + local.get $3 i32.const 1 i32.shl i32.const 12448 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow + local.get $2 + local.get $2 + i64.clz + i64.shl + local.tee $10 + i64.const 4294967295 + i64.and + local.set $5 global.get $~lib/util/number/_frc_pow - local.tee $7 + local.tee $4 i64.const 4294967295 i64.and local.set $2 - local.get $7 + local.get $4 i64.const 32 i64.shr_u - local.tee $7 - global.get $~lib/util/number/_frc_plus local.tee $4 - i64.const 32 - i64.shr_u - local.tee $8 - i64.mul - local.get $2 - local.get $8 - i64.mul - local.get $2 - local.get $4 + global.get $~lib/util/number/_frc_plus + local.tee $6 i64.const 4294967295 i64.and - local.tee $4 + local.tee $11 i64.mul + local.get $2 + local.get $6 i64.const 32 i64.shr_u - i64.add - local.tee $8 + local.tee $6 + i64.mul + local.get $2 + local.get $11 + i64.mul i64.const 32 i64.shr_u i64.add - local.get $4 - local.get $7 - i64.mul - local.get $8 + local.tee $11 i64.const 4294967295 i64.and i64.add @@ -10729,46 +10597,39 @@ i64.add i64.const 32 i64.shr_u + local.get $4 + local.get $6 + i64.mul + local.get $11 + i64.const 32 + i64.shr_u + i64.add i64.add i64.const 1 i64.sub - local.set $4 - local.get $0 - local.get $9 + local.set $6 + local.get $8 i32.const 1 i32.shl + local.get $0 i32.add local.get $0 - local.get $7 - local.get $3 - local.get $3 - i64.clz - i64.shl - local.tee $3 - i64.const 32 - i64.shr_u - local.tee $8 + local.get $4 + local.get $5 i64.mul local.get $2 - local.get $8 + local.get $10 + i64.const 32 + i64.shr_u + local.tee $10 i64.mul local.get $2 - local.get $3 - i64.const 4294967295 - i64.and - local.tee $3 + local.get $5 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $8 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - local.get $7 - i64.mul - local.get $8 + local.tee $5 i64.const 4294967295 i64.and i64.add @@ -10776,41 +10637,41 @@ i64.add i64.const 32 i64.shr_u - i64.add local.get $4 - global.get $~lib/util/number/_exp_pow + local.get $10 + i64.mul local.get $5 + i64.const 32 + i64.shr_u + i64.add + i64.add + local.get $6 + local.get $9 + global.get $~lib/util/number/_exp_pow i32.add i32.const -64 i32.sub + local.get $6 local.get $4 - local.get $7 global.get $~lib/util/number/_frc_minus - local.tee $3 - i64.const 32 - i64.shr_u - local.tee $4 - i64.mul - local.get $2 - local.get $4 - i64.mul - local.get $2 - local.get $3 + local.tee $5 i64.const 4294967295 i64.and - local.tee $2 + local.tee $6 i64.mul + local.get $2 + local.get $5 i64.const 32 i64.shr_u - i64.add - local.tee $3 + local.tee $5 + i64.mul + local.get $2 + local.get $6 + i64.mul i64.const 32 i64.shr_u i64.add - local.get $2 - local.get $7 - i64.mul - local.get $3 + local.tee $2 i64.const 4294967295 i64.and i64.add @@ -10818,17 +10679,24 @@ i64.add i64.const 32 i64.shr_u + local.get $4 + local.get $5 + i64.mul + local.get $2 + i64.const 32 + i64.shr_u + i64.add i64.add i64.const 1 i64.add i64.sub - local.get $9 + local.get $8 call $~lib/util/number/genDigits - local.get $9 + local.get $8 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $9 + local.get $8 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -10901,245 +10769,6 @@ local.get $1 call $~lib/util/number/dtoa_core ) - (func $~lib/array/Array#join (param $0 i32) (result i32) - (local $1 i32) - (local $2 f64) - (local $3 i32) - (local $4 i32) - (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=12 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinFloatArray - local.get $1 - i32.const 1 - i32.sub - local.tee $3 - 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 9024 - local.set $0 - br $__inlined_func$~lib/util/string/joinFloatArray - end - block $folding-inner0 - local.get $3 - i32.eqz - if - local.get $4 - f64.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 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/dtoa - local.get $2 - 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 11552 - local.set $0 - br $__inlined_func$~lib/util/number/dtoa - end - local.get $2 - local.get $2 - f64.sub - f64.const 0 - f64.ne - if - local.get $2 - local.get $2 - f64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11584 - local.set $0 - 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 11616 - i32.const 11664 - local.get $2 - f64.const 0 - f64.lt - select - local.set $0 - br $__inlined_func$~lib/util/number/dtoa - end - i32.const 11696 - local.get $2 - 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 11696 - 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 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 11516 - i32.load - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 28 - i32.add - i32.mul - i32.const 28 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|0 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - call $~lib/util/number/dtoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $5 - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.const 11520 - 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 $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $7 - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $3 - i32.const 3 - i32.shl - i32.add - f64.load - call $~lib/util/number/dtoa_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 - 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/joinFloatArray - 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 31744 - i32.const 31792 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/array/Array<~lib/string/String|null>#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -11692,13 +11321,13 @@ i64.const 100000000 i64.ge_u if - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 local.get $1 @@ -11714,53 +11343,53 @@ i32.rem_u local.tee $4 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 9628 i32.add i64.load32_u + i64.const 32 + i64.shl local.get $4 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 9628 i32.add i64.load32_u - i64.const 32 - i64.shl i64.or i64.store - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 10000 i32.div_u local.tee $3 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 9628 i32.add i64.load32_u + i64.const 32 + i64.shl local.get $3 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 9628 i32.add i64.load32_u - i64.const 32 - i64.shl i64.or i64.store br $while-continue|0 @@ -11904,326 +11533,6 @@ end local.get $0 ) - (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) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=12 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 - i32.const 1 - i32.sub - local.tee $3 - 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 9024 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - block $folding-inner0 - local.get $3 - i32.eqz - if - local.get $4 - 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 15340 - 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 9616 - local.set $0 - 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 $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.tee $1 - 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 $1 - 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.tee $1 - 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 $1 - call $~lib/util/number/utoa64_dec_lut - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 9308 - i32.load - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 20 - i32.add - i32.mul - i32.const 20 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|0 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $5 - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.const 9312 - 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 $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $7 - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $3 - i32.const 3 - i32.shl - 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 - 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 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - return - end - i32.const 31744 - i32.const 31792 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) (local $2 i32) (local $3 i32) @@ -12380,347 +11689,6 @@ end local.get $0 ) - (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) - local.get $0 - i32.load offset=4 - local.set $5 - local.get $0 - i32.load offset=12 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 - i32.const 1 - i32.sub - local.tee $4 - 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 9024 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - block $folding-inner0 - local.get $4 - i32.eqz - if - 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 15340 - 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 9616 - 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.const 63 - i64.shr_u - i32.wrap_i64 - local.tee $3 - 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 $6 - 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 $3 - i32.add - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $6 - 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 - 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 $3 - i32.add - local.tee $1 - 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 $1 - call $~lib/util/number/utoa64_dec_lut - end - local.get $3 - 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 - end - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 9308 - 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 $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $3 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $7 - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.const 9312 - local.get $7 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $7 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $6 - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $4 - i32.const 3 - i32.shl - 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 - 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 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - return - end - i32.const 31744 - i32.const 31792 - 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 @@ -12965,9 +11933,9 @@ i32.const 0 i32.const 1 call $~lib/array/ensureCapacity + local.get $3 local.get $0 i32.load offset=4 - local.get $3 i32.add local.get $1 i32.store8 @@ -12981,25 +11949,24 @@ (local $6 i32) (local $7 i32) (local $8 i32) - local.get $1 + local.get $3 local.get $2 local.get $1 i32.sub i32.const 1 i32.add local.tee $5 - i32.const 1 - i32.and - local.get $3 - local.get $5 local.get $3 i32.sub i32.const 1 i32.and i32.sub + local.get $5 + i32.const 1 + i32.and local.get $3 - i32.eqz select + local.get $1 i32.add local.set $7 loop $for-loop|0 @@ -13010,13 +11977,13 @@ local.get $0 local.get $7 i32.add - local.tee $5 - i32.load8_u - local.set $3 - local.get $5 + local.tee $3 i32.load8_u offset=1 local.tee $6 local.set $5 + local.get $3 + i32.load8_u + local.set $3 i32.const 2 global.set $~argumentsLength local.get $3 @@ -13290,10 +12257,10 @@ local.get $6 i32.gt_s if - local.get $4 local.get $7 local.get $6 i32.sub + local.get $4 i32.add local.get $0 local.get $6 @@ -13367,10 +12334,10 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 i64) + (local $12 i32) (local $13 i32) local.get $1 i32.const 48 @@ -13396,7 +12363,7 @@ end local.get $0 i32.load8_u - local.set $1 + local.set $7 local.get $0 i32.load8_u offset=1 local.set $4 @@ -13404,15 +12371,15 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $7 + local.get $7 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $5 + local.tee $1 select i32.store8 local.get $0 @@ -13420,34 +12387,34 @@ local.set $3 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $7 local.get $4 - local.get $5 + local.get $1 select - local.tee $1 + local.tee $4 local.get $3 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $4 + local.set $1 local.get $0 local.get $3 - local.get $1 local.get $4 + local.get $1 select i32.store8 offset=1 local.get $0 - local.get $1 - local.get $3 local.get $4 + local.get $3 + local.get $1 select i32.store8 offset=2 end local.get $0 i32.load8_u - local.set $1 + local.set $3 local.get $0 i32.load8_u offset=1 local.set $4 @@ -13455,21 +12422,21 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store8 local.get $0 - local.get $1 + local.get $3 local.get $4 - local.get $2 + local.get $1 select i32.store8 offset=1 return @@ -13491,119 +12458,101 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT + call $~lib/rt/tlsf/__alloc + local.tee $12 local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $9 - local.get $5 i32.add - local.set $10 + local.set $11 i32.const 0 - local.set $5 + local.set $7 loop $for-loop|1 - local.get $5 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $9 - local.get $5 + local.get $7 i32.const 2 i32.shl + local.get $12 i32.add i32.const -1 i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|1 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $11 + call $~lib/rt/tlsf/__alloc + local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $8 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $5 i32.const 1 i32.add - local.tee $5 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $8 + local.get $13 i32.const 31 - local.get $8 + local.get $13 i32.const 31 i32.lt_s select - local.tee $1 - local.get $5 + local.tee $5 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $8 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $1 + local.get $5 i32.const 1 i32.add local.tee $6 - local.get $8 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 local.get $6 - local.get $8 + local.get $13 local.get $6 i32.const 31 i32.add - local.tee $5 - local.get $5 - local.get $8 + local.tee $1 + local.get $1 + local.get $13 i32.gt_s select - local.tee $5 - local.get $7 + local.tee $7 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end @@ -13613,45 +12562,47 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $8 + local.get $13 i32.const 1 i32.add i64.extend_i32_u - local.tee $12 + local.tee $9 i64.div_u - local.get $5 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $12 + local.get $9 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $9 - local.get $4 + local.get $8 i32.const 2 i32.shl + local.get $12 i32.add i32.load - local.tee $13 + local.tee $4 i32.const -1 i32.ne if local.get $0 - local.get $13 - local.get $10 local.get $4 + local.get $11 + local.get $8 i32.const 2 i32.shl local.tee $3 @@ -13659,27 +12610,27 @@ i32.load i32.const 1 i32.add - local.get $1 - local.get $11 + local.get $5 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $9 + local.get $12 i32.add i32.const -1 i32.store - local.get $13 + local.get $4 local.set $3 end - local.get $4 + local.get $8 i32.const 1 i32.sub - local.set $4 + local.set $8 br $for-loop|3 end end - local.get $9 - local.get $7 + local.get $12 + local.get $1 i32.const 2 i32.shl local.tee $4 @@ -13687,15 +12638,15 @@ local.get $3 i32.store local.get $4 - local.get $10 + local.get $11 i32.add - local.get $1 + local.get $5 i32.store local.get $6 local.set $3 - local.get $5 - local.set $1 local.get $7 + local.set $5 + local.get $1 local.set $4 br $while-continue|2 end @@ -13703,10 +12654,10 @@ loop $for-loop|4 local.get $4 if - local.get $9 local.get $4 i32.const 2 i32.shl + local.get $12 i32.add i32.load local.tee $1 @@ -13715,16 +12666,16 @@ if local.get $0 local.get $1 - local.get $10 local.get $4 i32.const 2 i32.shl + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $8 - local.get $11 + local.get $13 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end @@ -13735,9 +12686,9 @@ br $for-loop|4 end end - local.get $11 + local.get $10 call $~lib/rt/tlsf/__free - local.get $9 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (result i32) @@ -13826,21 +12777,18 @@ block $folding-inner3 block $folding-inner2 block $folding-inner1 - block $folding-inner0 - block $invalid - block $std/array/ArrayStr - block $std/array/Proxy - block $std/array/Dim - block $std/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-inner4 $folding-inner0 $std/array/Ref $folding-inner4 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $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-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner3 $folding-inner3 $std/array/ArrayStr $folding-inner2 $invalid - end - return + block $invalid + block $std/array/ArrayStr + block $std/array/Proxy + block $std/array/Dim + block $std/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-inner3 $folding-inner4 $std/array/Ref $folding-inner3 $folding-inner4 $folding-inner4 $folding-inner1 $folding-inner4 $folding-inner4 $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-inner4 $folding-inner4 $folding-inner4 $folding-inner4 $folding-inner4 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner4 $folding-inner4 $std/array/ArrayStr $folding-inner2 $invalid end return end @@ -13850,16 +12798,13 @@ end return end - local.get $0 - call $~lib/array/Array~visit return end - unreachable + local.get $0 + call $~lib/array/Array~visit + return end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return + unreachable end local.get $0 call $~lib/array/Array~visit @@ -13872,16 +12817,16 @@ end local.get $0 i32.load - call $~lib/rt/itcms/__visit + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end return end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit ) (func $~setArgumentsLength (param $0 i32) local.get $0 @@ -14216,221 +13161,6 @@ 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) - 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 15340 - 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 - global.get $std/array/inputStabArr - local.tee $2 - i32.store offset=8 - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 0 - i32.store - i32.const 0 - local.get $2 - i32.load offset=12 - local.tee $1 - local.get $1 - i32.const 0 - i32.gt_s - select - local.set $4 - local.get $1 - local.get $4 - i32.sub - local.tee $3 - i32.const 0 - i32.gt_s - local.set $1 - local.get $5 - local.get $3 - i32.const 0 - local.get $1 - select - local.tee $3 - i32.const 2 - i32.const 19 - i32.const 0 - call $~lib/rt/__newArray - local.tee $1 - i32.store - local.get $1 - i32.load offset=4 - local.set $7 - local.get $2 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.set $4 - i32.const 0 - local.set $2 - local.get $3 - i32.const 2 - i32.shl - local.set $5 - loop $while-continue|0 - local.get $2 - local.get $5 - i32.lt_u - if - local.get $2 - local.get $7 - i32.add - local.get $2 - local.get $4 - i32.add - i32.load - local.tee $3 - i32.store - local.get $1 - local.get $3 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $2 - i32.const 4 - i32.add - local.set $2 - 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 $3 - local.get $1 - i32.store - local.get $3 - i32.const 8672 - i32.store offset=4 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load offset=12 - i32.const 8672 - call $~lib/util/sort/SORT - local.get $0 - local.get $1 - i32.store offset=12 - i32.const 1 - local.set $2 - 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 $5 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.gt_s - if - block $for-break0 - global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $6 - call $~lib/array/Array#__get - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.tee $3 - global.get $std/array/outputStabArr - local.tee $0 - i32.store - local.get $3 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - local.tee $0 - i32.store offset=20 - local.get $4 - i32.load - local.get $0 - i32.load - i32.ne - if (result i32) - i32.const 1 - else - local.get $4 - i32.load offset=4 - local.get $0 - i32.load offset=4 - i32.ne - end - if - i32.const 0 - local.set $2 - br $for-break0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - end - local.get $2 - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1012 - 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 31744 - i32.const 31792 - 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) @@ -14693,19 +13423,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 9312 i32.store local.get $0 i32.load offset=4 - local.set $2 + local.set $3 local.get $0 i32.load offset=12 local.set $0 - local.get $1 + local.get $2 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -14714,17 +13444,17 @@ 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 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> local.get $0 i32.const 1 i32.sub - local.tee $1 + local.tee $2 i32.const 0 i32.lt_s if @@ -14736,11 +13466,11 @@ local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $1 + local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.load local.tee $0 i32.store @@ -14770,29 +13500,29 @@ local.set $5 loop $for-loop|0 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/array/Array#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 local.get $0 - local.get $3 + local.get $4 call $~lib/string/String.__concat local.tee $0 i32.store offset=4 @@ -14806,33 +13536,33 @@ local.tee $0 i32.store offset=4 end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer + local.get $3 local.get $2 - local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 call $~lib/array/Array#toString - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 call $~lib/string/String.__concat local.tee $0 i32.store offset=4 @@ -14866,83 +13596,84 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f64) - (local $10 i32) - (local $11 f32) + (local $9 i64) + (local $10 f64) + (local $11 i32) + (local $12 f32) global.get $~lib/memory/__stack_pointer i32.const 172 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner2 + block $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i64.const 0 i64.store - local.get $0 + local.get $3 i64.const 0 i64.store offset=8 - local.get $0 + local.get $3 i64.const 0 i64.store offset=16 - local.get $0 + local.get $3 i64.const 0 i64.store offset=24 - local.get $0 + local.get $3 i64.const 0 i64.store offset=32 - local.get $0 + local.get $3 i64.const 0 i64.store offset=40 - local.get $0 + local.get $3 i64.const 0 i64.store offset=48 - local.get $0 + local.get $3 i64.const 0 i64.store offset=56 - local.get $0 + local.get $3 i64.const 0 i64.store offset=64 - local.get $0 + local.get $3 i64.const 0 i64.store offset=72 - local.get $0 + local.get $3 i64.const 0 i64.store offset=80 - local.get $0 + local.get $3 i64.const 0 i64.store offset=88 - local.get $0 + local.get $3 i64.const 0 i64.store offset=96 - local.get $0 + local.get $3 i64.const 0 i64.store offset=104 - local.get $0 + local.get $3 i64.const 0 i64.store offset=112 - local.get $0 + local.get $3 i64.const 0 i64.store offset=120 - local.get $0 + local.get $3 i64.const 0 i64.store offset=128 - local.get $0 + local.get $3 i64.const 0 i64.store offset=136 - local.get $0 + local.get $3 i64.const 0 i64.store offset=144 - local.get $0 + local.get $3 i64.const 0 i64.store offset=152 - local.get $0 + local.get $3 i64.const 0 i64.store offset=160 - local.get $0 + local.get $3 i32.const 0 i32.store offset=168 memory.size @@ -14982,38 +13713,38 @@ global.set $std/array/arr i32.const 0 call $std/array/Ref#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $3 local.get $0 + i32.store + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 0 i32.store - local.get $0 + local.get $3 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -15044,21 +13775,21 @@ i32.const 1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $~lib/memory/memory.fill local.get $0 - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link local.get $0 - local.get $2 + local.get $1 i32.store offset=4 local.get $0 i32.const 1 @@ -15067,7 +13798,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -15075,17 +13806,17 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 local.get $0 i32.store - local.get $1 + local.get $3 i32.const 1664 i32.store - local.get $1 + local.get $3 global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -15101,9 +13832,9 @@ i32.const 6 i32.const 1696 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 1 i32.const 3 @@ -15114,12 +13845,12 @@ i32.const 6 i32.const 1728 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -15130,7 +13861,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 i32.const 0 i32.const 2147483647 @@ -15141,12 +13872,12 @@ i32.const 6 i32.const 1760 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -15157,7 +13888,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.const 0 i32.const -3 @@ -15168,12 +13899,12 @@ i32.const 6 i32.const 1792 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -15184,7 +13915,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 2 i32.const -2 i32.const 2147483647 @@ -15195,12 +13926,12 @@ i32.const 6 i32.const 1824 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -15211,7 +13942,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 i32.const 1 i32.const 0 @@ -15222,12 +13953,12 @@ i32.const 6 i32.const 1856 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -15244,33 +13975,33 @@ i32.const 7 i32.const 1888 call $~lib/rt/__newArray - local.tee $1 + local.tee $5 i32.store offset=12 - local.get $1 + local.get $5 i32.load offset=4 - local.set $4 + local.set $1 i32.const 1 - local.get $1 + local.get $5 i32.load offset=12 - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 1 i32.gt_s select local.set $0 i32.const 3 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 3 i32.gt_s select - local.set $2 + local.set $3 loop $for-loop|0 local.get $0 - local.get $2 + local.get $3 i32.lt_s if - local.get $4 + local.get $1 local.get $0 i32.const 2 i32.shl @@ -15289,12 +14020,12 @@ i32.const 7 i32.const 1936 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 - local.get $0 + local.get $5 + local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -15305,24 +14036,24 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 i32.load offset=4 - local.set $2 + local.set $3 i32.const 0 - local.get $1 + local.get $5 i32.load offset=12 - local.tee $4 - local.get $4 + local.tee $1 + local.get $1 i32.const 0 i32.gt_s select local.set $0 - loop $for-loop|04 + loop $for-loop|03 local.get $0 - local.get $4 + local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -15333,7 +14064,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|04 + br $for-loop|03 end end i32.const 5 @@ -15341,12 +14072,12 @@ i32.const 7 i32.const 1984 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 - local.get $0 + local.get $5 + local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -15357,34 +14088,34 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 i32.load offset=4 - local.set $4 + local.set $1 i32.const 0 - local.get $1 + local.get $5 i32.load offset=12 - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 0 i32.gt_s select local.set $0 - local.get $2 + local.get $3 i32.const 3 i32.sub - local.tee $2 + local.tee $3 i32.const 0 - local.get $2 + local.get $3 i32.const 0 i32.gt_s select - local.set $2 - loop $for-loop|06 + local.set $3 + loop $for-loop|05 local.get $0 - local.get $2 + local.get $3 i32.lt_s if - local.get $4 + local.get $1 local.get $0 i32.const 2 i32.shl @@ -15395,7 +14126,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|06 + br $for-loop|05 end end i32.const 5 @@ -15403,12 +14134,12 @@ i32.const 7 i32.const 2032 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 - local.get $0 + local.get $5 + local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -15419,24 +14150,24 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 i32.load offset=4 local.set $4 - local.get $1 + local.get $5 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 2 i32.sub - local.tee $0 + local.tee $3 i32.const 0 - local.get $0 + local.get $3 i32.const 0 i32.gt_s select local.set $0 - loop $for-loop|08 + loop $for-loop|07 local.get $0 - local.get $2 + local.get $1 i32.lt_s if local.get $4 @@ -15450,7 +14181,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|08 + br $for-loop|07 end end i32.const 5 @@ -15458,12 +14189,12 @@ i32.const 7 i32.const 2080 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 - local.get $0 + local.get $5 + local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -15474,43 +14205,42 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.tee $0 + local.get $5 i32.load offset=4 - local.set $4 + local.set $1 i32.const 1 - local.get $0 + local.get $5 i32.load offset=12 - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 1 i32.gt_s select - local.set $1 + local.set $0 i32.const 0 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 0 i32.gt_s select - local.set $2 - loop $for-loop|010 - local.get $1 - local.get $2 + local.set $3 + loop $for-loop|09 + local.get $0 + local.get $3 i32.lt_s if - local.get $4 local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|010 + local.set $0 + br $for-loop|09 end end i32.const 5 @@ -15518,12 +14248,12 @@ i32.const 7 i32.const 2128 call $~lib/rt/__newArray - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=8 - local.get $0 - local.get $1 + local.get $5 + local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -15536,9 +14266,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 if i32.const 0 @@ -15550,9 +14280,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15566,17 +14296,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 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 $3 i32.store - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -15591,9 +14321,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 1 i32.ne @@ -15607,9 +14337,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15623,9 +14353,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop i32.const 42 i32.ne @@ -15639,9 +14369,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 if i32.const 0 @@ -15653,9 +14383,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15669,17 +14399,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 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 $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 1 i32.ne @@ -15693,9 +14423,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15709,9 +14439,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15726,17 +14456,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 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 $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 2 i32.ne @@ -15750,9 +14480,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15766,9 +14496,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15783,9 +14513,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15800,17 +14530,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 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 $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 3 i32.ne @@ -15824,9 +14554,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15840,9 +14570,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15857,9 +14587,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15874,9 +14604,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -15890,40 +14620,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 2 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset + local.get $3 local.get $0 - local.get $1 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $0 i32.const 0 i32.store offset=12 - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -15939,9 +14669,9 @@ i32.const 3 i32.const 2224 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=12 - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#at i32.const 1 @@ -15954,7 +14684,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -15967,7 +14697,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -15980,7 +14710,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -15996,24 +14726,24 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/array/Array#constructor - local.tee $2 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/array/arr local.tee $0 + global.get $std/array/arr + local.tee $3 i32.store - local.get $1 local.get $0 - local.get $2 + local.get $3 + local.get $1 call $~lib/array/Array#concat - local.tee $1 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16027,9 +14757,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 3 i32.ne @@ -16041,7 +14771,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -16058,19 +14788,19 @@ i32.const 3 i32.const 2272 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 call $~lib/array/Array#concat drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16082,7 +14812,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -16095,7 +14825,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -16108,7 +14838,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -16121,30 +14851,30 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 46 call $~lib/array/Array#push drop - local.get $2 + 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 $0 + global.get $std/array/arr + local.tee $3 i32.store - local.get $1 local.get $0 - local.get $2 + local.get $3 + local.get $1 call $~lib/array/Array#concat - local.tee $1 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16156,7 +14886,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.load offset=12 i32.const 2 i32.ne @@ -16168,7 +14898,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=12 i32.const 5 i32.ne @@ -16180,7 +14910,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -16193,7 +14923,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -16206,7 +14936,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -16219,7 +14949,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -16232,7 +14962,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -16245,10 +14975,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 call $~lib/array/Array#pop drop - local.get $1 + local.get $0 i32.load offset=12 i32.const 4 i32.ne @@ -16266,9 +14996,9 @@ i32.const 3 i32.const 2304 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.load offset=12 if i32.const 0 @@ -16279,17 +15009,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/array/arr local.tee $0 + global.get $std/array/arr + local.tee $3 i32.store offset=8 - local.get $1 - local.get $2 local.get $0 + local.get $1 + local.get $3 call $~lib/array/Array#concat - local.tee $0 + local.tee $3 i32.store offset=16 - local.get $0 + local.get $3 i32.load offset=12 i32.const 3 i32.ne @@ -16301,7 +15031,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.load offset=12 if i32.const 0 @@ -16317,28 +15047,28 @@ i32.const 3 i32.const 2336 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=16 - local.get $0 + local.get $3 i32.const 0 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2384 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16356,28 +15086,28 @@ i32.const 3 i32.const 2432 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=16 - local.get $0 + local.get $3 i32.const 1 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2480 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16395,28 +15125,28 @@ i32.const 3 i32.const 2528 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=16 - local.get $0 + local.get $3 i32.const 1 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2576 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16434,28 +15164,28 @@ i32.const 3 i32.const 2624 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=16 - local.get $0 + local.get $3 i32.const 2 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2672 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16473,28 +15203,28 @@ i32.const 3 i32.const 2720 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=16 - local.get $0 + local.get $3 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2768 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16512,28 +15242,28 @@ i32.const 3 i32.const 2816 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=16 - local.get $0 + local.get $3 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2864 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16551,28 +15281,28 @@ i32.const 3 i32.const 2912 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=16 - local.get $0 + local.get $3 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2960 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16590,28 +15320,28 @@ i32.const 3 i32.const 3008 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=16 - local.get $0 + local.get $3 i32.const 0 i32.const -2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3056 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16629,28 +15359,28 @@ i32.const 3 i32.const 3104 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=16 - local.get $0 + local.get $3 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3152 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16668,28 +15398,28 @@ i32.const 3 i32.const 3200 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=16 - local.get $0 + local.get $3 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3248 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16707,28 +15437,28 @@ i32.const 3 i32.const 3296 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=16 - local.get $0 + local.get $3 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3344 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16746,28 +15476,28 @@ i32.const 3 i32.const 3392 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=16 - local.get $0 + local.get $3 i32.const -4 i32.const -3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3440 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16781,17 +15511,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 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 $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 4 i32.ne @@ -16805,9 +15535,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16821,9 +15551,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -16838,9 +15568,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -16855,9 +15585,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -16872,9 +15602,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -16889,17 +15619,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 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 $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 5 i32.ne @@ -16913,9 +15643,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16929,9 +15659,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -16946,9 +15676,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -16963,9 +15693,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -16980,9 +15710,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -16997,9 +15727,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -17018,7 +15748,7 @@ i32.store local.get $5 i32.load offset=12 - local.tee $0 + local.tee $3 i32.const 1 i32.lt_s if @@ -17037,21 +15767,21 @@ local.get $4 i32.const 4 i32.add - local.get $0 + local.get $3 i32.const 1 i32.sub - local.tee $1 + local.tee $0 i32.const 2 i32.shl - local.tee $0 + local.tee $3 call $~lib/memory/memory.copy - local.get $0 + local.get $3 local.get $4 i32.add i32.const 0 i32.store local.get $5 - local.get $1 + local.get $0 i32.store offset=12 global.set $std/array/i global.get $std/array/i @@ -17067,9 +15797,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 4 i32.ne @@ -17083,9 +15813,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -17099,9 +15829,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -17116,9 +15846,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -17133,9 +15863,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -17150,9 +15880,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -17167,9 +15897,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -17185,9 +15915,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 3 i32.ne @@ -17201,9 +15931,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -17217,9 +15947,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -17234,9 +15964,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -17251,9 +15981,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -17272,26 +16002,26 @@ i32.const 3 i32.const 3488 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $0 + local.tee $3 i32.store offset=16 i32.const 3 i32.const 2 i32.const 3 i32.const 3536 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 + local.get $3 local.get $0 - local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17304,23 +16034,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $0 + local.tee $3 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3568 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 + local.get $3 local.get $0 - local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17333,23 +16063,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $0 + local.tee $3 i32.store offset=16 i32.const 4 i32.const 2 i32.const 3 i32.const 3600 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 + local.get $3 local.get $0 - local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17362,14 +16092,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 0 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $0 + local.tee $3 i32.store offset=16 - local.get $0 - local.get $2 + local.get $3 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17382,23 +16112,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const -2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $0 + local.tee $3 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3648 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 + local.get $3 local.get $0 - local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17411,23 +16141,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $0 + local.tee $3 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3680 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 + local.get $3 local.get $0 - local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17440,23 +16170,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $0 + local.tee $3 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3712 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 + local.get $3 local.get $0 - local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17468,15 +16198,15 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 if i32.const 0 @@ -17486,15 +16216,15 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 10 i32.const 2147483647 call $~lib/array/Array#slice - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 if i32.const 0 @@ -17506,56 +16236,56 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.load offset=12 - local.tee $1 + local.tee $3 if - local.get $2 + local.get $0 i32.load offset=4 - local.set $0 - local.get $2 + local.set $1 + local.get $0 i32.load offset=4 - local.get $1 + local.get $3 i32.const 1 i32.sub i32.const 2 i32.shl i32.add - local.set $1 + local.set $0 loop $while-continue|0 local.get $0 local.get $1 - i32.lt_u + i32.gt_u if - local.get $0 - i32.load - local.set $2 - local.get $0 local.get $1 i32.load - i32.store + local.set $3 local.get $1 - local.get $2 + local.get $0 + i32.load i32.store local.get $0 + local.get $3 + i32.store + local.get $1 i32.const 4 i32.add - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 4 i32.sub - local.set $1 + local.set $0 br $while-continue|0 end end end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 3 i32.ne @@ -17569,9 +16299,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -17585,9 +16315,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -17602,9 +16332,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -17619,9 +16349,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -17636,49 +16366,49 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 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 $3 i32.store - local.get $0 + local.get $3 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 $3 i32.store i32.const 0 local.set $1 block $__inlined_func$~lib/array/Array#indexOf - local.get $0 + local.get $3 i32.load offset=12 - local.tee $2 + local.tee $0 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $0 select if i32.const -1 local.set $1 br $__inlined_func$~lib/array/Array#indexOf end - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|011 + local.set $3 + loop $while-continue|010 + local.get $0 local.get $1 - local.get $2 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -17691,7 +16421,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|011 + br $while-continue|010 end end i32.const -1 @@ -17710,33 +16440,33 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store i32.const 0 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf12 - local.get $0 + block $__inlined_func$~lib/array/Array#indexOf11 + local.get $3 i32.load offset=12 - local.tee $2 + local.tee $0 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $0 select if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf12 + br $__inlined_func$~lib/array/Array#indexOf11 end - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|013 + local.set $3 + loop $while-continue|012 + local.get $0 local.get $1 - local.get $2 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -17744,12 +16474,12 @@ i32.load i32.const 42 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf12 + br_if $__inlined_func$~lib/array/Array#indexOf11 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|013 + br $while-continue|012 end end i32.const -1 @@ -17770,33 +16500,33 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store i32.const 0 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf14 - local.get $0 + block $__inlined_func$~lib/array/Array#indexOf13 + local.get $3 i32.load offset=12 - local.tee $2 + local.tee $0 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $0 select if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf14 + br $__inlined_func$~lib/array/Array#indexOf13 end - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|015 + local.set $3 + loop $while-continue|014 + local.get $0 local.get $1 - local.get $2 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -17804,12 +16534,12 @@ i32.load i32.const 45 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf14 + br_if $__inlined_func$~lib/array/Array#indexOf13 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|015 + br $while-continue|014 end end i32.const -1 @@ -17830,33 +16560,33 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store i32.const 100 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf16 - local.get $0 + block $__inlined_func$~lib/array/Array#indexOf15 + local.get $3 i32.load offset=12 - local.tee $2 + local.tee $0 i32.const 100 i32.le_s i32.const 1 - local.get $2 + local.get $0 select if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf16 + br $__inlined_func$~lib/array/Array#indexOf15 end - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|017 + local.set $3 + loop $while-continue|016 + local.get $0 local.get $1 - local.get $2 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -17864,12 +16594,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf16 + br_if $__inlined_func$~lib/array/Array#indexOf15 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|017 + br $while-continue|016 end end i32.const -1 @@ -17890,41 +16620,41 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - block $__inlined_func$~lib/array/Array#indexOf18 - local.get $0 + block $__inlined_func$~lib/array/Array#indexOf17 + local.get $3 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 if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf18 + br $__inlined_func$~lib/array/Array#indexOf17 end - local.get $2 + 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.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|019 + local.set $3 + loop $while-continue|018 local.get $1 - local.get $2 + local.get $4 i32.lt_s if - local.get $0 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -17932,12 +16662,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf18 + br_if $__inlined_func$~lib/array/Array#indexOf17 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|019 + br $while-continue|018 end end i32.const -1 @@ -17958,41 +16688,41 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - block $__inlined_func$~lib/array/Array#indexOf20 - local.get $0 + block $__inlined_func$~lib/array/Array#indexOf19 + local.get $3 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 if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf20 + br $__inlined_func$~lib/array/Array#indexOf19 end - local.get $2 + 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.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|021 + local.set $3 + loop $while-continue|020 local.get $1 - local.get $2 + local.get $4 i32.lt_s if - local.get $0 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -18000,12 +16730,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf20 + br_if $__inlined_func$~lib/array/Array#indexOf19 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|021 + br $while-continue|020 end end i32.const -1 @@ -18026,41 +16756,41 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - block $__inlined_func$~lib/array/Array#indexOf22 - local.get $0 + block $__inlined_func$~lib/array/Array#indexOf21 + local.get $3 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 if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf22 + br $__inlined_func$~lib/array/Array#indexOf21 end - local.get $2 + 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.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|023 + local.set $3 + loop $while-continue|022 local.get $1 - local.get $2 + local.get $4 i32.lt_s if - local.get $0 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -18068,12 +16798,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf22 + br_if $__inlined_func$~lib/array/Array#indexOf21 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|023 + br $while-continue|022 end end i32.const -1 @@ -18094,33 +16824,33 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store i32.const 0 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf24 - local.get $0 + block $__inlined_func$~lib/array/Array#indexOf23 + local.get $3 i32.load offset=12 - local.tee $2 + local.tee $0 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $0 select if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf24 + br $__inlined_func$~lib/array/Array#indexOf23 end - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|025 + local.set $3 + loop $while-continue|024 + local.get $0 local.get $1 - local.get $2 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -18128,12 +16858,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf24 + br_if $__inlined_func$~lib/array/Array#indexOf23 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|025 + br $while-continue|024 end end i32.const -1 @@ -18154,33 +16884,33 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store i32.const 1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf26 - local.get $0 + block $__inlined_func$~lib/array/Array#indexOf25 + local.get $3 i32.load offset=12 - local.tee $2 + local.tee $0 i32.const 1 i32.le_s i32.const 1 - local.get $2 + local.get $0 select if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf26 + br $__inlined_func$~lib/array/Array#indexOf25 end - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|027 + local.set $3 + loop $while-continue|026 + local.get $0 local.get $1 - local.get $2 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -18188,12 +16918,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf26 + br_if $__inlined_func$~lib/array/Array#indexOf25 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|027 + br $while-continue|026 end end i32.const -1 @@ -18214,33 +16944,33 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store i32.const 2 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf28 - local.get $0 + block $__inlined_func$~lib/array/Array#indexOf27 + local.get $3 i32.load offset=12 - local.tee $2 + local.tee $0 i32.const 2 i32.le_s i32.const 1 - local.get $2 + local.get $0 select if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf28 + br $__inlined_func$~lib/array/Array#indexOf27 end - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|029 + local.set $3 + loop $while-continue|028 + local.get $0 local.get $1 - local.get $2 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -18248,12 +16978,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf28 + br_if $__inlined_func$~lib/array/Array#indexOf27 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|029 + br $while-continue|028 end end i32.const -1 @@ -18277,16 +17007,16 @@ i32.const 9 i32.const 3744 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store i32.const 0 local.set $1 i32.const -1 local.set $0 block $__inlined_func$~lib/array/Array#indexOf - local.get $2 + local.get $3 i32.load offset=12 local.tee $4 i32.const 0 @@ -18295,15 +17025,15 @@ local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf - local.get $2 + local.get $3 i32.load offset=4 - local.set $2 - loop $while-continue|02530 + local.set $3 + loop $while-continue|025 local.get $1 local.get $4 i32.lt_s if - local.get $2 + local.get $3 local.get $1 local.tee $0 i32.const 2 @@ -18317,7 +17047,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|02530 + br $while-continue|025 end end i32.const -1 @@ -18339,16 +17069,16 @@ i32.const 10 i32.const 3776 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store i32.const 0 local.set $1 i32.const -1 local.set $0 block $__inlined_func$~lib/array/Array#indexOf - local.get $2 + local.get $3 i32.load offset=12 local.tee $4 i32.const 0 @@ -18357,15 +17087,15 @@ local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf - local.get $2 + local.get $3 i32.load offset=4 - local.set $2 - loop $while-continue|026 + local.set $3 + loop $while-continue|02629 local.get $1 local.get $4 i32.lt_s if - local.get $2 + local.get $3 local.get $1 local.tee $0 i32.const 3 @@ -18379,7 +17109,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|026 + br $while-continue|02629 end end i32.const -1 @@ -18402,47 +17132,47 @@ i32.const 3 i32.const 3808 call $~lib/rt/__newArray - local.tee $1 + local.tee $3 i32.store offset=16 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $3 i32.load offset=12 - local.set $2 + local.set $1 i32.const -1 local.set $0 block $__inlined_func$~lib/array/Array#lastIndexOf - local.get $1 + local.get $3 i32.load offset=12 local.tee $4 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $2 + local.get $1 local.get $4 i32.add local.get $4 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $4 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select - local.set $2 - local.get $1 + local.set $1 + local.get $3 i32.load offset=4 local.set $4 loop $while-continue|00 - local.get $2 + local.get $1 i32.const 0 i32.ge_s if local.get $4 - local.get $2 + local.get $1 local.tee $0 i32.const 2 i32.shl @@ -18454,7 +17184,7 @@ local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $1 br $while-continue|00 end end @@ -18474,43 +17204,43 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $3 i32.load offset=12 - local.set $2 + local.set $1 i32.const -1 local.set $0 block $__inlined_func$~lib/array/Array#lastIndexOf5 - local.get $1 + local.get $3 i32.load offset=12 local.tee $4 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf5 - local.get $2 + local.get $1 local.get $4 i32.add local.get $4 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $4 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select - local.set $2 - local.get $1 + local.set $1 + local.get $3 i32.load offset=4 local.set $4 loop $while-continue|06 - local.get $2 + local.get $1 i32.const 0 i32.ge_s if local.get $4 - local.get $2 + local.get $1 local.tee $0 i32.const 2 i32.shl @@ -18522,7 +17252,7 @@ local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $1 br $while-continue|06 end end @@ -18541,7 +17271,7 @@ unreachable end block $__inlined_func$~lib/array/Array#lastIndexOf7 - local.get $1 + local.get $3 i32.load offset=12 local.tee $0 i32.eqz @@ -18559,15 +17289,15 @@ i32.le_s select local.set $0 - local.get $1 + local.get $3 i32.load offset=4 - local.set $2 - loop $while-continue|031 + local.set $1 + loop $while-continue|030 local.get $0 i32.const 0 i32.ge_s if - local.get $2 + local.get $1 local.get $0 i32.const 2 i32.shl @@ -18580,7 +17310,7 @@ i32.const 1 i32.sub local.set $0 - br $while-continue|031 + br $while-continue|030 end end i32.const -1 @@ -18597,15 +17327,15 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#lastIndexOf32 - local.get $1 + block $__inlined_func$~lib/array/Array#lastIndexOf31 + local.get $3 i32.load offset=12 local.tee $0 i32.eqz if i32.const -1 local.set $0 - br $__inlined_func$~lib/array/Array#lastIndexOf32 + br $__inlined_func$~lib/array/Array#lastIndexOf31 end local.get $0 i32.const 1 @@ -18616,15 +17346,15 @@ i32.le_s select local.set $0 - local.get $1 + local.get $3 i32.load offset=4 - local.set $2 - loop $while-continue|033 + local.set $1 + loop $while-continue|032 local.get $0 i32.const 0 i32.ge_s if - local.get $2 + local.get $1 local.get $0 i32.const 2 i32.shl @@ -18632,12 +17362,12 @@ i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf32 + br_if $__inlined_func$~lib/array/Array#lastIndexOf31 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|033 + br $while-continue|032 end end i32.const -1 @@ -18652,29 +17382,29 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#lastIndexOf34 - local.get $1 + block $__inlined_func$~lib/array/Array#lastIndexOf33 + local.get $3 i32.load offset=12 local.tee $0 i32.eqz if i32.const -1 local.set $0 - br $__inlined_func$~lib/array/Array#lastIndexOf34 + br $__inlined_func$~lib/array/Array#lastIndexOf33 end local.get $0 i32.const 2 i32.sub local.set $0 - local.get $1 + local.get $3 i32.load offset=4 - local.set $2 - loop $while-continue|035 + local.set $1 + loop $while-continue|034 local.get $0 i32.const 0 i32.ge_s if - local.get $2 + local.get $1 local.get $0 i32.const 2 i32.shl @@ -18682,12 +17412,12 @@ i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf34 + br_if $__inlined_func$~lib/array/Array#lastIndexOf33 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|035 + br $while-continue|034 end end i32.const -1 @@ -18702,30 +17432,29 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#lastIndexOf36 - local.get $1 - local.tee $0 + block $__inlined_func$~lib/array/Array#lastIndexOf35 + local.get $3 i32.load offset=12 - local.tee $1 + local.tee $0 i32.eqz if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#lastIndexOf36 + br $__inlined_func$~lib/array/Array#lastIndexOf35 end - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|037 + local.set $3 + loop $while-continue|036 local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -18733,12 +17462,12 @@ i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf36 + br_if $__inlined_func$~lib/array/Array#lastIndexOf35 local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|037 + br $while-continue|036 end end i32.const -1 @@ -18757,52 +17486,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store i32.const 0 - local.set $2 - block $__inlined_func$~lib/array/Array#indexOf8 - local.get $0 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf37 + local.get $3 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 0 i32.le_s i32.const 1 - local.get $1 + local.get $0 select if i32.const -1 - local.set $2 - br $__inlined_func$~lib/array/Array#indexOf8 + local.set $1 + br $__inlined_func$~lib/array/Array#indexOf37 end - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|09 + local.set $3 + loop $while-continue|038 + local.get $0 local.get $1 - local.get $2 i32.gt_s if - local.get $0 - local.get $2 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 44 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf8 - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf37 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|09 + local.set $1 + br $while-continue|038 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 0 i32.lt_s if @@ -18815,52 +17544,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store i32.const 0 - local.set $2 - block $__inlined_func$~lib/array/Array#indexOf11 - local.get $0 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf39 + local.get $3 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 0 i32.le_s i32.const 1 - local.get $1 + local.get $0 select if i32.const -1 - local.set $2 - br $__inlined_func$~lib/array/Array#indexOf11 + local.set $1 + br $__inlined_func$~lib/array/Array#indexOf39 end - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|012 + local.set $3 + loop $while-continue|040 + local.get $0 local.get $1 - local.get $2 i32.gt_s if - local.get $0 - local.get $2 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 42 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf11 - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf39 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|012 + local.set $1 + br $while-continue|040 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 0 i32.lt_s if @@ -18873,52 +17602,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store i32.const 0 - local.set $2 - block $__inlined_func$~lib/array/Array#indexOf15 - local.get $0 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf41 + local.get $3 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 0 i32.le_s i32.const 1 - local.get $1 + local.get $0 select if i32.const -1 - local.set $2 - br $__inlined_func$~lib/array/Array#indexOf15 + local.set $1 + br $__inlined_func$~lib/array/Array#indexOf41 end - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|016 + local.set $3 + loop $while-continue|042 + local.get $0 local.get $1 - local.get $2 i32.gt_s if - local.get $0 - local.get $2 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 45 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf15 - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf41 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|016 + local.set $1 + br $while-continue|042 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 0 i32.ge_s if @@ -18931,52 +17660,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store i32.const 100 - local.set $2 - block $__inlined_func$~lib/array/Array#indexOf19 - local.get $0 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf43 + local.get $3 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 100 i32.le_s i32.const 1 - local.get $1 + local.get $0 select if i32.const -1 - local.set $2 - br $__inlined_func$~lib/array/Array#indexOf19 + local.set $1 + br $__inlined_func$~lib/array/Array#indexOf43 end - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|020 + local.set $3 + loop $while-continue|044 + local.get $0 local.get $1 - local.get $2 i32.gt_s if - local.get $0 - local.get $2 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf19 - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf43 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|020 + local.set $1 + br $while-continue|044 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 0 i32.ge_s if @@ -18989,41 +17718,41 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - block $__inlined_func$~lib/array/Array#indexOf23 - local.get $0 + block $__inlined_func$~lib/array/Array#indexOf45 + local.get $3 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 if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf23 + br $__inlined_func$~lib/array/Array#indexOf45 end - local.get $2 + 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.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|024 + local.set $3 + loop $while-continue|046 local.get $1 - local.get $2 + local.get $4 i32.lt_s if - local.get $0 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -19031,12 +17760,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf23 + br_if $__inlined_func$~lib/array/Array#indexOf45 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|024 + br $while-continue|046 end end i32.const -1 @@ -19055,41 +17784,41 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - block $__inlined_func$~lib/array/Array#indexOf27 - local.get $0 + block $__inlined_func$~lib/array/Array#indexOf47 + local.get $3 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 if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf27 + br $__inlined_func$~lib/array/Array#indexOf47 end - local.get $2 + 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.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|028 + local.set $3 + loop $while-continue|048 local.get $1 - local.get $2 + local.get $4 i32.lt_s if - local.get $0 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -19097,12 +17826,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf27 + br_if $__inlined_func$~lib/array/Array#indexOf47 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|028 + br $while-continue|048 end end i32.const -1 @@ -19121,41 +17850,41 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - block $__inlined_func$~lib/array/Array#indexOf30 - local.get $0 + block $__inlined_func$~lib/array/Array#indexOf49 + local.get $3 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 if i32.const -1 local.set $1 - br $__inlined_func$~lib/array/Array#indexOf30 + br $__inlined_func$~lib/array/Array#indexOf49 end - local.get $2 + 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.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|032 + local.set $3 + loop $while-continue|050 local.get $1 - local.get $2 + local.get $4 i32.lt_s if - local.get $0 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -19163,12 +17892,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf30 + br_if $__inlined_func$~lib/array/Array#indexOf49 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|032 + br $while-continue|050 end end i32.const -1 @@ -19187,52 +17916,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store i32.const 0 - local.set $2 - block $__inlined_func$~lib/array/Array#indexOf34 - local.get $0 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf51 + local.get $3 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 0 i32.le_s i32.const 1 - local.get $1 + local.get $0 select if i32.const -1 - local.set $2 - br $__inlined_func$~lib/array/Array#indexOf34 + local.set $1 + br $__inlined_func$~lib/array/Array#indexOf51 end - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|036 + local.set $3 + loop $while-continue|052 + local.get $0 local.get $1 - local.get $2 i32.gt_s if - local.get $0 - local.get $2 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf34 - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf51 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|036 + local.set $1 + br $while-continue|052 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 0 i32.lt_s if @@ -19245,52 +17974,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store i32.const 1 - local.set $2 - block $__inlined_func$~lib/array/Array#indexOf38 - local.get $0 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf53 + local.get $3 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_s i32.const 1 - local.get $1 + local.get $0 select if i32.const -1 - local.set $2 - br $__inlined_func$~lib/array/Array#indexOf38 + local.set $1 + br $__inlined_func$~lib/array/Array#indexOf53 end - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|039 + local.set $3 + loop $while-continue|054 + local.get $0 local.get $1 - local.get $2 i32.gt_s if - local.get $0 - local.get $2 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf38 - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf53 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|039 + local.set $1 + br $while-continue|054 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 0 i32.lt_s if @@ -19303,52 +18032,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store i32.const 2 - local.set $2 - block $__inlined_func$~lib/array/Array#indexOf41 - local.get $0 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf55 + local.get $3 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 2 i32.le_s i32.const 1 - local.get $1 + local.get $0 select if i32.const -1 - local.set $2 - br $__inlined_func$~lib/array/Array#indexOf41 + local.set $1 + br $__inlined_func$~lib/array/Array#indexOf55 end - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|042 + local.set $3 + loop $while-continue|056 + local.get $0 local.get $1 - local.get $2 i32.gt_s if - local.get $0 - local.get $2 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf41 - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf55 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|042 + local.set $1 + br $while-continue|056 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 0 i32.lt_s if @@ -19364,44 +18093,44 @@ i32.const 9 i32.const 3856 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 local.set $1 i32.const 0 - local.get $0 + local.get $3 i32.load offset=12 - local.tee $2 + local.tee $0 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $0 select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|02738 + local.set $3 + loop $while-continue|03657 + local.get $0 local.get $1 - local.get $2 - i32.lt_s + i32.gt_s if i32.const 1 i32.const 1 - local.get $0 + local.get $3 local.get $1 i32.const 2 i32.shl i32.add f32.load - local.tee $11 - local.get $11 + local.tee $12 + local.get $12 f32.ne - local.get $11 + local.get $12 f32.const nan:0x400000 f32.eq select @@ -19411,7 +18140,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|02738 + br $while-continue|03657 end end i32.const 0 @@ -19430,44 +18159,44 @@ i32.const 10 i32.const 3888 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 local.set $1 i32.const 0 - local.get $0 + local.get $3 i32.load offset=12 - local.tee $2 + local.tee $0 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $0 select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|02843 + local.set $3 + loop $while-continue|037 + local.get $0 local.get $1 - local.get $2 - i32.lt_s + i32.gt_s if i32.const 1 i32.const 1 - local.get $0 + local.get $3 local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $9 - local.get $9 + local.tee $10 + local.get $10 f64.ne - local.get $9 + local.get $10 f64.const nan:0x8000000000000 f64.eq select @@ -19477,7 +18206,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|02843 + br $while-continue|037 end end i32.const 0 @@ -19493,18 +18222,18 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 1 i32.const 1 call $~lib/array/Array#splice drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 4 i32.ne @@ -19518,9 +18247,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19534,9 +18263,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -19551,9 +18280,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -19572,27 +18301,27 @@ i32.const 3 i32.const 3920 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.const 2147483647 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3968 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19609,12 +18338,12 @@ i32.const 3 i32.const 4016 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19632,27 +18361,27 @@ i32.const 3 i32.const 4048 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 4096 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19669,12 +18398,12 @@ i32.const 3 i32.const 4128 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19692,27 +18421,27 @@ i32.const 3 i32.const 4176 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 2 i32.const 2147483647 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 3 i32.const 2 i32.const 3 i32.const 4224 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19729,12 +18458,12 @@ i32.const 3 i32.const 4256 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19752,27 +18481,27 @@ i32.const 3 i32.const 4288 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 2 i32.const 2 i32.const 3 i32.const 4336 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19789,12 +18518,12 @@ i32.const 3 i32.const 4368 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19812,27 +18541,27 @@ i32.const 3 i32.const 4400 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 4448 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19849,12 +18578,12 @@ i32.const 3 i32.const 4480 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19872,27 +18601,27 @@ i32.const 3 i32.const 4528 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const -1 i32.const 2147483647 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 4576 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19909,12 +18638,12 @@ i32.const 3 i32.const 4608 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19932,27 +18661,27 @@ i32.const 3 i32.const 4656 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const -2 i32.const 2147483647 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 2 i32.const 2 i32.const 3 i32.const 4704 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19969,12 +18698,12 @@ i32.const 3 i32.const 4736 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19992,27 +18721,27 @@ i32.const 3 i32.const 4768 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 4816 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20029,12 +18758,12 @@ i32.const 3 i32.const 4848 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20052,27 +18781,27 @@ i32.const 3 i32.const 4896 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 4944 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20089,12 +18818,12 @@ i32.const 3 i32.const 4976 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20112,27 +18841,27 @@ i32.const 3 i32.const 5024 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5072 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20149,12 +18878,12 @@ i32.const 3 i32.const 5104 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20172,27 +18901,27 @@ i32.const 3 i32.const 5152 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5200 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20209,12 +18938,12 @@ i32.const 3 i32.const 5232 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20232,27 +18961,27 @@ i32.const 3 i32.const 5280 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5328 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20269,12 +18998,12 @@ i32.const 3 i32.const 5360 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20292,27 +19021,27 @@ i32.const 3 i32.const 5408 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5456 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20329,12 +19058,12 @@ i32.const 3 i32.const 5488 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20352,27 +19081,27 @@ i32.const 3 i32.const 5536 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5584 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20389,12 +19118,12 @@ i32.const 3 i32.const 5616 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20412,15 +19141,15 @@ i32.const 8 i32.const 5664 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#splice - local.tee $0 + local.tee $3 i32.store offset=12 - local.get $0 + local.get $3 i32.load offset=12 if i32.const 0 @@ -20430,7 +19159,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -20441,53 +19170,53 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 5 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=24 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 3 i32.const 4 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 4 i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__uset + local.get $3 local.get $0 - local.get $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#splice - local.tee $0 + local.tee $3 i32.store offset=12 - local.get $0 + local.get $3 i32.load offset=12 i32.const 2 i32.ne @@ -20499,7 +19228,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#__get i32.load @@ -20513,7 +19242,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 1 call $~lib/array/Array#__get i32.load @@ -20527,7 +19256,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -20539,7 +19268,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.load @@ -20553,7 +19282,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.load @@ -20567,7 +19296,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.load @@ -20582,131 +19311,127 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 3 i32.const 2 i32.const 11 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.load offset=4 i32.store offset=20 - local.get $0 + local.get $3 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $3 i32.const 1 i32.const 0 call $~lib/array/Array#__uset - local.get $0 + local.get $3 i32.const 2 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 local.get $0 + local.get $3 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i32.const 0 i32.store i32.const 0 - local.get $0 + local.get $3 i32.load offset=12 - local.tee $7 - local.get $7 + local.tee $8 + local.get $8 i32.const 0 i32.gt_s select - local.set $6 - local.get $7 - local.get $6 + local.set $5 + local.get $0 + i32.const 1 + local.get $8 + local.get $5 i32.sub - local.tee $2 + local.tee $0 + local.get $0 i32.const 1 i32.gt_s - local.set $1 - i32.const 1 - local.get $2 - local.get $1 select - local.tee $2 + local.tee $0 i32.const 0 - i32.gt_s - local.set $1 - local.get $4 - local.get $2 + local.get $0 i32.const 0 - local.get $1 + i32.gt_s select - local.tee $3 + local.tee $2 i32.const 2 i32.const 11 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $7 i32.store - local.get $8 + local.get $7 i32.load offset=4 - local.get $0 + local.get $3 i32.load offset=4 - local.tee $2 - local.get $6 + local.tee $1 + local.get $5 i32.const 2 i32.shl i32.add - local.tee $1 - local.get $3 + local.tee $0 + local.get $2 i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $7 - local.get $3 - local.get $6 + local.get $8 + local.get $2 + local.get $5 i32.add - local.tee $4 + local.tee $5 i32.ne if + local.get $0 local.get $1 - local.get $2 - local.get $4 + local.get $5 i32.const 2 i32.shl i32.add - local.get $7 - local.get $4 + local.get $8 + local.get $5 i32.sub i32.const 2 i32.shl call $~lib/memory/memory.copy end - local.get $0 - local.get $7 local.get $3 + local.get $8 + local.get $2 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 $5 - local.get $8 + local.get $4 + local.get $7 i32.store offset=24 - local.get $8 + local.get $7 i32.load offset=12 i32.const 1 i32.ne @@ -20719,12 +19444,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.const 0 call $~lib/array/Array#__get - local.tee $1 + local.tee $0 i32.store offset=28 - local.get $1 + local.get $0 i32.eqz if i32.const 5824 @@ -20734,7 +19459,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load i32.const 1 i32.ne @@ -20746,7 +19471,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.load offset=12 i32.const 2 i32.ne @@ -20758,7 +19483,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#__get if @@ -20770,12 +19495,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 1 call $~lib/array/Array#__get - local.tee $0 + local.tee $3 i32.store offset=28 - local.get $0 + local.get $3 i32.eqz if i32.const 5824 @@ -20785,7 +19510,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.load i32.const 2 i32.ne @@ -20799,59 +19524,59 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i32.const 0 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 1 i32.const 1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 2 i32.const 2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 3 i32.const 3 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 5888 i32.store offset=8 i32.const 0 local.set $1 local.get $4 i32.load offset=12 - local.set $2 + local.set $0 block $__inlined_func$~lib/array/Array#findIndex - loop $for-loop|040 + loop $for-loop|059 local.get $1 - local.get $2 + local.get $0 local.get $4 i32.load offset=12 - local.tee $0 + local.tee $3 local.get $0 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -20874,7 +19599,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|040 + br $for-loop|059 end end i32.const -1 @@ -20892,28 +19617,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 5920 i32.store offset=8 i32.const 0 local.set $1 local.get $4 i32.load offset=12 - local.set $2 - block $__inlined_func$~lib/array/Array#findIndex41 - loop $for-loop|042 + local.set $0 + block $__inlined_func$~lib/array/Array#findIndex60 + loop $for-loop|061 local.get $1 - local.get $2 + local.get $0 local.get $4 i32.load offset=12 - local.tee $0 + local.tee $3 local.get $0 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -20931,12 +19656,12 @@ i32.const 5920 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex41 + br_if $__inlined_func$~lib/array/Array#findIndex60 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|042 + br $for-loop|061 end end i32.const -1 @@ -20956,28 +19681,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 5952 i32.store offset=8 i32.const 0 local.set $1 local.get $4 i32.load offset=12 - local.set $2 - block $__inlined_func$~lib/array/Array#findIndex43 - loop $for-loop|044 + local.set $0 + block $__inlined_func$~lib/array/Array#findIndex62 + loop $for-loop|063 local.get $1 - local.get $2 + local.get $0 local.get $4 i32.load offset=12 - local.tee $0 + local.tee $3 local.get $0 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -20995,12 +19720,12 @@ i32.const 5952 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex43 + br_if $__inlined_func$~lib/array/Array#findIndex62 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|044 + br $for-loop|063 end end i32.const -1 @@ -21020,28 +19745,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 5984 i32.store offset=8 i32.const 0 local.set $1 local.get $4 i32.load offset=12 - local.set $2 - block $__inlined_func$~lib/array/Array#findIndex45 - loop $for-loop|046 + local.set $0 + block $__inlined_func$~lib/array/Array#findIndex64 + loop $for-loop|065 local.get $1 - local.get $2 + local.get $0 local.get $4 i32.load offset=12 - local.tee $0 + local.tee $3 local.get $0 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -21059,12 +19784,12 @@ i32.const 5984 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex45 + br_if $__inlined_func$~lib/array/Array#findIndex64 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|046 + br $for-loop|065 end end i32.const -1 @@ -21085,9 +19810,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 8 i32.ne @@ -21100,28 +19825,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 6016 i32.store offset=8 i32.const 0 local.set $1 local.get $4 i32.load offset=12 - local.set $2 - block $__inlined_func$~lib/array/Array#findIndex47 - loop $for-loop|048 + local.set $0 + block $__inlined_func$~lib/array/Array#findIndex66 + loop $for-loop|067 local.get $1 - local.get $2 + local.get $0 local.get $4 i32.load offset=12 - local.tee $0 + local.tee $3 local.get $0 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -21139,12 +19864,12 @@ i32.const 6016 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex47 + br_if $__inlined_func$~lib/array/Array#findIndex66 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|048 + br $for-loop|067 end end i32.const -1 @@ -21165,55 +19890,55 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 6048 i32.store offset=8 i32.const 0 local.set $1 local.get $4 i32.load offset=12 - local.set $2 - block $__inlined_func$~lib/array/Array#findIndex49 - loop $for-loop|050 + local.set $0 + block $__inlined_func$~lib/array/Array#findIndex68 + loop $for-loop|069 local.get $1 - local.get $2 + local.get $0 local.get $4 i32.load offset=12 - local.tee $0 + local.tee $3 local.get $0 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -21231,12 +19956,12 @@ i32.const 6048 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex49 + br_if $__inlined_func$~lib/array/Array#findIndex68 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|050 + br $for-loop|069 end end i32.const -1 @@ -21257,9 +19982,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 2 i32.ne @@ -21273,17 +19998,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 3 call $~lib/array/Array#push drop @@ -21293,23 +20018,23 @@ i32.const 3 i32.const 6080 call $~lib/rt/__newArray - local.tee $1 + local.tee $4 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 6128 i32.store offset=8 - local.get $1 + local.get $4 i32.load offset=12 i32.const 1 i32.sub local.set $0 block $__inlined_func$~lib/array/Array#findLastIndex - loop $for-loop|051 + loop $for-loop|070 local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $4 i32.load offset=4 local.get $0 i32.const 2 @@ -21319,7 +20044,7 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $1 + local.get $4 i32.const 6128 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -21328,7 +20053,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|051 + br $for-loop|070 end end i32.const -1 @@ -21348,18 +20073,18 @@ global.get $~lib/memory/__stack_pointer i32.const 6160 i32.store offset=8 - local.get $1 + local.get $4 i32.load offset=12 i32.const 1 i32.sub local.set $0 - block $__inlined_func$~lib/array/Array#findLastIndex52 - loop $for-loop|053 + block $__inlined_func$~lib/array/Array#findLastIndex47 + loop $for-loop|048 local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $4 i32.load offset=4 local.get $0 i32.const 2 @@ -21369,16 +20094,16 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $1 + local.get $4 i32.const 6160 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex52 + br_if $__inlined_func$~lib/array/Array#findLastIndex47 local.get $0 i32.const 1 i32.sub local.set $0 - br $for-loop|053 + br $for-loop|048 end end i32.const -1 @@ -21400,18 +20125,18 @@ global.get $~lib/memory/__stack_pointer i32.const 6192 i32.store offset=8 - local.get $1 + local.get $4 i32.load offset=12 i32.const 1 i32.sub local.set $0 - block $__inlined_func$~lib/array/Array#findLastIndex54 - loop $for-loop|055 + block $__inlined_func$~lib/array/Array#findLastIndex49 + loop $for-loop|050 local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $4 i32.load offset=4 local.get $0 i32.const 2 @@ -21421,16 +20146,16 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $1 + local.get $4 i32.const 6192 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex54 + br_if $__inlined_func$~lib/array/Array#findLastIndex49 local.get $0 i32.const 1 i32.sub local.set $0 - br $for-loop|055 + br $for-loop|050 end end i32.const -1 @@ -21452,19 +20177,18 @@ global.get $~lib/memory/__stack_pointer i32.const 6224 i32.store offset=8 - local.get $1 - local.tee $0 + local.get $4 i32.load offset=12 i32.const 1 i32.sub local.set $1 - block $__inlined_func$~lib/array/Array#findLastIndex56 - loop $for-loop|057 + block $__inlined_func$~lib/array/Array#findLastIndex51 + loop $for-loop|052 local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $4 i32.load offset=4 local.get $1 i32.const 2 @@ -21474,16 +20198,16 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $0 + local.get $4 i32.const 6224 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex56 + br_if $__inlined_func$~lib/array/Array#findLastIndex51 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|057 + br $for-loop|052 end end i32.const -1 @@ -21503,11 +20227,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $5 i32.store - local.get $0 + local.get $3 i32.const 6256 i32.store offset=8 block $__inlined_func$~lib/array/Array#every (result i32) @@ -21516,13 +20240,13 @@ local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|058 + loop $for-loop|071 local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 local.get $4 i32.gt_s select @@ -21535,11 +20259,11 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 + local.get $3 local.get $0 local.get $5 i32.const 6256 @@ -21552,7 +20276,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|058 + br $for-loop|071 end end i32.const 1 @@ -21567,26 +20291,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $5 i32.store - local.get $0 + local.get $3 i32.const 6288 i32.store offset=8 - block $__inlined_func$~lib/array/Array#every59 (result i32) + block $__inlined_func$~lib/array/Array#every72 (result i32) i32.const 0 local.set $0 local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|060 + loop $for-loop|073 local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 local.get $4 i32.gt_s select @@ -21599,24 +20323,24 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 + local.get $3 local.get $0 local.get $5 i32.const 6288 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every59 + br_if $__inlined_func$~lib/array/Array#every72 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|060 + br $for-loop|073 end end i32.const 1 @@ -21630,26 +20354,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $5 i32.store - local.get $0 + local.get $3 i32.const 6320 i32.store offset=8 - block $__inlined_func$~lib/array/Array#every61 (result i32) + block $__inlined_func$~lib/array/Array#every74 (result i32) i32.const 0 local.set $0 local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|062 + loop $for-loop|075 local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 local.get $4 i32.gt_s select @@ -21662,24 +20386,24 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 + local.get $3 local.get $0 local.get $5 i32.const 6320 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every61 + br_if $__inlined_func$~lib/array/Array#every74 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|062 + br $for-loop|075 end end i32.const 1 @@ -21695,9 +20419,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 8 i32.ne @@ -21710,26 +20434,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $5 i32.store - local.get $0 + local.get $3 i32.const 6352 i32.store offset=8 - block $__inlined_func$~lib/array/Array#every63 (result i32) + block $__inlined_func$~lib/array/Array#every76 (result i32) i32.const 0 local.set $0 local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|064 + loop $for-loop|077 local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 local.get $4 i32.gt_s select @@ -21742,24 +20466,24 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 + local.get $3 local.get $0 local.get $5 i32.const 6352 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every63 + br_if $__inlined_func$~lib/array/Array#every76 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|064 + br $for-loop|077 end end i32.const 1 @@ -21774,53 +20498,53 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $5 i32.store - local.get $0 + local.get $3 i32.const 6384 i32.store offset=8 - block $__inlined_func$~lib/array/Array#every65 (result i32) + block $__inlined_func$~lib/array/Array#every78 (result i32) i32.const 0 local.set $0 local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|066 + loop $for-loop|079 local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 local.get $4 i32.gt_s select @@ -21833,24 +20557,24 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 + local.get $3 local.get $0 local.get $5 i32.const 6384 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every65 + br_if $__inlined_func$~lib/array/Array#every78 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|066 + br $for-loop|079 end end i32.const 1 @@ -21866,9 +20590,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 2 i32.ne @@ -21882,26 +20606,26 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $5 i32.store - local.get $0 + local.get $3 i32.const 6416 i32.store offset=8 block $__inlined_func$~lib/array/Array#some (result i32) @@ -21910,13 +20634,13 @@ local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|067 + loop $for-loop|080 local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 local.get $4 i32.gt_s select @@ -21929,11 +20653,11 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 + local.get $3 local.get $0 local.get $5 i32.const 6416 @@ -21945,7 +20669,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|067 + br $for-loop|080 end end i32.const 0 @@ -21960,26 +20684,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $5 i32.store - local.get $0 + local.get $3 i32.const 6448 i32.store offset=8 - block $__inlined_func$~lib/array/Array#some68 (result i32) + block $__inlined_func$~lib/array/Array#some81 (result i32) i32.const 0 local.set $0 local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|069 + loop $for-loop|082 local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 local.get $4 i32.gt_s select @@ -21992,23 +20716,23 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 + local.get $3 local.get $0 local.get $5 i32.const 6448 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some68 + br_if $__inlined_func$~lib/array/Array#some81 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|069 + br $for-loop|082 end end i32.const 0 @@ -22022,26 +20746,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $5 i32.store - local.get $0 + local.get $3 i32.const 6480 i32.store offset=8 - block $__inlined_func$~lib/array/Array#some70 (result i32) + block $__inlined_func$~lib/array/Array#some83 (result i32) i32.const 0 local.set $0 local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|071 + loop $for-loop|084 local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 local.get $4 i32.gt_s select @@ -22054,23 +20778,23 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 + local.get $3 local.get $0 local.get $5 i32.const 6480 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some70 + br_if $__inlined_func$~lib/array/Array#some83 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|071 + br $for-loop|084 end end i32.const 0 @@ -22085,9 +20809,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 8 i32.ne @@ -22100,26 +20824,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $5 i32.store - local.get $0 + local.get $3 i32.const 6512 i32.store offset=8 - block $__inlined_func$~lib/array/Array#some72 (result i32) + block $__inlined_func$~lib/array/Array#some85 (result i32) i32.const 0 local.set $0 local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|073 + loop $for-loop|086 local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 local.get $4 i32.gt_s select @@ -22132,23 +20856,23 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 + local.get $3 local.get $0 local.get $5 i32.const 6512 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some72 + br_if $__inlined_func$~lib/array/Array#some85 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|073 + br $for-loop|086 end end i32.const 0 @@ -22164,53 +20888,53 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $5 i32.store - local.get $0 + local.get $3 i32.const 6544 i32.store offset=8 - block $__inlined_func$~lib/array/Array#some74 (result i32) + block $__inlined_func$~lib/array/Array#some87 (result i32) i32.const 0 local.set $0 local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|075 + loop $for-loop|088 local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 local.get $4 i32.gt_s select @@ -22223,23 +20947,23 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 + local.get $3 local.get $0 local.get $5 i32.const 6544 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some74 + br_if $__inlined_func$~lib/array/Array#some87 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|075 + br $for-loop|088 end end i32.const 0 @@ -22254,9 +20978,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 2 i32.ne @@ -22270,44 +20994,44 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 3 call $~lib/array/Array#push drop i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 6576 i32.store offset=8 i32.const 0 local.set $0 local.get $4 i32.load offset=12 - local.set $2 - loop $for-loop|076 + local.set $1 + loop $for-loop|089 local.get $0 - local.get $2 + local.get $1 local.get $4 i32.load offset=12 - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -22329,7 +21053,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|076 + br $for-loop|089 end end global.get $std/array/i @@ -22346,27 +21070,27 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 6608 i32.store offset=8 i32.const 0 local.set $0 local.get $4 i32.load offset=12 - local.set $2 - loop $for-loop|078 + local.set $1 + loop $for-loop|091 local.get $0 - local.get $2 + local.get $1 local.get $4 i32.load offset=12 - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -22388,7 +21112,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|078 + br $for-loop|091 end end global.get $std/array/i @@ -22404,9 +21128,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 8 i32.ne @@ -22421,27 +21145,27 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 6640 i32.store offset=8 i32.const 0 local.set $0 local.get $4 i32.load offset=12 - local.set $2 - loop $for-loop|080 + local.set $1 + loop $for-loop|093 local.get $0 - local.get $2 + local.get $1 local.get $4 i32.load offset=12 - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -22463,7 +21187,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|080 + br $for-loop|093 end end global.get $std/array/i @@ -22479,56 +21203,56 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 6672 i32.store offset=8 i32.const 0 local.set $0 local.get $4 i32.load offset=12 - local.set $2 - loop $for-loop|082 + local.set $1 + loop $for-loop|095 local.get $0 - local.get $2 + local.get $1 local.get $4 i32.load offset=12 - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -22550,7 +21274,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|082 + br $for-loop|095 end end global.get $std/array/i @@ -22566,9 +21290,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 2 i32.ne @@ -22582,42 +21306,42 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 6704 i32.store offset=8 i32.const 0 local.set $0 local.get $4 i32.load offset=12 - local.set $2 - loop $for-loop|084 + local.set $1 + loop $for-loop|097 local.get $0 - local.get $2 + local.get $1 local.get $4 i32.load offset=12 - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -22639,14 +21363,14 @@ i32.const 1 i32.add local.set $0 - br $for-loop|084 + br $for-loop|097 end end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 100 i32.ne @@ -22660,103 +21384,101 @@ end i32.const 0 local.set $0 - loop $for-loop|085 + loop $for-loop|060 local.get $0 i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $3 i32.store - local.get $1 + local.get $3 call $~lib/array/Array#pop drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|085 + br $for-loop|060 end end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 1 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $8 i32.store - local.get $0 + local.get $3 i32.const 6736 i32.store offset=8 i32.const 0 local.set $1 - local.get $0 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 0 i32.store - local.get $2 + local.get $0 local.get $8 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const 2 i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 i32.load offset=4 local.set $5 - loop $for-loop|045 - local.get $3 + loop $for-loop|06199 + local.get $1 + local.get $2 local.get $8 i32.load offset=12 - local.tee $4 - i32.lt_s - local.set $2 - local.get $1 - local.get $3 - local.get $4 + local.tee $0 + local.get $0 local.get $2 + i32.gt_s select i32.lt_s if @@ -22768,13 +21490,13 @@ i32.load offset=4 i32.add i32.load - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength local.get $4 local.get $5 i32.add - local.get $2 + local.get $0 local.get $1 local.get $8 i32.const 6736 @@ -22785,17 +21507,17 @@ i32.const 1 i32.add local.set $1 - br $for-loop|045 + br $for-loop|06199 end end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $6 + local.get $3 + local.get $7 i32.store offset=20 - local.get $6 + local.get $7 i32.load offset=12 i32.const 4 i32.ne @@ -22807,14 +21529,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $7 i32.const 0 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#__get f32.convert_i32_s @@ -22830,14 +21552,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/array/arr local.tee $0 + global.get $std/array/arr + local.tee $3 i32.store - local.get $1 + local.get $0 i32.const 6768 i32.store offset=8 - local.get $0 + local.get $3 i32.const 6768 call $~lib/array/Array#map global.get $std/array/i @@ -22853,9 +21575,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 8 i32.ne @@ -22870,14 +21592,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/array/arr local.tee $0 + global.get $std/array/arr + local.tee $3 i32.store - local.get $1 + local.get $0 i32.const 6800 i32.store offset=8 - local.get $0 + local.get $3 i32.const 6800 call $~lib/array/Array#map global.get $std/array/i @@ -22893,43 +21615,43 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/array/arr local.tee $0 + global.get $std/array/arr + local.tee $3 i32.store - local.get $1 + local.get $0 i32.const 6832 i32.store offset=8 - local.get $0 + local.get $3 i32.const 6832 call $~lib/array/Array#map global.get $std/array/i @@ -22945,9 +21667,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 2 i32.ne @@ -22961,35 +21683,35 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/array/arr local.tee $0 + global.get $std/array/arr + local.tee $3 i32.store - local.get $1 + local.get $0 i32.const 6864 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 i32.const 6864 call $~lib/array/Array#filter - local.tee $0 + local.tee $3 i32.store offset=20 - local.get $0 + local.get $3 i32.load offset=12 i32.const 2 i32.ne @@ -23004,14 +21726,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/array/arr local.tee $0 + global.get $std/array/arr + local.tee $3 i32.store - local.get $1 + local.get $0 i32.const 6896 i32.store offset=8 - local.get $0 + local.get $3 i32.const 6896 call $~lib/array/Array#filter drop @@ -23028,9 +21750,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 8 i32.ne @@ -23045,14 +21767,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/array/arr local.tee $0 + global.get $std/array/arr + local.tee $3 i32.store - local.get $1 + local.get $0 i32.const 6928 i32.store offset=8 - local.get $0 + local.get $3 i32.const 6928 call $~lib/array/Array#filter drop @@ -23069,43 +21791,43 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/array/arr local.tee $0 + global.get $std/array/arr + local.tee $3 i32.store - local.get $1 + local.get $0 i32.const 6960 i32.store offset=8 - local.get $0 + local.get $3 i32.const 6960 call $~lib/array/Array#filter drop @@ -23122,9 +21844,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 2 i32.ne @@ -23138,44 +21860,42 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 6992 i32.store offset=8 i32.const 0 - local.set $6 - i32.const 0 local.set $0 local.get $4 i32.load offset=12 - local.set $2 - loop $for-loop|087 + local.set $1 + loop $for-loop|0100 local.get $0 - local.get $2 + local.get $1 local.get $4 i32.load offset=12 - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -23186,11 +21906,11 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 4 global.set $~argumentsLength local.get $6 - local.get $1 + local.get $3 local.get $0 local.get $4 i32.const 6992 @@ -23201,7 +21921,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|087 + br $for-loop|0100 end end local.get $6 @@ -23218,11 +21938,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 7024 i32.store offset=8 i32.const 4 @@ -23231,16 +21951,16 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 - loop $for-loop|089 + local.set $1 + loop $for-loop|0102 local.get $0 - local.get $2 + local.get $1 local.get $4 i32.load offset=12 - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -23251,11 +21971,11 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 4 global.set $~argumentsLength local.get $6 - local.get $1 + local.get $3 local.get $0 local.get $4 i32.const 7024 @@ -23266,7 +21986,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|089 + br $for-loop|0102 end end local.get $6 @@ -23283,11 +22003,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 7056 i32.store offset=8 i32.const 0 @@ -23296,16 +22016,16 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 - loop $for-loop|091 + local.set $1 + loop $for-loop|0104 local.get $0 - local.get $2 + local.get $1 local.get $4 i32.load offset=12 - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -23316,11 +22036,11 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 4 global.set $~argumentsLength local.get $6 - local.get $1 + local.get $3 local.get $0 local.get $4 i32.const 7056 @@ -23331,7 +22051,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|091 + br $for-loop|0104 end end local.get $6 @@ -23345,11 +22065,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 7088 i32.store offset=8 i32.const 0 @@ -23358,16 +22078,16 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 - loop $for-loop|093 + local.set $1 + loop $for-loop|0106 local.get $0 - local.get $2 + local.get $1 local.get $4 i32.load offset=12 - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -23378,11 +22098,11 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 4 global.set $~argumentsLength local.get $6 - local.get $1 + local.get $3 local.get $0 local.get $4 i32.const 7088 @@ -23393,7 +22113,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|093 + br $for-loop|0106 end end local.get $6 @@ -23406,11 +22126,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 7120 i32.store offset=8 i32.const 0 @@ -23419,16 +22139,16 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 - loop $for-loop|095 + local.set $1 + loop $for-loop|0108 local.get $0 - local.get $2 + local.get $1 local.get $4 i32.load offset=12 - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -23439,11 +22159,11 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 4 global.set $~argumentsLength local.get $6 - local.get $1 + local.get $3 local.get $0 local.get $4 i32.const 7120 @@ -23454,7 +22174,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|095 + br $for-loop|0108 end end local.get $6 @@ -23472,9 +22192,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 8 i32.ne @@ -23487,11 +22207,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 7152 i32.store offset=8 i32.const 0 @@ -23500,16 +22220,16 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 - loop $for-loop|097 + local.set $1 + loop $for-loop|0110 local.get $0 - local.get $2 + local.get $1 local.get $4 i32.load offset=12 - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -23520,11 +22240,11 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 4 global.set $~argumentsLength local.get $6 - local.get $1 + local.get $3 local.get $0 local.get $4 i32.const 7152 @@ -23535,7 +22255,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|097 + br $for-loop|0110 end end local.get $6 @@ -23553,38 +22273,38 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 7184 i32.store offset=8 i32.const 0 @@ -23593,16 +22313,16 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 - loop $for-loop|099 + local.set $1 + loop $for-loop|0112 local.get $0 - local.get $2 + local.get $1 local.get $4 i32.load offset=12 - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select i32.lt_s if @@ -23613,11 +22333,11 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 4 global.set $~argumentsLength local.get $6 - local.get $1 + local.get $3 local.get $0 local.get $4 i32.const 7184 @@ -23628,7 +22348,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|099 + br $for-loop|0112 end end local.get $6 @@ -23646,9 +22366,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 2 i32.ne @@ -23662,66 +22382,66 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr - local.tee $2 + local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 7216 i32.store offset=8 i32.const 0 - local.set $6 - local.get $2 + local.set $0 + local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0100 - local.get $0 + local.set $1 + loop $for-loop|070113 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $1 local.get $0 - local.get $2 + local.get $3 + local.get $1 + local.get $4 i32.const 7216 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0100 + local.set $1 + br $for-loop|070113 end end - local.get $6 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23735,51 +22455,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr - local.tee $2 + local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 7248 i32.store offset=8 i32.const 4 - local.set $6 - local.get $2 + local.set $0 + local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0102 - local.get $0 + local.set $1 + loop $for-loop|072 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $1 local.get $0 - local.get $2 + local.get $3 + local.get $1 + local.get $4 i32.const 7248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0102 + local.set $1 + br $for-loop|072 end end - local.get $6 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23793,51 +22513,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr - local.tee $2 + local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 7280 i32.store offset=8 i32.const 0 - local.set $6 - local.get $2 + local.set $0 + local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0104 - local.get $0 + local.set $1 + loop $for-loop|074 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $1 local.get $0 - local.get $2 + local.get $3 + local.get $1 + local.get $4 i32.const 7280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0104 + local.set $1 + br $for-loop|074 end end - local.get $6 + local.get $0 i32.eqz if i32.const 0 @@ -23848,51 +22568,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr - local.tee $2 + local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 7312 i32.store offset=8 i32.const 0 - local.set $6 - local.get $2 + local.set $0 + local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0106 - local.get $0 + local.set $1 + loop $for-loop|076 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $1 local.get $0 - local.get $2 + local.get $3 + local.get $1 + local.get $4 i32.const 7312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0106 + local.set $1 + br $for-loop|076 end end - local.get $6 + local.get $0 if i32.const 0 i32.const 1552 @@ -23902,51 +22622,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr - local.tee $2 + local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 7344 i32.store offset=8 i32.const 0 - local.set $6 - local.get $2 + local.set $0 + local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0108 - local.get $0 + local.set $1 + loop $for-loop|078 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $1 local.get $0 - local.get $2 + local.get $3 + local.get $1 + local.get $4 i32.const 7344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0108 + local.set $1 + br $for-loop|078 end end - local.get $6 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23961,9 +22681,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 i32.const 8 i32.ne @@ -23976,51 +22696,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr - local.tee $2 + local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 7376 i32.store offset=8 i32.const 0 - local.set $6 - local.get $2 + local.set $0 + local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0110 - local.get $0 + local.set $1 + loop $for-loop|081 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $1 local.get $0 - local.get $2 + local.get $3 + local.get $1 + local.get $4 i32.const 7376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0110 + local.set $1 + br $for-loop|081 end end - local.get $6 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -24035,78 +22755,78 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $std/array/arr - local.tee $2 + local.tee $4 i32.store - local.get $0 + local.get $3 i32.const 7408 i32.store offset=8 i32.const 0 - local.set $6 - local.get $2 + local.set $0 + local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0112 - local.get $0 + local.set $1 + loop $for-loop|083 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $1 local.get $0 - local.get $2 + local.get $3 + local.get $1 + local.get $4 i32.const 7408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0112 + local.set $1 + br $for-loop|083 end end - local.get $6 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -24121,9 +22841,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 if i32.const 0 @@ -24135,33 +22855,33 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 1 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 3 call $~lib/array/Array#push drop @@ -24174,182 +22894,182 @@ i32.const 19 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.tee $3 + local.get $0 i32.load offset=4 i32.store offset=24 - local.get $0 + local.get $3 call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=12 - local.get $0 + local.get $3 i32.const 100 i32.store - local.get $0 + local.get $3 i32.const 80 i32.store offset=4 - local.get $1 - i32.const 0 local.get $0 + i32.const 0 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=16 - local.get $0 + local.get $3 i32.const 90 i32.store - local.get $0 + local.get $3 i32.const 90 i32.store offset=4 - local.get $1 - i32.const 1 local.get $0 + i32.const 1 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=4 - local.get $0 + local.get $3 i32.const 70 i32.store - local.get $0 + local.get $3 i32.const 95 i32.store offset=4 - local.get $1 - i32.const 2 local.get $0 + i32.const 2 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=28 - local.get $0 + local.get $3 i32.const 100 i32.store - local.get $0 + local.get $3 i32.const 100 i32.store offset=4 - local.get $1 - i32.const 3 local.get $0 + i32.const 3 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=32 - local.get $0 + local.get $3 i32.const 80 i32.store - local.get $0 + local.get $3 i32.const 110 i32.store offset=4 - local.get $1 - i32.const 4 local.get $0 + i32.const 4 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=36 - local.get $0 + local.get $3 i32.const 110 i32.store - local.get $0 + local.get $3 i32.const 115 i32.store offset=4 - local.get $1 - i32.const 5 local.get $0 + i32.const 5 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=40 - local.get $0 + local.get $3 i32.const 100 i32.store - local.get $0 + local.get $3 i32.const 120 i32.store offset=4 - local.get $1 - i32.const 6 local.get $0 + i32.const 6 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=44 - local.get $0 + local.get $3 i32.const 70 i32.store - local.get $0 + local.get $3 i32.const 125 i32.store offset=4 - local.get $1 - i32.const 7 local.get $0 + i32.const 7 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=48 - local.get $0 + local.get $3 i32.const 70 i32.store - local.get $0 + local.get $3 i32.const 130 i32.store offset=4 - local.get $1 - i32.const 8 local.get $0 + i32.const 8 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=52 - local.get $0 + local.get $3 i32.const 100 i32.store - local.get $0 + local.get $3 i32.const 135 i32.store offset=4 - local.get $1 - i32.const 9 local.get $0 + i32.const 9 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=56 - local.get $0 + local.get $3 i32.const 75 i32.store - local.get $0 + local.get $3 i32.const 140 i32.store offset=4 - local.get $1 - i32.const 10 local.get $0 + i32.const 10 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=60 - local.get $0 + local.get $3 i32.const 70 i32.store - local.get $0 + local.get $3 i32.const 140 i32.store offset=4 - local.get $1 - i32.const 11 local.get $0 + i32.const 11 + local.get $3 call $~lib/array/Array#__uset - local.get $1 + local.get $0 global.set $std/array/inputStabArr global.get $~lib/memory/__stack_pointer i32.const 12 @@ -24357,182 +23077,182 @@ i32.const 19 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.tee $3 + local.get $0 i32.load offset=4 i32.store offset=20 - local.get $0 + local.get $3 call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=64 - local.get $0 + local.get $3 i32.const 70 i32.store - local.get $0 + local.get $3 i32.const 95 i32.store offset=4 - local.get $1 - i32.const 0 local.get $0 + i32.const 0 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=68 - local.get $0 + local.get $3 i32.const 70 i32.store - local.get $0 + local.get $3 i32.const 125 i32.store offset=4 - local.get $1 - i32.const 1 local.get $0 + i32.const 1 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=72 - local.get $0 + local.get $3 i32.const 70 i32.store - local.get $0 + local.get $3 i32.const 130 i32.store offset=4 - local.get $1 - i32.const 2 local.get $0 + i32.const 2 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=76 - local.get $0 + local.get $3 i32.const 70 i32.store - local.get $0 + local.get $3 i32.const 140 i32.store offset=4 - local.get $1 - i32.const 3 local.get $0 + i32.const 3 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=80 - local.get $0 + local.get $3 i32.const 75 i32.store - local.get $0 + local.get $3 i32.const 140 i32.store offset=4 - local.get $1 - i32.const 4 local.get $0 + i32.const 4 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=84 - local.get $0 + local.get $3 i32.const 80 i32.store - local.get $0 + local.get $3 i32.const 110 i32.store offset=4 - local.get $1 - i32.const 5 local.get $0 + i32.const 5 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=88 - local.get $0 + local.get $3 i32.const 90 i32.store - local.get $0 + local.get $3 i32.const 90 i32.store offset=4 - local.get $1 - i32.const 6 local.get $0 + i32.const 6 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=92 - local.get $0 + local.get $3 i32.const 100 i32.store - local.get $0 + local.get $3 i32.const 80 i32.store offset=4 - local.get $1 - i32.const 7 local.get $0 + i32.const 7 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=96 - local.get $0 + local.get $3 i32.const 100 i32.store - local.get $0 + local.get $3 i32.const 100 i32.store offset=4 - local.get $1 - i32.const 8 local.get $0 + i32.const 8 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=100 - local.get $0 + local.get $3 i32.const 100 i32.store - local.get $0 + local.get $3 i32.const 120 i32.store offset=4 - local.get $1 - i32.const 9 local.get $0 + i32.const 9 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=104 - local.get $0 + local.get $3 i32.const 100 i32.store - local.get $0 + local.get $3 i32.const 135 i32.store offset=4 - local.get $1 - i32.const 10 local.get $0 + i32.const 10 + local.get $3 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $3 i32.store offset=108 - local.get $0 + local.get $3 i32.const 110 i32.store - local.get $0 + local.get $3 i32.const 115 i32.store offset=4 - local.get $1 - i32.const 11 local.get $0 + i32.const 11 + local.get $3 call $~lib/array/Array#__uset - local.get $1 + local.get $0 global.set $std/array/outputStabArr global.get $~lib/memory/__stack_pointer i32.const 3 @@ -24540,23 +23260,23 @@ i32.const 9 i32.const 7680 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=24 i32.const 0 global.set $~argumentsLength - local.get $1 + local.get $0 call $~lib/array/Array#sort@varargs i32.const 3 i32.const 2 i32.const 9 i32.const 7744 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -24573,23 +23293,23 @@ i32.const 9 i32.const 7776 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=20 i32.const 0 global.set $~argumentsLength - local.get $1 + local.get $0 call $~lib/array/Array#sort@varargs i32.const 8 i32.const 2 i32.const 9 i32.const 7840 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -24606,7 +23326,9 @@ i32.const 10 i32.const 7904 call $~lib/rt/__newArray - local.tee $4 + local.tee $5 + local.set $1 + local.get $5 i32.store offset=112 i32.const 0 global.set $~argumentsLength @@ -24619,15 +23341,15 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of144 - block $0of145 - block $outOfRange46 + block $1of18 + block $0of19 + block $outOfRange10 global.get $~argumentsLength - br_table $0of145 $1of144 $outOfRange46 + br_table $0of19 $1of18 $outOfRange10 end unreachable end @@ -24637,9 +23359,9 @@ i32.const 8000 i32.store end - local.get $4 + local.get $1 i32.load offset=4 - local.get $4 + local.get $1 i32.load offset=12 local.get $0 call $~lib/util/sort/SORT @@ -24652,45 +23374,45 @@ i32.const 10 i32.const 8032 call $~lib/rt/__newArray - local.set $2 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=8 block $__inlined_func$std/array/isArraysEqual (result i32) i32.const 0 - local.set $7 + local.set $0 i32.const 0 - local.get $4 + local.get $5 i32.load offset=12 - local.tee $0 - local.get $2 + local.tee $3 + local.get $4 i32.load offset=12 i32.ne br_if $__inlined_func$std/array/isArraysEqual drop i32.const 1 - local.get $2 local.get $4 + local.get $5 i32.eq br_if $__inlined_func$std/array/isArraysEqual drop loop $for-loop|026 local.get $0 - local.get $7 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $4 - local.get $7 + local.get $5 + local.get $0 call $~lib/array/Array#__get - local.tee $9 - local.get $9 + local.tee $10 + local.get $10 f64.ne if (result i32) - local.get $2 - local.get $7 + local.get $4 + local.get $0 call $~lib/array/Array#__get - local.tee $9 - local.get $9 + local.tee $10 + local.get $10 f64.ne else i32.const 0 @@ -24698,20 +23420,20 @@ i32.eqz if i32.const 0 - local.get $4 - local.get $7 + local.get $5 + local.get $0 call $~lib/array/Array#__get - local.get $2 - local.get $7 + local.get $4 + local.get $0 call $~lib/array/Array#__get f64.ne br_if $__inlined_func$std/array/isArraysEqual drop end - local.get $7 + local.get $0 i32.const 1 i32.add - local.set $7 + local.set $0 br $for-loop|026 end end @@ -24732,12 +23454,14 @@ i32.const 3 i32.const 8128 call $~lib/rt/__newArray - local.tee $1 + local.tee $4 + local.set $0 + local.get $4 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 @@ -24745,29 +23469,29 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1102 - block $0of1103 - block $outOfRange104 + block $1of1131 + block $0of1132 + block $outOfRange133 global.get $~argumentsLength - br_table $0of1103 $1of1102 $outOfRange104 + br_table $0of1132 $1of1131 $outOfRange133 end unreachable end i32.const 8176 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8176 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 @@ -24778,12 +23502,12 @@ i32.const 3 i32.const 8208 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 - local.get $0 + local.get $4 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24801,11 +23525,11 @@ i32.const 7 i32.const 8256 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=120 i32.const 0 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#sort@varargs drop @@ -24814,12 +23538,12 @@ i32.const 7 i32.const 8336 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=8 - local.get $1 local.get $0 + local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -24836,7 +23560,7 @@ i32.const 3 i32.const 8384 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=124 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -24844,7 +23568,7 @@ i32.const 3 i32.const 8416 call $~lib/rt/__newArray - local.tee $7 + local.tee $6 i32.store offset=128 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -24860,7 +23584,7 @@ i32.const 3 i32.const 8480 call $~lib/rt/__newArray - local.tee $6 + local.tee $7 i32.store offset=136 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24868,12 +23592,12 @@ i32.const 3 i32.const 8528 call $~lib/rt/__newArray - local.tee $10 + local.tee $11 i32.store offset=140 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $3 + local.tee $2 i32.store offset=144 global.get $~lib/memory/__stack_pointer i32.const 128 @@ -24888,28 +23612,28 @@ global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $2 + local.tee $1 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $0 + local.tee $3 i32.store offset=160 - local.get $1 + local.get $0 call $std/array/assertSortedDefault - local.get $7 + local.get $6 call $std/array/assertSortedDefault i32.const 1 i32.const 2 i32.const 3 i32.const 8608 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24928,12 +23652,12 @@ i32.const 3 i32.const 8640 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 local.get $8 - local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24945,10 +23669,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $7 call $std/array/assertSortedDefault - local.get $6 - local.get $10 + local.get $7 + local.get $11 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24960,10 +23684,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 call $std/array/assertSortedDefault - local.get $3 - local.get $10 + local.get $2 + local.get $11 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -24978,7 +23702,7 @@ local.get $5 call $std/array/assertSortedDefault local.get $5 - local.get $10 + local.get $11 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -24993,7 +23717,7 @@ local.get $4 call $std/array/assertSortedDefault local.get $4 - local.get $10 + local.get $11 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -25005,10 +23729,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 call $std/array/assertSortedDefault - local.get $2 - local.get $10 + local.get $1 + local.get $11 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -25020,54 +23744,249 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 call $std/array/assertSortedDefault - call $std/array/assertStableSortedForComplexObjects + i32.const 0 + local.set $7 + 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 15340 + i32.lt_s + br_if $folding-inner3 + 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 + i64.const 0 + i64.store offset=16 + local.get $2 + global.get $std/array/inputStabArr + local.tee $5 + i32.store offset=8 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + i32.const 0 + local.get $5 + i32.load offset=12 + local.tee $1 + local.get $1 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $3 + local.get $1 + local.get $0 + i32.sub + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + local.tee $3 + i32.const 2 + i32.const 19 + i32.const 0 + call $~lib/rt/__newArray + local.tee $8 + i32.store + local.get $8 + i32.load offset=4 + local.set $4 + local.get $5 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.set $1 + i32.const 0 + local.set $5 + local.get $3 + i32.const 2 + i32.shl + local.set $0 + loop $while-continue|011 + local.get $0 + local.get $5 + i32.gt_u + if + local.get $4 + local.get $5 + i32.add + local.get $1 + local.get $5 + i32.add + i32.load + local.tee $3 + i32.store + local.get $8 + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $5 + i32.const 4 + i32.add + local.set $5 + br $while-continue|011 + 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 $3 + local.get $8 + i32.store + local.get $3 + i32.const 8672 + i32.store offset=4 + local.get $8 + i32.load offset=4 + local.get $8 + i32.load offset=12 + i32.const 8672 + call $~lib/util/sort/SORT + local.get $2 + local.get $8 + i32.store offset=12 + i32.const 1 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $std/array/inputStabArr + local.tee $3 + i32.store + local.get $3 + i32.load offset=12 + local.set $1 + loop $for-loop|012 + local.get $1 + local.get $7 + i32.gt_s + if + block $for-break0 + global.get $~lib/memory/__stack_pointer + local.get $8 + local.get $7 + call $~lib/array/Array#__get + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/outputStabArr + local.tee $3 + i32.store + local.get $0 + local.get $3 + local.get $7 + call $~lib/array/Array#__get + local.tee $3 + i32.store offset=20 + local.get $4 + i32.load + local.get $3 + i32.load + i32.ne + if (result i32) + i32.const 1 + else + local.get $4 + i32.load offset=4 + local.get $3 + i32.load offset=4 + i32.ne + end + if + i32.const 0 + local.set $5 + br $for-break0 + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|012 + end + end + end + local.get $5 + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1012 + 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 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createRandomOrderedArray - local.tee $1 + local.tee $0 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 257 call $std/array/createRandomOrderedArray - local.tee $0 + local.tee $3 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 8704 i32.store offset=8 - local.get $1 + local.get $0 i32.const 8704 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 8736 i32.store offset=8 - local.get $1 + local.get $0 i32.const 8736 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 8768 i32.store offset=8 - local.get $0 + local.get $3 i32.const 8768 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 8800 i32.store offset=8 - local.get $0 + local.get $3 i32.const 8800 call $std/array/assertSorted i32.const 0 local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer local.tee $4 i64.const 0 @@ -25079,12 +23998,12 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i64.const 0 i64.store - local.get $0 + local.get $3 i32.const 16 i32.const 25 call $~lib/rt/itcms/__new @@ -25110,21 +24029,21 @@ i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $3 i32.store offset=4 - local.get $0 + local.get $3 i32.const 0 i32.const 32 call $~lib/memory/memory.fill local.get $5 - local.get $0 + local.get $3 i32.store local.get $5 - local.get $0 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link local.get $5 - local.get $0 + local.get $3 i32.store offset=4 local.get $5 i32.const 32 @@ -25139,7 +24058,7 @@ local.get $4 local.get $5 i32.store - loop $for-loop|0105 + loop $for-loop|0134 local.get $1 i32.const 2 i32.lt_s @@ -25147,9 +24066,9 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/array/Array#constructor - local.tee $0 + local.tee $3 i32.store offset=4 - local.get $0 + local.get $3 i32.const 0 i32.const 1 local.get $1 @@ -25157,20 +24076,20 @@ call $~lib/array/Array#__set local.get $5 local.get $1 - local.get $0 + local.get $3 call $~lib/array/Array<~lib/array/Array>#__set local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0105 + br $for-loop|0134 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 local.get $5 i32.store offset=156 global.get $~lib/memory/__stack_pointer @@ -25182,50 +24101,50 @@ i32.const 0 local.set $5 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i64.const 0 i64.store - local.get $0 + local.get $3 i32.const 16 i32.const 28 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i32.store - local.get $0 + local.get $3 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link - local.get $0 + local.get $3 i32.const 0 i32.store offset=4 - local.get $0 + local.get $3 i32.const 0 i32.store offset=8 - local.get $0 + local.get $3 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -25238,30 +24157,30 @@ i32.const 0 i32.const 2048 call $~lib/memory/memory.fill - local.get $0 + local.get $3 local.get $4 i32.store - local.get $0 + local.get $3 local.get $4 i32.const 0 call $~lib/rt/itcms/__link - local.get $0 + local.get $3 local.get $4 i32.store offset=4 - local.get $0 + local.get $3 i32.const 2048 i32.store offset=8 - local.get $0 + local.get $3 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 $0 + local.get $3 i32.store - loop $for-loop|047 + loop $for-loop|014 local.get $5 i32.const 512 i32.lt_s @@ -25273,18 +24192,18 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 4 i32.const 27 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 511 local.get $5 i32.sub @@ -25294,30 +24213,30 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + local.get $3 local.get $5 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#__set local.get $5 i32.const 1 i32.add local.set $5 - br $for-loop|047 + br $for-loop|014 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 8864 i32.store offset=8 - local.get $0 + local.get $3 i32.const 8864 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -25326,7 +24245,7 @@ i32.const 30 i32.const 9056 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 7 @@ -25334,12 +24253,14 @@ i32.const 30 i32.const 9104 call $~lib/rt/__newArray - local.tee $3 + local.tee $7 i32.store offset=152 i32.const 1 global.set $~argumentsLength + local.get $1 + local.set $3 i32.const 0 - local.set $5 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25347,22 +24268,22 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of149 - block $0of150 - block $outOfRange51 + block $1of116 + block $0of117 + block $outOfRange18 global.get $~argumentsLength i32.const 1 i32.sub - br_table $0of150 $1of149 $outOfRange51 + br_table $0of117 $1of116 $outOfRange18 end unreachable end i32.const 9152 - local.set $5 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 9152 i32.store @@ -25374,63 +24295,63 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 + local.get $3 i32.load offset=4 - local.get $0 + local.get $3 i32.load offset=12 - local.get $5 + local.get $2 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.tee $0 + local.get $3 i32.store block $__inlined_func$std/array/isSorted<~lib/string/String|null> (result i32) - local.get $1 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store i32.const 1 - local.set $6 - local.get $0 + local.set $8 + local.get $3 i32.load offset=12 - local.set $1 - loop $for-loop|052 - local.get $1 - local.get $6 + local.set $0 + loop $for-loop|019 + local.get $0 + local.get $8 i32.gt_s if - local.get $0 - local.get $6 + local.get $3 + local.get $8 i32.const 1 i32.sub 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 - local.get $0 - local.get $6 + local.get $3 + local.get $8 call $~lib/array/Array#__get - local.set $2 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 i32.const 2 global.set $~argumentsLength + local.get $5 local.get $4 local.get $2 - local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 @@ -25443,11 +24364,11 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String|null> end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 - br $for-loop|052 + local.set $8 + br $for-loop|019 end end global.get $~lib/memory/__stack_pointer @@ -25475,7 +24396,7 @@ global.set $~lib/memory/__stack_pointer block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> (result i32) i32.const 0 - local.set $7 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -25483,74 +24404,68 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - i32.load offset=12 - local.tee $2 - local.set $1 - block $folding-inner053 - local.get $2 - local.get $3 - i32.load offset=12 - i32.ne - br_if $folding-inner053 - local.get $0 - local.get $3 - 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|04754 + block $folding-inner1 + block $folding-inner020 local.get $1 + i32.load offset=12 + local.tee $3 local.get $7 - i32.gt_s - if + i32.load offset=12 + i32.ne + br_if $folding-inner020 + local.get $1 + local.get $7 + i32.eq + br_if $folding-inner1 + loop $for-loop|037 local.get $0 - local.get $7 - call $~lib/array/Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store local.get $3 - local.get $7 - call $~lib/array/Array#__get - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $4 - local.get $2 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner053 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|04754 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/array/Array#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $5 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner020 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|037 + end end + br $folding-inner1 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1 + i32.const 0 br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 + i32.const 1 end i32.eqz if @@ -25564,25 +24479,25 @@ i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 0 i32.const 400 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $2 + local.tee $1 i32.store - loop $for-loop|0106121 + loop $for-loop|0135 local.get $0 i32.const 400 i32.lt_s @@ -25591,9 +24506,9 @@ f64.const 32 f64.mul i32.trunc_f64_s - local.set $3 + local.set $2 i32.const 0 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -25601,7 +24516,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer local.tee $4 i64.const 0 @@ -25610,13 +24525,13 @@ i32.const 0 i32.store offset=8 i32.const 9024 - local.set $1 + local.set $3 local.get $4 i32.const 9024 i32.store - loop $for-loop|056 - local.get $3 - local.get $7 + loop $for-loop|022 + local.get $2 + local.get $6 i32.gt_s if global.get $~lib/memory/__stack_pointer @@ -25644,7 +24559,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -25687,16 +24602,16 @@ local.get $4 i32.store offset=4 local.get $5 - local.get $1 + local.get $3 local.get $4 call $~lib/string/String.__concat - local.tee $1 + local.tee $3 i32.store - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 - br $for-loop|056 + local.set $6 + br $for-loop|022 end end global.get $~lib/memory/__stack_pointer @@ -25704,26 +24619,26 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $2 - local.get $0 local.get $1 + local.get $0 + local.get $3 call $~lib/array/Array<~lib/array/Array>#__set local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0106121 + br $for-loop|0135 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $2 - local.tee $0 + local.get $7 + local.get $1 + local.tee $3 i32.store offset=156 i32.const 1 global.set $~argumentsLength @@ -25736,17 +24651,17 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1107 - block $0of1108 - block $outOfRange109 + block $1of1136 + block $0of1137 + block $outOfRange138 global.get $~argumentsLength i32.const 1 i32.sub - br_table $0of1108 $1of1107 $outOfRange109 + br_table $0of1137 $1of1136 $outOfRange138 end unreachable end @@ -25756,7 +24671,7 @@ i32.const 9184 i32.store end - local.get $0 + local.get $3 local.get $1 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -25768,37 +24683,37 @@ i32.const 34 i32.const 9216 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 + local.tee $1 + local.get $3 i32.store offset=164 - local.get $2 + local.get $1 i32.const 9312 i32.store offset=168 - i32.const 0 - local.set $7 - local.get $0 + local.get $3 i32.load offset=4 - local.set $6 - local.get $0 + local.set $7 + local.get $3 i32.load offset=12 + local.set $3 + i32.const 0 local.set $0 i32.const 0 - local.set $1 - local.get $2 + local.set $6 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinBooleanArray - local.get $0 + local.get $3 i32.const 1 i32.sub local.tee $8 @@ -25813,17 +24728,17 @@ local.set $1 br $__inlined_func$~lib/util/string/joinBooleanArray end - block $folding-inner057 + block $folding-inner0121 local.get $8 i32.eqz if i32.const 9248 i32.const 9280 - local.get $6 + local.get $7 i32.load8_u select local.set $1 - br $folding-inner057 + br $folding-inner0121 end global.get $~lib/memory/__stack_pointer local.get $8 @@ -25831,7 +24746,7 @@ i32.load i32.const 1 i32.shr_u - local.tee $3 + local.tee $2 i32.const 5 i32.add i32.mul @@ -25842,10 +24757,10 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|1 - local.get $7 + local.get $6 local.get $8 i32.lt_s if @@ -25853,93 +24768,91 @@ local.get $7 i32.add i32.load8_u - local.tee $2 + local.tee $3 i32.eqz i32.const 4 i32.add local.set $5 - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add i32.const 9248 i32.const 9280 - local.get $2 + local.get $3 select local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $5 i32.add - local.set $1 - local.get $3 + local.set $0 + local.get $2 if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add i32.const 9312 - local.get $3 + local.get $2 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.set $1 + local.set $0 end - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|1 end end - local.get $6 + local.get $7 local.get $8 i32.add i32.load8_u - local.tee $2 + local.tee $3 i32.eqz i32.const 4 i32.add local.set $5 - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add i32.const 9248 i32.const 9280 - local.get $2 + local.get $3 select local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $4 - local.get $1 + local.get $0 local.get $5 i32.add - local.tee $1 + local.tee $3 i32.gt_s if - local.get $0 local.get $1 + local.get $3 call $~lib/string/String#substring local.set $1 - br $folding-inner057 + br $folding-inner0121 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.set $1 br $__inlined_func$~lib/util/string/joinBooleanArray end global.get $~lib/memory/__stack_pointer @@ -25948,10 +24861,10 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 local.get $1 i32.store - local.get $0 + local.get $3 i32.const 9344 i32.store offset=8 local.get $1 @@ -25971,26 +24884,26 @@ i32.const 3 i32.const 9392 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $3 local.get $0 + i32.store offset=164 + local.get $3 i32.const 9024 i32.store offset=168 - local.get $1 + local.get $0 i32.const 9024 call $~lib/array/Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $3 local.get $0 + i32.store + local.get $3 i32.const 11200 i32.store offset=8 - local.get $1 + local.get $0 i32.const 11200 call $~lib/string/String.__eq i32.eqz @@ -26007,26 +24920,26 @@ i32.const 7 i32.const 11232 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $3 local.get $0 + i32.store offset=164 + local.get $3 i32.const 11264 i32.store offset=168 - local.get $1 + local.get $0 i32.const 11264 call $~lib/array/Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $3 local.get $0 + i32.store + local.get $3 i32.const 11200 i32.store offset=8 - local.get $1 + local.get $0 i32.const 11200 call $~lib/string/String.__eq i32.eqz @@ -26043,26 +24956,26 @@ i32.const 3 i32.const 11296 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $3 local.get $0 + i32.store offset=164 + local.get $3 i32.const 11328 i32.store offset=168 - local.get $1 + local.get $0 i32.const 11328 call $~lib/array/Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $3 local.get $0 + i32.store + local.get $3 i32.const 11360 i32.store offset=8 - local.get $1 + local.get $0 i32.const 11360 call $~lib/string/String.__eq i32.eqz @@ -26079,25 +24992,28 @@ i32.const 10 i32.const 11440 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $3 local.get $0 + i32.store offset=164 + local.get $3 i32.const 11520 i32.store offset=168 - local.get $1 - call $~lib/array/Array#join - local.set $1 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + call $~lib/util/string/joinFloatArray + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $3 local.get $0 + i32.store + local.get $3 i32.const 12688 i32.store offset=8 - local.get $1 + local.get $0 i32.const 12688 call $~lib/string/String.__eq i32.eqz @@ -26114,26 +25030,26 @@ i32.const 30 i32.const 12832 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $3 local.get $0 + i32.store offset=164 + local.get $3 i32.const 9024 i32.store offset=168 - local.get $1 + local.get $0 i32.const 9024 call $~lib/array/Array<~lib/string/String|null>#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $3 local.get $0 + i32.store + local.get $3 i32.const 12800 i32.store offset=8 - local.get $1 + local.get $0 i32.const 12800 call $~lib/string/String.__eq i32.eqz @@ -26146,49 +25062,49 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 3 i32.const 2 i32.const 11 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=152 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 1 i32.const 0 call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 2 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset + local.get $3 local.get $0 - local.get $1 i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 9312 i32.store offset=168 - local.get $1 + local.get $0 call $~lib/array/Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $3 local.get $0 + i32.store + local.get $3 i32.const 12928 i32.store offset=8 - local.get $1 + local.get $0 i32.const 12928 call $~lib/string/String.__eq i32.eqz @@ -26201,45 +25117,45 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 2 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=160 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset + local.get $3 local.get $0 - local.get $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 9312 i32.store offset=168 - local.get $1 + local.get $0 call $~lib/array/Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $3 local.get $0 + i32.store + local.get $3 i32.const 13024 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13024 call $~lib/string/String.__eq i32.eqz @@ -26257,7 +25173,7 @@ i32.const 3 i32.const 13120 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -26273,7 +25189,7 @@ i32.const 3 i32.const 13184 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=148 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26281,16 +25197,16 @@ i32.const 3 i32.const 13216 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=144 - local.get $0 + local.get $3 call $~lib/array/Array#toString local.set $5 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 local.get $5 i32.store - local.get $0 + local.get $3 i32.const 9024 i32.store offset=8 local.get $5 @@ -26309,10 +25225,10 @@ call $~lib/array/Array#toString local.set $4 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 local.get $4 i32.store - local.get $0 + local.get $3 i32.const 12800 i32.store offset=8 local.get $4 @@ -26327,17 +25243,17 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 call $~lib/array/Array#toString - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.tee $3 + local.get $1 i32.store - local.get $0 + local.get $3 i32.const 13264 i32.store offset=8 - local.get $2 + local.get $1 i32.const 13264 call $~lib/string/String.__eq i32.eqz @@ -26349,17 +25265,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 call $~lib/array/Array#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $3 local.get $0 + i32.store + local.get $3 i32.const 13296 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13296 call $~lib/string/String.__eq i32.eqz @@ -26376,52 +25292,52 @@ i32.const 35 i32.const 13344 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $3 local.get $0 + i32.store offset=164 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 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 9312 i32.store - local.get $1 + local.get $0 i32.load offset=4 local.set $5 - local.get $1 + local.get $0 i32.load offset=12 - local.set $1 + local.set $3 i32.const 0 local.set $0 i32.const 0 local.set $6 - local.get $2 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + local.get $3 i32.const 1 i32.sub - local.tee $3 + local.tee $2 i32.const 0 i32.lt_s if @@ -26433,18 +25349,18 @@ local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner00 - local.get $3 + block $folding-inner0123 + local.get $2 i32.eqz if local.get $5 i32.load8_s call $~lib/util/number/itoa32 local.set $1 - br $folding-inner00 + br $folding-inner0123 end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 9308 i32.load i32.const 1 @@ -26455,15 +25371,15 @@ i32.mul i32.const 11 i32.add - local.tee $2 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|01 - local.get $3 + loop $for-loop|0124 + local.get $2 local.get $6 i32.gt_s if @@ -26501,30 +25417,30 @@ i32.const 1 i32.add local.set $6 - br $for-loop|01 + br $for-loop|0124 end end - local.get $2 + local.get $3 local.get $1 local.get $0 i32.const 1 i32.shl i32.add - local.get $3 + local.get $2 local.get $5 i32.add i32.load8_s call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.tee $0 + local.tee $3 i32.gt_s if local.get $1 - local.get $0 + local.get $3 call $~lib/string/String#substring local.set $1 - br $folding-inner00 + br $folding-inner0123 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26542,10 +25458,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 local.get $1 i32.store - local.get $0 + local.get $3 i32.const 13376 i32.store offset=8 local.get $1 @@ -26565,52 +25481,52 @@ i32.const 36 i32.const 13408 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $3 local.get $0 + i32.store offset=164 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 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 9312 i32.store - local.get $1 + local.get $0 i32.load offset=4 local.set $5 - local.get $1 + local.get $0 i32.load offset=12 - local.set $1 + local.set $3 i32.const 0 local.set $0 i32.const 0 local.set $6 - local.get $2 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + local.get $3 i32.const 1 i32.sub - local.tee $3 + local.tee $2 i32.const 0 i32.lt_s if @@ -26622,18 +25538,18 @@ local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner02 - local.get $3 + block $folding-inner0126 + local.get $2 i32.eqz if local.get $5 i32.load16_u call $~lib/util/number/utoa32 local.set $1 - br $folding-inner02 + br $folding-inner0126 end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 9308 i32.load i32.const 1 @@ -26644,15 +25560,15 @@ i32.mul i32.const 10 i32.add - local.tee $2 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|04127 - local.get $3 + loop $for-loop|0127 + local.get $2 local.get $6 i32.gt_s if @@ -26692,17 +25608,17 @@ i32.const 1 i32.add local.set $6 - br $for-loop|04127 + br $for-loop|0127 end end - local.get $2 + local.get $3 local.get $1 local.get $0 i32.const 1 i32.shl i32.add local.get $5 - local.get $3 + local.get $2 i32.const 1 i32.shl i32.add @@ -26710,14 +25626,14 @@ call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.tee $0 + local.tee $3 i32.gt_s if local.get $1 - local.get $0 + local.get $3 call $~lib/string/String#substring local.set $1 - br $folding-inner02 + br $folding-inner0126 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26735,10 +25651,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 local.get $1 i32.store - local.get $0 + local.get $3 i32.const 13440 i32.store offset=8 local.get $1 @@ -26758,38 +25674,337 @@ i32.const 37 i32.const 13488 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $3 local.get $0 + i32.store offset=164 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 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 9312 i32.store + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + local.set $0 + i32.const 0 + local.set $6 local.get $1 - call $~lib/array/Array#join - local.set $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15340 + 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 $3 + i32.const 1 + i32.sub + local.tee $2 + 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 9024 + local.set $1 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $2 + i32.eqz + if + local.get $5 + i64.load + local.set $9 + 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 15340 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64 + local.get $9 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9616 + local.set $1 + br $__inlined_func$~lib/util/number/utoa64 + end + local.get $9 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.wrap_i64 + local.tee $0 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + 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 $0 + local.get $3 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $9 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $9 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $9 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $9 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $9 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $9 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $9 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $9 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $9 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $9 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + 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 $9 + local.get $3 + 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 + 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 + local.get $2 + i32.const 9308 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 20 + i32.add + i32.mul + i32.const 20 + i32.add + local.tee $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0129 + local.get $2 + local.get $6 + i32.gt_s + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $4 + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.const 9312 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $4 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0129 + end + end + local.get $3 + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $3 + i32.gt_s + if + local.get $1 + local.get $3 + call $~lib/string/String#substring + local.set $1 + 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.tee $3 local.get $1 i32.store - local.get $0 + local.get $3 i32.const 13536 i32.store offset=8 local.get $1 @@ -26809,41 +26024,44 @@ i32.const 38 i32.const 13616 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $3 local.get $0 + i32.store offset=164 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 0 i32.store - local.get $0 + local.get $3 i32.const 9312 i32.store - local.get $1 - call $~lib/array/Array#join - local.set $1 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + call $~lib/util/string/joinIntegerArray + 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 + local.tee $3 local.get $0 + i32.store + local.get $3 i32.const 13680 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13680 call $~lib/string/String.__eq i32.eqz @@ -26861,19 +26079,19 @@ i32.const 30 i32.const 13792 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=140 - local.get $0 + local.get $3 call $~lib/array/Array<~lib/string/String|null>#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $3 local.get $0 + i32.store + local.get $3 i32.const 13840 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13840 call $~lib/string/String.__eq i32.eqz @@ -26890,21 +26108,21 @@ i32.const 30 i32.const 13952 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=164 - local.get $0 + local.get $3 call $~lib/array/Array<~lib/string/String|null>#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $3 local.get $0 + i32.store + local.get $3 i32.const 14000 i32.store offset=8 - local.get $1 + local.get $0 i32.const 14000 call $~lib/string/String.__eq i32.eqz @@ -26917,19 +26135,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 2 i32.const 2 i32.const 25 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=136 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=160 - local.get $1 + local.get $0 i32.const 0 i32.const 2 i32.const 2 @@ -26937,7 +26155,7 @@ i32.const 14032 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 1 i32.const 2 i32.const 2 @@ -26945,8 +26163,8 @@ i32.const 14064 call $~lib/rt/__newArray call $~lib/array/Array#__uset + local.get $3 local.get $0 - local.get $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26955,39 +26173,39 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 0 i32.store - local.get $0 + local.get $3 i32.const 9312 i32.store - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 - local.get $1 + local.set $2 + local.get $0 i32.load offset=12 - local.set $1 + local.set $0 i32.const 0 - local.set $6 - local.get $0 + local.set $7 + local.get $3 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i64.const 0 i64.store - local.get $0 + local.get $3 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> - local.get $1 + local.get $0 i32.const 1 i32.sub local.tee $5 @@ -26999,25 +26217,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9024 - local.set $0 + local.set $3 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end local.get $5 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.load - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 if (result i32) - local.get $0 + local.get $3 call $~lib/array/Array#toString else i32.const 9024 end - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -27025,7 +26243,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end i32.const 9024 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 9024 i32.store offset=4 @@ -27033,15 +26251,15 @@ i32.load i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|06132 + local.set $1 + loop $for-loop|027 local.get $5 - local.get $6 + local.get $7 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $6 + local.get $2 + local.get $7 i32.const 2 i32.shl i32.add @@ -27057,50 +26275,50 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $0 + local.get $3 local.get $4 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=4 end - local.get $2 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 9312 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=4 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 - br $for-loop|06132 + local.set $7 + br $for-loop|027 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $5 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 call $~lib/array/Array#toString - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $0 - local.get $2 + local.get $3 + local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -27113,13 +26331,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.tee $0 + local.get $3 i32.store - local.get $1 + local.get $0 i32.const 14096 i32.store offset=8 - local.get $0 + local.get $3 i32.const 14096 call $~lib/string/String.__eq i32.eqz @@ -27132,19 +26350,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 2 i32.const 2 i32.const 39 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=136 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=132 - local.get $1 + local.get $0 i32.const 0 i32.const 2 i32.const 0 @@ -27152,7 +26370,7 @@ i32.const 14144 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 1 i32.const 2 i32.const 0 @@ -27160,8 +26378,8 @@ i32.const 14176 call $~lib/rt/__newArray call $~lib/array/Array#__uset + local.get $3 local.get $0 - local.get $1 i32.store offset=132 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27170,39 +26388,39 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 0 i32.store - local.get $0 + local.get $3 i32.const 9312 i32.store - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 - local.get $1 + local.set $2 + local.get $0 i32.load offset=12 - local.set $1 + local.set $0 i32.const 0 - local.set $6 - local.get $0 + local.set $7 + local.get $3 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i64.const 0 i64.store - local.get $0 + local.get $3 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> - local.get $1 + local.get $0 i32.const 1 i32.sub local.tee $5 @@ -27214,25 +26432,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9024 - local.set $0 + local.set $3 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end local.get $5 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.load - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 if (result i32) - local.get $0 + local.get $3 call $~lib/array/Array#toString else i32.const 9024 end - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -27240,7 +26458,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end i32.const 9024 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 9024 i32.store offset=4 @@ -27248,15 +26466,15 @@ i32.load i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|08135 + local.set $1 + loop $for-loop|028 local.get $5 - local.get $6 + local.get $7 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $6 + local.get $2 + local.get $7 i32.const 2 i32.shl i32.add @@ -27272,50 +26490,50 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $0 + local.get $3 local.get $4 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=4 end - local.get $2 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 9312 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=4 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 - br $for-loop|08135 + local.set $7 + br $for-loop|028 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $5 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 call $~lib/array/Array#toString - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $0 - local.get $2 + local.get $3 + local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -27328,13 +26546,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.tee $0 + local.get $3 i32.store - local.get $1 + local.get $0 i32.const 14096 i32.store offset=8 - local.get $0 + local.get $3 i32.const 14096 call $~lib/string/String.__eq i32.eqz @@ -27347,32 +26565,32 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 1 i32.const 2 i32.const 41 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=136 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.tee $3 + local.get $1 i32.load offset=4 i32.store offset=128 - local.get $0 + local.get $3 i32.const 1 i32.const 2 i32.const 40 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store offset=124 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.load offset=4 i32.store offset=120 - local.get $0 + local.get $3 i32.const 0 i32.const 1 i32.const 2 @@ -27380,12 +26598,12 @@ i32.const 14208 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $2 + local.get $1 i32.const 0 - local.get $0 + local.get $3 call $~lib/array/Array#__uset + local.get $0 local.get $1 - local.get $2 i32.store offset=128 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27394,39 +26612,39 @@ global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 0 i32.store - local.get $0 + local.get $3 i32.const 9312 i32.store - local.get $2 + local.get $1 i32.load offset=4 - local.set $3 - local.get $2 + local.set $2 + local.get $1 i32.load offset=12 - local.set $1 + local.set $0 i32.const 0 - local.set $6 - local.get $0 + local.set $7 + local.get $3 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i64.const 0 i64.store - local.get $0 + local.get $3 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> - local.get $1 + local.get $0 i32.const 1 i32.sub local.tee $5 @@ -27438,25 +26656,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9024 - local.set $0 + local.set $3 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end local.get $5 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.load - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 if (result i32) - local.get $0 + local.get $3 call $~lib/array/Array<~lib/array/Array>#toString else i32.const 9024 end - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -27464,7 +26682,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end i32.const 9024 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 9024 i32.store offset=4 @@ -27472,15 +26690,15 @@ i32.load i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|010138 + local.set $1 + loop $for-loop|029 local.get $5 - local.get $6 + local.get $7 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $6 + local.get $2 + local.get $7 i32.const 2 i32.shl i32.add @@ -27496,50 +26714,50 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $0 + local.get $3 local.get $4 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=4 end - local.get $2 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 9312 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=4 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 - br $for-loop|010138 + local.set $7 + br $for-loop|029 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $5 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 call $~lib/array/Array<~lib/array/Array>#toString - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $0 - local.get $2 + local.get $3 + local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -27552,13 +26770,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.tee $0 + local.get $3 i32.store - local.get $1 + local.get $0 i32.const 12800 i32.store offset=8 - local.get $0 + local.get $3 i32.const 12800 call $~lib/string/String.__eq i32.eqz @@ -27571,19 +26789,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 4 i32.const 2 i32.const 25 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=128 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=132 - local.get $1 + local.get $0 i32.const 0 i32.const 1 i32.const 2 @@ -27591,7 +26809,7 @@ i32.const 14240 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 1 i32.const 3 i32.const 2 @@ -27599,7 +26817,7 @@ i32.const 14272 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 2 i32.const 3 i32.const 2 @@ -27607,7 +26825,7 @@ i32.const 14304 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 3 i32.const 3 i32.const 2 @@ -27615,15 +26833,15 @@ i32.const 14336 call $~lib/rt/__newArray call $~lib/array/Array#__uset + local.get $3 local.get $0 - local.get $1 i32.store offset=132 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $1 + local.tee $3 i32.store offset=128 - local.get $1 + local.get $3 i32.load offset=12 i32.const 10 i32.ne @@ -27637,12 +26855,12 @@ end i32.const 0 local.set $0 - loop $for-loop|158 + loop $for-loop|1134 local.get $0 i32.const 10 i32.lt_s if - local.get $1 + local.get $3 local.get $0 call $~lib/array/Array#__get local.get $0 @@ -27659,23 +26877,23 @@ i32.const 1 i32.add local.set $0 - br $for-loop|158 + br $for-loop|1134 end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 4 i32.const 2 i32.const 42 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $4 i32.store offset=160 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.load offset=4 i32.store offset=140 - local.get $1 + local.get $4 i32.const 0 i32.const 1 i32.const 2 @@ -27683,7 +26901,7 @@ i32.const 14400 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $4 i32.const 1 i32.const 3 i32.const 2 @@ -27691,7 +26909,7 @@ i32.const 14496 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $4 i32.const 2 i32.const 3 i32.const 2 @@ -27699,7 +26917,7 @@ i32.const 14624 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $4 i32.const 3 i32.const 1 i32.const 2 @@ -27707,34 +26925,34 @@ i32.const 14688 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 - local.get $1 + local.get $3 + local.get $4 i32.store offset=140 i32.const 0 local.set $0 i32.const 0 local.set $7 i32.const 0 - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15340 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 + local.get $4 i32.load offset=4 local.set $5 - local.get $1 + local.get $4 i32.load offset=12 local.set $4 - loop $for-loop|0139 + loop $for-loop|0136 local.get $0 local.get $4 i32.lt_s @@ -27745,9 +26963,9 @@ i32.shl i32.add i32.load - local.tee $1 + local.tee $3 if (result i32) - local.get $1 + local.get $3 i32.load offset=12 else i32.const 0 @@ -27759,43 +26977,43 @@ i32.const 1 i32.add local.set $0 - br $for-loop|0139 + br $for-loop|0136 end end global.get $~lib/memory/__stack_pointer local.get $7 i32.const 2 i32.shl - local.tee $0 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 30 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $6 i32.store offset=4 - local.get $8 + local.get $6 local.get $7 i32.store offset=12 - local.get $8 - local.get $0 + local.get $6 + local.get $3 i32.store offset=8 - local.get $8 local.get $6 - i32.store offset=4 local.get $8 + i32.store offset=4 local.get $6 - i32.store local.get $8 + i32.store local.get $6 + local.get $8 i32.const 0 call $~lib/rt/itcms/__link i32.const 0 local.set $0 - loop $for-loop|1140 + loop $for-loop|1137 local.get $0 local.get $4 i32.lt_s @@ -27806,27 +27024,27 @@ i32.shl i32.add i32.load - local.tee $1 + local.tee $3 if - local.get $3 - local.get $6 + local.get $2 + local.get $8 i32.add - local.get $1 + local.get $3 i32.load offset=4 - local.get $1 + local.get $3 i32.load offset=8 - local.tee $1 + local.tee $3 call $~lib/memory/memory.copy - local.get $1 + local.get $2 local.get $3 i32.add - local.set $3 + local.set $2 end local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|1140 + br $for-loop|1137 end end i32.const 0 @@ -27836,8 +27054,8 @@ local.get $7 i32.lt_s if - local.get $6 - local.get $6 + local.get $8 + local.get $8 local.get $0 i32.const 2 i32.shl @@ -27856,8 +27074,8 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $8 + local.get $1 + local.get $6 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -27867,7 +27085,7 @@ call $~lib/rt/__newArray local.tee $4 i32.store offset=148 - local.get $8 + local.get $6 i32.load offset=12 i32.const 8 i32.ne @@ -27881,28 +27099,28 @@ end i32.const 0 local.set $0 - loop $for-loop|2141 + loop $for-loop|2138 local.get $0 local.get $4 i32.load offset=12 i32.lt_s if - local.get $8 + local.get $6 local.get $0 call $~lib/array/Array#__get - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $4 local.get $0 call $~lib/array/Array#__get - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=8 - local.get $2 local.get $1 + local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -27917,23 +27135,23 @@ i32.const 1 i32.add local.set $0 - br $for-loop|2141 + br $for-loop|2138 end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 2 i32.const 2 i32.const 25 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=144 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=156 - local.get $1 + local.get $0 i32.const 0 i32.const 0 i32.const 2 @@ -27941,7 +27159,7 @@ i32.const 14784 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 1 i32.const 0 i32.const 2 @@ -27949,16 +27167,16 @@ i32.const 14816 call $~lib/rt/__newArray call $~lib/array/Array#__uset + local.get $3 local.get $0 - local.get $1 i32.store offset=156 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#flat - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store - local.get $0 + local.get $3 i32.load offset=12 if i32.const 0 @@ -27980,12 +27198,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|0114 + loop $while-continue|0143 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0114 + br $while-continue|0143 end end end @@ -28665,61 +27883,56 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $2 i32.const 0 i32.store + local.get $2 + i32.const 2 local.get $0 i32.load offset=12 - local.tee $4 + local.tee $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 - i32.gt_s - local.set $2 local.get $1 i32.const 0 - local.get $2 + i32.gt_s select else local.get $1 - local.get $4 + local.get $3 local.get $1 - local.get $4 + local.get $3 i32.lt_s select end local.tee $1 i32.sub - local.tee $3 + local.tee $2 + local.get $2 i32.const 2 i32.gt_s - local.set $2 - i32.const 2 - local.get $3 - local.get $2 select - local.tee $3 - i32.const 0 - i32.gt_s - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $3 + local.tee $2 i32.const 0 local.get $2 + i32.const 0 + i32.gt_s select - local.tee $3 + local.tee $2 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 i32.load offset=4 local.get $0 i32.load offset=4 @@ -28729,13 +27942,13 @@ i32.shl i32.add local.tee $6 - local.get $3 + local.get $2 i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $4 - local.get $1 local.get $3 + local.get $1 + local.get $2 i32.add local.tee $1 i32.ne @@ -28746,7 +27959,7 @@ i32.const 2 i32.shl i32.add - local.get $4 + local.get $3 local.get $1 i32.sub i32.const 2 @@ -28754,15 +27967,15 @@ call $~lib/memory/memory.copy end local.get $0 - local.get $4 local.get $3 + local.get $2 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $4 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -29390,52 +28603,50 @@ global.get $~lib/memory/__stack_pointer 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 $3 - local.get $1 - i32.const 0 - local.get $1 + local.tee $2 + local.get $2 i32.const 0 i32.gt_s select - local.tee $2 - i32.gt_s - local.set $4 + local.tee $3 + local.get $1 i32.const 0 - local.get $3 - local.get $3 + local.get $1 i32.const 0 i32.gt_s select local.tee $1 local.get $2 - local.get $3 - local.get $4 - select - local.tee $2 local.get $1 local.get $2 - i32.gt_s + i32.lt_s + select + local.tee $1 + local.get $1 + local.get $3 + i32.lt_s select i32.const 1 i32.shl local.tee $4 + local.get $3 local.get $1 - local.get $2 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select i32.const 1 i32.shl local.tee $1 i32.sub - local.tee $2 + local.tee $3 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -29447,7 +28658,7 @@ end i32.const 0 local.get $4 - local.get $3 + local.get $2 i32.const 1 i32.shl i32.eq @@ -29462,22 +28673,22 @@ return end 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 + local.get $2 local.get $0 local.get $1 i32.add - 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 + local.get $2 ) (func $~lib/util/number/itoa32 (param $0 i32) (result i32) (local $1 i32) @@ -29535,159 +28746,713 @@ i32.ge_u i32.const 1 i32.add - else + 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 $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 + 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 + ) + (func $~lib/util/number/utoa32 (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + if + i32.const 31744 + i32.const 31792 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9616 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + 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.tee $0 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $1 + local.get $0 + 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 + ) + (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 f64) + (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 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.tee $4 + 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 9024 + return + end + block $folding-inner0 + local.get $4 + i32.eqz + if + local.get $0 + f64.load + local.set $3 + 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 15340 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/dtoa + local.get $3 + 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 11552 + local.set $0 + br $__inlined_func$~lib/util/number/dtoa + end + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.ne + if + local.get $3 + local.get $3 + f64.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11584 + local.set $0 + 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 11616 + i32.const 11664 + local.get $3 + f64.const 0 + f64.lt + select + local.set $0 + br $__inlined_func$~lib/util/number/dtoa + end + i32.const 11696 + local.get $3 + 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 11696 + 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 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 11516 + i32.load + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 28 + i32.add + i32.mul + i32.const 28 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $4 + local.get $6 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $5 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 11520 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $5 + i32.add + local.set $2 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add local.get $0 - i32.const 10000 - i32.ge_u + local.get $4 i32.const 3 + i32.shl 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 + f64.load + call $~lib/util/number/dtoa_buffered + local.get $2 i32.add - local.get $0 - i32.const 100000000 - i32.ge_u + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - local.get $1 - i32.add - local.tee $3 + i32.const 31744 + i32.const 31792 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 - 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 + call $~lib/builtins/abort + unreachable ) - (func $~lib/util/number/utoa32 (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + (local $3 i64) + (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 15340 - i32.lt_s - if - i32.const 31744 - i32.const 31792 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if + block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9616 - return - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) + i32.const 15340 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store 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.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 - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 + global.set $~lib/memory/__stack_pointer + i32.const 9024 + return + end + local.get $7 + i32.eqz + if + local.get $0 + i64.load + i64.extend32_s + local.set $3 + 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 15340 + 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 + local.get $3 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9616 + local.set $1 + br $__inlined_func$~lib/util/number/itoa64 + end + i64.const 0 + local.get $3 + i64.sub + local.get $3 + local.get $3 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.tee $4 + select + local.tee $3 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.wrap_i64 + local.tee $5 + 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 $4 + i32.add + 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 $5 + local.get $0 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $3 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $3 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $3 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $3 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $3 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $3 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $3 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.get $4 + i32.add + 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 $3 + local.get $0 + call $~lib/util/number/utoa64_dec_lut + end + local.get $4 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.const 1000 - i32.ge_u - i32.add + return + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 9308 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 21 + i32.add + i32.mul + i32.const 21 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + loop $for-loop|0 + local.get $5 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $4 + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9312 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end 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 + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $0 + i32.gt_s + if + local.get $6 + local.get $0 + call $~lib/string/String#substring + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer + return end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - local.tee $0 + i32.const 31744 + i32.const 31792 i32.const 1 - i32.shl i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $1 - local.get $0 - 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 + call $~lib/builtins/abort + unreachable ) (func $~lib/array/Array<~lib/array/Array>#flat (param $0 i32) (result i32) (local $1 i32) @@ -30668,8 +30433,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 - local.set $3 block $1of1 block $0of1 block $outOfRange @@ -30685,7 +30448,7 @@ local.set $2 end i32.const -1 - local.set $1 + local.set $3 block $__inlined_func$~lib/array/Array#lastIndexOf local.get $0 i32.load offset=12 @@ -30716,17 +30479,17 @@ i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $0 local.get $2 - local.tee $1 + local.tee $3 i32.const 2 i32.shl i32.add i32.load i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $1 + local.get $3 i32.const 1 i32.sub local.set $2 @@ -30734,13 +30497,13 @@ end end i32.const -1 - local.set $1 + local.set $3 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 ) (func $export:~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -32507,8 +32270,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 - local.set $3 block $1of1 block $0of1 block $outOfRange @@ -32524,7 +32285,7 @@ local.set $2 end i32.const -1 - local.set $1 + local.set $3 block $__inlined_func$~lib/array/Array#lastIndexOf local.get $0 i32.load offset=12 @@ -32556,16 +32317,16 @@ i32.ge_s if local.get $2 - local.tee $1 + local.tee $3 local.get $0 i32.add i32.load8_u - local.get $3 + local.get $1 i32.const 255 i32.and i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $1 + local.get $3 i32.const 1 i32.sub local.set $2 @@ -32573,13 +32334,13 @@ end end i32.const -1 - local.set $1 + local.set $3 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 ) (func $export:~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -34596,7 +34357,7 @@ local.tee $6 local.get $0 i32.load offset=12 - local.tee $4 + local.tee $3 i32.add local.tee $2 i32.const 268435455 @@ -34620,23 +34381,23 @@ local.get $2 i32.load offset=4 local.set $5 - local.get $4 + local.get $3 i32.const 2 i32.shl - local.set $4 + local.set $3 local.get $0 i32.load offset=4 local.set $0 loop $for-loop|0 local.get $3 local.get $4 - i32.lt_u + i32.gt_u if - local.get $3 + local.get $4 local.get $5 i32.add local.get $0 - local.get $3 + local.get $4 i32.add i32.load local.tee $7 @@ -34645,17 +34406,17 @@ local.get $7 i32.const 1 call $~lib/rt/itcms/__link - local.get $3 + local.get $4 i32.const 4 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end - local.get $4 + local.get $3 local.get $5 i32.add - local.set $3 + local.set $4 local.get $1 i32.load offset=4 local.set $1 @@ -34671,16 +34432,16 @@ i32.lt_u if local.get $0 - local.get $3 + local.get $4 i32.add local.get $0 local.get $1 i32.add i32.load - local.tee $4 + local.tee $3 i32.store local.get $2 - local.get $4 + local.get $3 i32.const 1 call $~lib/rt/itcms/__link local.get $0 diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index ec243f2c6e..787f4cfe44 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -165,16 +165,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1712 i32.load i32.gt_u @@ -186,7 +186,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1716 @@ -202,26 +202,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -349,8 +349,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -358,11 +356,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -370,25 +369,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -597,7 +597,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -605,6 +604,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -620,7 +620,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -628,6 +627,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -682,11 +682,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1504 @@ -710,11 +710,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1504 @@ -874,17 +874,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -944,15 +944,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1080,12 +1080,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1125,13 +1123,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1171,10 +1169,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1183,7 +1181,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1192,6 +1189,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1205,12 +1203,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1223,7 +1221,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1232,6 +1229,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1438,12 +1436,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1459,14 +1457,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1480,14 +1478,15 @@ local.get $0 i32.const 16 i32.add - local.set $6 + 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 $6 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1498,14 +1497,13 @@ call $~lib/builtins/abort unreachable end - local.tee $2 - local.get $6 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $6 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1513,19 +1511,21 @@ i32.const 4 i32.sub end - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if - local.get $3 + memory.size + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl @@ -1533,17 +1533,16 @@ i32.sub i32.add else - local.get $3 + local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1553,18 +1552,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1572,18 +1569,18 @@ unreachable end end - local.get $2 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if i32.const 0 @@ -1594,8 +1591,8 @@ unreachable end end + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1608,13 +1605,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $6 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $6 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1627,54 +1624,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $6 local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $2 local.get $3 - local.get $6 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $6 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $6 + local.get $3 i32.const 4 i32.add - local.tee $3 - local.get $6 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1684,37 +1681,37 @@ i32.and i32.store end - local.get $6 + local.get $3 local.get $1 i32.store offset=12 - local.get $6 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 local.set $1 - local.get $6 local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $6 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $6 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $6 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.load i32.const -4 i32.and @@ -1722,7 +1719,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -1893,29 +1890,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -1937,25 +1932,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2028,25 +2023,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2115,25 +2110,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2173,143 +2168,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2336,63 +2317,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2419,23 +2394,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2743,7 +2716,7 @@ 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 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner1 $~lib/array/Array $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 end return end diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index 96c129cb7c..28b1972d25 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -171,16 +171,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1744 i32.load i32.gt_u @@ -192,7 +192,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1748 @@ -208,26 +208,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -355,8 +355,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -364,11 +362,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -376,25 +375,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -603,7 +603,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -611,6 +610,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -626,7 +626,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -634,6 +633,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -688,11 +688,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1504 @@ -716,11 +716,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1504 @@ -880,17 +880,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -950,15 +950,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1086,12 +1086,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1131,13 +1129,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1177,10 +1175,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1189,7 +1187,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1198,6 +1195,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1211,12 +1209,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1229,7 +1227,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1238,6 +1235,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1444,12 +1442,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1465,14 +1463,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1486,14 +1484,15 @@ local.get $0 i32.const 16 i32.add - local.set $6 + 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 $6 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1504,14 +1503,13 @@ call $~lib/builtins/abort unreachable end - local.tee $2 - local.get $6 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $6 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1519,19 +1517,21 @@ i32.const 4 i32.sub end - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if - local.get $3 + memory.size + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl @@ -1539,17 +1539,16 @@ i32.sub i32.add else - local.get $3 + local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1559,18 +1558,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1578,18 +1575,18 @@ unreachable end end - local.get $2 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if i32.const 0 @@ -1600,8 +1597,8 @@ unreachable end end + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1614,13 +1611,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $6 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $6 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1633,54 +1630,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $6 local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $2 local.get $3 - local.get $6 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $6 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $6 + local.get $3 i32.const 4 i32.add - local.tee $3 - local.get $6 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1690,37 +1687,37 @@ i32.and i32.store end - local.get $6 + local.get $3 local.get $1 i32.store offset=12 - local.get $6 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 local.set $1 - local.get $6 local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $6 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $6 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $6 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.load i32.const -4 i32.and @@ -1728,7 +1725,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -1736,67 +1733,66 @@ call $~lib/memory/memory.fill local.get $1 ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) - local.get $0 + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 - i32.store + i32.eqz + if + return + end + 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.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 + 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 + i32.const 0 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 + select if local.get $1 call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - i32.const 0 - local.get $0 - i32.const 3 - i32.eq - select - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end end end end ) (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 local.get $0 i32.load offset=8 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1568 @@ -1909,10 +1905,10 @@ end ) (func $~lib/dataview/DataView#getInt8 (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=8 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -2058,10 +2054,10 @@ end ) (func $~lib/dataview/DataView#getUint8 (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=8 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -2519,26 +2515,16 @@ (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 block $invalid - block $~lib/typedarray/Uint8Array - 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/typedarray/Uint8Array $folding-inner0 $invalid - end - return + 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 $invalid end return end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end return end unreachable @@ -2626,7 +2612,7 @@ local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2649,7 +2635,10 @@ end local.get $1 i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer + i32.store + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link local.get $1 i32.const 0 i32.store offset=4 @@ -2660,16 +2649,19 @@ i32.const 8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 8 call $~lib/memory/memory.fill local.get $1 - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $2 + i32.store local.get $1 - local.get $3 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 i32.store offset=4 local.get $1 i32.const 8 @@ -2678,7 +2670,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 local.get $1 i32.store global.get $~lib/memory/__stack_pointer @@ -2721,12 +2713,12 @@ i32.const 95 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.load local.tee $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 local.get $1 i32.load offset=4 @@ -4356,7 +4348,10 @@ i32.store local.get $3 i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer + i32.store + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link local.get $3 i32.const 0 i32.store offset=4 @@ -4385,7 +4380,10 @@ end local.get $3 local.get $0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer + i32.store + local.get $3 + local.get $0 + call $~lib/rt/itcms/__link local.get $3 local.get $0 local.get $1 diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index 98752a8fab..8e5dbe93aa 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -233,20 +233,7 @@ (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~lib/date/epochMillis (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (result i64) - local.get $6 - i64.extend_i32_s - local.get $5 - i32.const 1000 - i32.mul - i64.extend_i32_s - local.get $4 - i32.const 60000 - i32.mul - i64.extend_i32_s - local.get $3 - i32.const 3600000 - i32.mul - i64.extend_i32_s + (local $7 i32) local.get $0 local.get $1 i32.const 2 @@ -262,9 +249,21 @@ select i32.const 400 i32.div_s - local.tee $3 - i32.const 146097 + local.set $7 + local.get $6 + i64.extend_i32_s + local.get $5 + i32.const 1000 + i32.mul + i64.extend_i32_s + local.get $4 + i32.const 60000 + i32.mul + i64.extend_i32_s + local.get $3 + i32.const 3600000 i32.mul + i64.extend_i32_s local.get $2 local.get $1 i32.const -3 @@ -282,7 +281,7 @@ i32.div_u i32.add local.get $0 - local.get $3 + local.get $7 i32.const 400 i32.mul i32.sub @@ -298,6 +297,9 @@ i32.div_u i32.sub i32.add + local.get $7 + i32.const 146097 + i32.mul i32.add i32.const 719469 i32.sub @@ -381,20 +383,20 @@ i32.const 1 i32.add global.set $~lib/date/_day - local.get $0 i32.const 3 i32.const -9 local.get $0 i32.const 10 i32.lt_s select + local.get $0 i32.add local.tee $0 global.set $~lib/date/_month - local.get $1 local.get $2 i32.const 400 i32.mul + local.get $1 i32.add local.get $0 i32.const 2 @@ -530,16 +532,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 7504 i32.load i32.gt_u @@ -551,7 +553,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 7508 @@ -567,26 +569,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -714,8 +716,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -723,11 +723,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -735,25 +736,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -962,7 +964,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -970,6 +971,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -985,7 +987,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -993,6 +994,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -1047,11 +1049,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1536 @@ -1075,11 +1077,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1536 @@ -1239,17 +1241,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1309,15 +1311,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1445,12 +1447,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1490,13 +1490,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1536,10 +1536,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1548,7 +1548,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1557,6 +1556,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1570,12 +1570,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1588,7 +1588,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1597,6 +1596,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1803,12 +1803,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1824,14 +1824,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1845,14 +1845,15 @@ local.get $0 i32.const 16 i32.add - local.set $6 + 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 $6 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1863,14 +1864,13 @@ call $~lib/builtins/abort unreachable end - local.tee $2 - local.get $6 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $6 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1878,19 +1878,21 @@ i32.const 4 i32.sub end - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if - local.get $3 + memory.size + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl @@ -1898,17 +1900,16 @@ i32.sub i32.add else - local.get $3 + local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1918,18 +1919,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1937,18 +1936,18 @@ unreachable end end - local.get $2 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if i32.const 0 @@ -1959,8 +1958,8 @@ unreachable end end + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1973,13 +1972,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $6 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $6 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1992,54 +1991,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $6 local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $2 local.get $3 - local.get $6 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $6 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $6 + local.get $3 i32.const 4 i32.add - local.tee $3 - local.get $6 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -2049,37 +2048,37 @@ i32.and i32.store end - local.get $6 + local.get $3 local.get $1 i32.store offset=12 - local.get $6 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 local.set $1 - local.get $6 local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $6 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $6 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $6 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.load i32.const -4 i32.and @@ -2087,7 +2086,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -2141,17 +2140,17 @@ local.get $0 i64.load offset=16 local.get $1 + i64.const 1000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s local.tee $2 - i64.const 1000 - i64.const 0 - local.get $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.sub @@ -2165,17 +2164,17 @@ local.get $0 i64.load offset=16 local.get $1 + 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 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -2193,17 +2192,17 @@ local.get $0 i64.load offset=16 local.get $1 + 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 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 60000 @@ -2221,17 +2220,17 @@ local.get $0 i64.load offset=16 local.get $1 + 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 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 3600000 @@ -2245,8 +2244,9 @@ ) (func $~lib/date/Date#setUTCDate (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) + (local $5 i64) local.get $1 local.get $0 i32.load offset=8 @@ -2255,44 +2255,42 @@ return end local.get $0 - local.get $0 - i64.load offset=16 - i64.const 86400000 - i64.rem_s - local.tee $3 - i64.const 86400000 - i64.const 0 - local.get $3 - i64.const 0 - i64.lt_s - select - i64.add - local.get $0 i32.load local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 2 i32.le_s i32.sub - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 399 i32.sub - local.get $0 + local.get $2 i32.const 0 i32.ge_s select i32.const 400 i32.div_s - local.tee $4 - i32.const 146097 - i32.mul + local.set $4 + local.get $0 + local.get $0 + i64.load offset=16 + i64.const 86400000 + i64.rem_s + local.tee $5 + i64.const 86400000 + i64.const 0 + local.get $5 + i64.const 0 + i64.lt_s + select + i64.add local.get $1 - local.get $2 + local.get $3 i32.const -3 i32.const 9 - local.get $2 + local.get $3 i32.const 2 i32.gt_s select @@ -2304,7 +2302,7 @@ i32.const 5 i32.div_u i32.add - local.get $0 + local.get $2 local.get $4 i32.const 400 i32.mul @@ -2321,6 +2319,9 @@ i32.div_u i32.sub i32.add + local.get $4 + i32.const 146097 + i32.mul i32.add i32.const 719469 i32.sub @@ -2332,8 +2333,8 @@ ) (func $~lib/date/Date#setUTCMonth (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i64) - (local $4 i32) + (local $3 i32) + (local $4 i64) local.get $1 local.get $0 i32.load offset=4 @@ -2342,19 +2343,6 @@ return end local.get $0 - local.get $0 - i64.load offset=16 - i64.const 86400000 - i64.rem_s - local.tee $3 - i64.const 86400000 - i64.const 0 - local.get $3 - i64.const 0 - i64.lt_s - select - i64.add - local.get $0 i32.load local.get $1 i32.const 1 @@ -2373,9 +2361,20 @@ select i32.const 400 i32.div_s + local.set $3 + local.get $0 + local.get $0 + i64.load offset=16 + i64.const 86400000 + i64.rem_s local.tee $4 - i32.const 146097 - i32.mul + i64.const 86400000 + i64.const 0 + local.get $4 + i64.const 0 + i64.lt_s + select + i64.add local.get $0 i32.load offset=8 local.get $2 @@ -2394,7 +2393,7 @@ i32.div_u i32.add local.get $1 - local.get $4 + local.get $3 i32.const 400 i32.mul i32.sub @@ -2410,6 +2409,9 @@ i32.div_u i32.sub i32.add + local.get $3 + i32.const 146097 + i32.mul i32.add i32.const 719469 i32.sub @@ -2421,8 +2423,8 @@ ) (func $~lib/date/Date#setUTCFullYear (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i64) - (local $4 i32) + (local $3 i32) + (local $4 i64) local.get $1 local.get $0 i32.load @@ -2430,19 +2432,6 @@ if return end - local.get $0 - local.get $0 - i64.load offset=16 - i64.const 86400000 - i64.rem_s - local.tee $3 - i64.const 86400000 - i64.const 0 - local.get $3 - i64.const 0 - i64.lt_s - select - i64.add local.get $1 local.get $0 i32.load offset=4 @@ -2460,9 +2449,20 @@ select i32.const 400 i32.div_s + local.set $3 + local.get $0 + local.get $0 + i64.load offset=16 + i64.const 86400000 + i64.rem_s local.tee $4 - i32.const 146097 - i32.mul + i64.const 86400000 + i64.const 0 + local.get $4 + i64.const 0 + i64.lt_s + select + i64.add local.get $0 i32.load offset=8 local.get $2 @@ -2481,7 +2481,7 @@ i32.div_u i32.add local.get $1 - local.get $4 + local.get $3 i32.const 400 i32.mul i32.sub @@ -2497,6 +2497,9 @@ i32.div_u i32.sub i32.add + local.get $3 + i32.const 146097 + i32.mul i32.add i32.const 719469 i32.sub @@ -2538,10 +2541,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1872 - local.set $0 + local.set $1 br $__inlined_func$~lib/util/number/itoa32 end - global.get $~lib/memory/__stack_pointer i32.const 0 local.get $0 i32.sub @@ -2551,48 +2553,50 @@ i32.shr_u local.tee $3 select - local.tee $1 local.tee $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add @@ -2605,22 +2609,22 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $while-continue|0 - local.get $1 + local.get $0 i32.const 10000 i32.ge_u if - local.get $1 + local.get $0 i32.const 10000 i32.rem_u local.set $4 - local.get $1 + local.get $0 i32.const 10000 i32.div_u - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 i32.const 4 i32.sub @@ -2651,11 +2655,11 @@ br $while-continue|0 end end - local.get $1 + local.get $0 i32.const 100 i32.ge_u if - local.get $0 + local.get $1 local.get $2 i32.const 2 i32.sub @@ -2663,7 +2667,7 @@ i32.const 1 i32.shl i32.add - local.get $1 + local.get $0 i32.const 100 i32.rem_u i32.const 2 @@ -2672,23 +2676,23 @@ i32.add i32.load i32.store - local.get $1 + local.get $0 i32.const 100 i32.div_u - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 10 i32.ge_u if - local.get $0 + local.get $1 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 1884 @@ -2696,21 +2700,21 @@ i32.load i32.store else - local.get $0 + local.get $1 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.get $1 + local.get $0 i32.const 48 i32.add i32.store16 end local.get $3 if - local.get $0 + local.get $1 i32.const 45 i32.store16 end @@ -2719,7 +2723,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $0 + local.get $1 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2884,29 +2888,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2928,25 +2930,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -3019,25 +3021,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -3106,25 +3108,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -3164,143 +3166,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $0 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 @@ -3327,63 +3315,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3410,23 +3392,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -4011,7 +3991,7 @@ i32.const 1 i32.add local.tee $8 - local.tee $4 + local.tee $3 local.get $0 i32.load offset=8 local.tee $5 @@ -4019,7 +3999,7 @@ i32.shr_u i32.gt_u if - local.get $4 + local.get $3 i32.const 268435455 i32.gt_u if @@ -4030,35 +4010,31 @@ call $~lib/builtins/abort unreachable end - local.get $5 - i32.const 1 - i32.shl - local.tee $2 - i32.const 1073741820 - i32.lt_u - local.set $3 - local.get $4 - i32.const 8 - local.get $4 - i32.const 8 - i32.gt_u - select - i32.const 2 - i32.shl - local.tee $4 - local.get $2 - i32.const 1073741820 - local.get $3 - select - local.tee $2 - i32.lt_u - local.set $3 block $__inlined_func$~lib/rt/itcms/__renew (result i32) + local.get $5 + i32.const 1 + i32.shl + local.tee $2 + i32.const 1073741820 local.get $2 - local.get $4 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 local.get $3 + i32.const 8 + local.get $3 + i32.const 8 + i32.gt_u select - local.tee $4 + i32.const 2 + i32.shl + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + local.tee $3 local.tee $2 local.get $0 i32.load @@ -4066,7 +4042,7 @@ local.tee $6 i32.const 20 i32.sub - local.tee $3 + local.tee $4 i32.load i32.const -4 i32.and @@ -4074,24 +4050,24 @@ i32.sub i32.le_u if - local.get $3 + local.get $4 local.get $2 i32.store offset=16 local.get $6 br $__inlined_func$~lib/rt/itcms/__renew end local.get $2 - local.get $3 + local.get $4 i32.load offset=12 call $~lib/rt/itcms/__new local.tee $10 local.get $6 local.get $2 - local.get $3 + local.get $4 i32.load offset=16 - local.tee $3 + local.tee $4 local.get $2 - local.get $3 + local.get $4 i32.lt_u select call $~lib/memory/memory.copy @@ -4100,7 +4076,7 @@ local.tee $2 local.get $5 i32.add - local.get $4 + local.get $3 local.get $5 i32.sub call $~lib/memory/memory.fill @@ -4120,7 +4096,7 @@ call $~lib/rt/itcms/__link end local.get $0 - local.get $4 + local.get $3 i32.store offset=8 end local.get $0 @@ -5773,38 +5749,36 @@ i64.store offset=16 block $folding-inner2 block $folding-inner1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/rt/__newArray - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=4 - local.get $1 - i32.load offset=4 - local.get $0 - i32.store + block $folding-inner0 local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/rt/__newArray + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + i32.store offset=4 + local.get $1 + i32.load offset=4 + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + br $folding-inner0 + end local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - call $~lib/rt/itcms/__link - local.get $1 - local.set $0 - br $folding-inner1 - end - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $2 - block $folding-inner0 + i32.shr_u + local.set $2 local.get $1 i32.const 20 i32.sub @@ -5830,7 +5804,12 @@ else local.get $2 i32.eqz - br_if $folding-inner0 + if + i32.const 0 + call $~lib/rt/__newArray + local.set $0 + br $folding-inner1 + end global.get $~lib/memory/__stack_pointer local.get $2 i32.const 2147483647 @@ -5838,13 +5817,9 @@ i32.const 2147483647 i32.ne select - local.tee $1 - local.set $2 - local.get $1 + local.tee $2 call $~lib/rt/__newArray local.tee $1 - local.set $4 - local.get $1 i32.store local.get $1 i32.load offset=4 @@ -5858,9 +5833,9 @@ i32.const 2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.store offset=8 - local.get $1 + local.get $4 local.get $0 local.get $3 i32.const 1 @@ -5873,10 +5848,10 @@ i32.const 2 i32.shl i32.add - local.get $1 - i32.store local.get $4 + i32.store local.get $1 + local.get $4 i32.const 1 call $~lib/rt/itcms/__link local.get $3 @@ -5886,12 +5861,7 @@ br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return + br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 0 @@ -6006,9 +5976,12 @@ local.get $3 return end - i32.const 0 - call $~lib/rt/__newArray - local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end global.get $~lib/memory/__stack_pointer i32.const 24 diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 02d9d106f6..727a03116c 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -179,16 +179,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1760 i32.load i32.gt_u @@ -200,7 +200,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1764 @@ -216,26 +216,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -363,8 +363,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -372,11 +370,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -384,25 +383,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -611,7 +611,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -619,6 +618,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -634,7 +634,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -642,6 +641,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -696,11 +696,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -724,11 +724,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -888,17 +888,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -958,15 +958,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1094,12 +1094,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1139,13 +1137,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1185,10 +1183,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1197,7 +1195,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1206,6 +1203,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1219,12 +1217,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1237,7 +1235,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1246,6 +1243,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1452,12 +1450,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1473,14 +1471,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1494,14 +1492,15 @@ local.get $0 i32.const 16 i32.add - local.set $6 + 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 $6 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1512,14 +1511,13 @@ call $~lib/builtins/abort unreachable end - local.tee $2 - local.get $6 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $6 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1527,19 +1525,21 @@ i32.const 4 i32.sub end - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if - local.get $3 + memory.size + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl @@ -1547,17 +1547,16 @@ i32.sub i32.add else - local.get $3 + local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1567,18 +1566,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1586,18 +1583,18 @@ unreachable end end - local.get $2 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if i32.const 0 @@ -1608,8 +1605,8 @@ unreachable end end + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1622,13 +1619,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $6 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $6 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1641,54 +1638,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $6 local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $2 local.get $3 - local.get $6 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $6 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $6 + local.get $3 i32.const 4 i32.add - local.tee $3 - local.get $6 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1698,37 +1695,37 @@ i32.and i32.store end - local.get $6 + local.get $3 local.get $1 i32.store offset=12 - local.get $6 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 local.set $1 - local.get $6 local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $6 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $6 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $6 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.load i32.const -4 i32.and @@ -1736,7 +1733,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -2207,29 +2204,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2251,25 +2246,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2342,25 +2337,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2429,25 +2424,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2487,143 +2482,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2650,63 +2631,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2733,23 +2708,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2839,10 +2812,10 @@ select local.get $2 i32.shl - local.set $6 + local.set $2 block $__inlined_func$~lib/rt/itcms/__renew local.get $3 - if + if (result i32) local.get $9 i32.const 1 i32.shl @@ -2853,14 +2826,15 @@ i32.lt_u select local.tee $1 - local.get $6 + local.get $2 local.get $1 - local.get $6 + local.get $2 i32.gt_u select - local.set $6 + else + local.get $2 end - local.get $6 + local.tee $6 local.get $7 local.tee $1 i32.const 20 @@ -3109,10 +3083,10 @@ ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if local.get $1 i32.const 0 @@ -3137,19 +3111,19 @@ local.get $3 i32.store offset=12 end + local.get $1 local.get $0 i32.load offset=4 - local.get $1 i32.add local.get $2 i32.store8 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if local.get $1 i32.const 0 @@ -3184,10 +3158,10 @@ i32.store ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1248 i32.const 1728 @@ -3548,16 +3522,16 @@ i32.lt_s br_if $folding-inner1 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 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3566,61 +3540,61 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $6 i32.const 0 i32.store - local.get $4 + local.get $6 i32.const 24 i32.const 3 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $6 i32.store - local.get $8 + local.get $6 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store - local.get $8 - local.get $4 + local.get $6 + local.get $0 call $~lib/rt/itcms/__link - local.get $8 + local.get $6 i32.const 3 i32.store offset=4 - local.get $8 + local.get $6 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store offset=8 - local.get $8 - local.get $4 + local.get $6 + local.get $0 call $~lib/rt/itcms/__link - local.get $8 + local.get $6 i32.const 4 i32.store offset=12 - local.get $8 + local.get $6 i32.const 0 i32.store offset=16 - local.get $8 + local.get $6 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $8 + local.get $2 + local.get $6 i32.store loop $for-loop|1 - local.get $2 + local.get $1 i32.extend8_s i32.const 100 i32.lt_s if - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $2 + local.get $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -3630,22 +3604,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -3654,38 +3628,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load8_u local.get $2 + i32.load8_u + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|0 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 if i32.const 0 i32.const 1568 @@ -3694,19 +3668,19 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 - local.get $2 + local.get $6 + local.get $1 + local.get $1 i32.extend8_s - local.tee $0 + local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $0 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761394 @@ -3715,22 +3689,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -3739,38 +3713,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load8_u local.get $2 + i32.load8_u + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|02 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz if i32.const 0 @@ -3780,10 +3754,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 + local.get $6 + local.get $1 call $~lib/map/Map#get - local.get $2 + local.get $1 i32.extend8_s i32.const 10 i32.add @@ -3796,14 +3770,14 @@ 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 - local.get $8 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -3816,18 +3790,18 @@ unreachable end i32.const 0 - 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 if - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $2 + local.get $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -3837,22 +3811,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -3861,38 +3835,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load8_u local.get $2 + i32.load8_u + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|05 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz if i32.const 0 @@ -3902,10 +3876,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 + local.get $6 + local.get $1 call $~lib/map/Map#get - local.get $2 + local.get $1 i32.extend8_s i32.const 10 i32.add @@ -3918,19 +3892,19 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 - local.get $2 + local.get $6 + local.get $1 + local.get $1 i32.extend8_s - local.tee $0 + local.tee $2 i32.const 20 i32.add call $~lib/map/Map#set - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $0 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761394 @@ -3939,22 +3913,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -3963,38 +3937,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load8_u local.get $2 + i32.load8_u + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|08 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz if i32.const 0 @@ -4004,10 +3978,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 + local.get $6 + local.get $1 call $~lib/map/Map#get - local.get $2 + local.get $1 i32.extend8_s i32.const 20 i32.add @@ -4020,14 +3994,14 @@ 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 - local.get $8 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -4039,8 +4013,10 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $9 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4049,17 +4025,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store - local.get $8 + local.get $6 i32.load offset=8 - local.set $11 - local.get $8 + local.set $10 + local.get $6 i32.load offset=16 - local.set $4 - local.get $2 - local.tee $0 + local.tee $11 + local.set $0 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -4068,31 +4044,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $0 i32.const 1073741820 i32.gt_u if @@ -4104,98 +4080,99 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.const 8 - local.get $4 + local.get $0 i32.const 8 i32.gt_u select - local.tee $7 + local.tee $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store offset=4 + local.get $3 local.get $5 - local.get $7 call $~lib/memory/memory.fill - local.get $2 - local.get $5 + local.get $1 + local.get $3 i32.store - local.get $2 - local.get $5 + local.get $1 + local.get $3 call $~lib/rt/itcms/__link - local.get $2 - local.get $5 + local.get $1 + local.get $3 i32.store offset=4 - local.get $2 - local.get $7 + local.get $1 + local.get $5 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + 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 $0 - local.get $2 + local.get $4 + local.get $1 i32.store loop $for-loop|0 - local.get $4 - local.get $6 - i32.gt_s + local.get $8 + local.get $11 + i32.lt_s if - local.get $11 - local.get $6 + local.get $10 + local.get $8 i32.const 12 i32.mul i32.add - local.tee $0 + local.tee $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 + local.tee $0 + i32.const 1 + i32.add + local.set $2 local.get $1 local.get $0 + local.get $3 i32.load8_s call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|0 end end - local.get $2 local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 local.get $1 + 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 $2 - local.tee $4 + local.get $9 + local.get $1 + local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 call $~lib/map/Map#values - local.tee $14 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4216,10 +4193,10 @@ local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $0 i32.store local.get $2 - local.get $5 + local.get $0 call $~lib/rt/itcms/__link local.get $2 i32.const 3 @@ -4227,10 +4204,10 @@ local.get $2 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $0 i32.store offset=8 local.get $2 - local.get $5 + local.get $0 call $~lib/rt/itcms/__link local.get $2 i32.const 4 @@ -4245,22 +4222,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $12 + local.tee $11 i32.store offset=16 loop $for-loop|4 + local.get $7 local.get $3 - local.get $4 i32.load offset=12 i32.lt_s if + local.get $7 local.get $3 - local.tee $5 - local.get $4 i32.load offset=12 i32.ge_u if @@ -4271,21 +4247,21 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $7 + local.get $3 i32.load offset=4 i32.add i32.load8_s - local.set $3 - local.get $14 - local.get $5 + local.set $1 + local.get $13 + local.get $7 call $~lib/array/Array#__get - local.set $13 - local.get $8 + local.set $12 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -4326,7 +4302,7 @@ if local.get $0 i32.load offset=8 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) @@ -4334,13 +4310,13 @@ else local.get $0 i32.load8_u - local.get $3 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $6 + local.get $4 i32.const -2 i32.and local.set $0 @@ -4360,14 +4336,14 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $13 + local.get $12 i32.const 20 i32.sub - local.tee $6 + local.tee $4 i32.extend8_s i32.const -1028477379 i32.mul @@ -4408,7 +4384,7 @@ if local.get $0 i32.load offset=8 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) @@ -4416,13 +4392,13 @@ else local.get $0 i32.load8_u - local.get $6 + local.get $4 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $7 + local.get $5 i32.const -2 i32.and local.set $0 @@ -4453,8 +4429,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 - local.tee $7 + local.get $2 + i32.load + local.get $1 + local.tee $5 i32.extend8_s i32.const -1028477379 i32.mul @@ -4464,30 +4442,26 @@ 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 - local.tee $0 - local.set $15 - local.get $2 - i32.load - local.get $0 + local.tee $14 local.get $2 i32.load offset=4 i32.and @@ -4495,41 +4469,41 @@ i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=4 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $0 i32.load8_u - local.get $7 + local.get $5 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|015 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if - local.get $1 - local.get $7 + local.get $0 + local.get $5 i32.store8 offset=1 else local.get $2 @@ -4558,7 +4532,7 @@ i32.const 1 i32.or end - local.set $1 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4572,14 +4546,14 @@ i64.const 0 i64.store local.get $0 - local.get $1 + local.get $8 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -4587,47 +4561,47 @@ i32.shl i32.const 3 i32.div_s - local.tee $16 + local.tee $15 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $4 i32.store offset=4 local.get $2 i32.load offset=8 - local.tee $10 + local.tee $9 local.get $2 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $3 - local.get $6 + local.set $16 + local.get $4 local.set $0 loop $while-continue|016 - local.get $3 - local.get $10 + local.get $9 + local.get $16 i32.ne if - local.get $10 + local.get $9 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $10 + local.get $9 i32.load8_s - local.tee $9 + local.tee $1 i32.store8 local.get $0 - local.get $10 + local.get $9 i32.load8_s offset=1 i32.store8 offset=1 local.get $0 - local.get $11 + local.get $10 + local.get $8 local.get $1 - local.get $9 i32.extend8_s i32.const -1028477379 i32.mul @@ -4637,22 +4611,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 - local.get $9 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $9 - local.get $9 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $9 - local.get $9 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -4660,10 +4634,10 @@ i32.const 2 i32.shl i32.add - local.tee $9 + local.tee $1 i32.load i32.store offset=4 - local.get $9 + local.get $1 local.get $0 i32.store local.get $0 @@ -4671,30 +4645,30 @@ i32.add local.set $0 end - local.get $10 + local.get $9 i32.const 8 i32.add - local.set $10 + local.set $9 br $while-continue|016 end end local.get $2 - local.get $11 + local.get $10 i32.store local.get $2 - local.get $11 + local.get $10 call $~lib/rt/itcms/__link local.get $2 - local.get $1 + local.get $8 i32.store offset=4 local.get $2 - local.get $6 + local.get $4 i32.store offset=8 local.get $2 - local.get $6 + local.get $4 call $~lib/rt/itcms/__link local.get $2 - local.get $16 + local.get $15 i32.store offset=12 local.get $2 local.get $2 @@ -4713,20 +4687,20 @@ local.get $2 local.get $2 i32.load offset=16 - local.tee $1 + local.tee $8 i32.const 1 i32.add i32.store offset=16 local.get $0 - local.get $1 + local.get $8 i32.const 3 i32.shl i32.add local.tee $0 - local.get $7 + local.get $5 i32.store8 local.get $0 - local.get $7 + local.get $5 i32.store8 offset=1 local.get $2 local.get $2 @@ -4737,17 +4711,17 @@ local.get $0 local.get $2 i32.load - local.get $15 + local.get $14 local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $1 i32.load i32.store offset=4 - local.get $3 + local.get $1 local.get $0 i32.store end @@ -4755,17 +4729,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $11 local.get $12 - local.get $13 i32.const 20 i32.sub - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 call $~lib/map/Map#set - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|4 end end @@ -4781,7 +4755,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -4794,18 +4768,18 @@ unreachable end i32.const 0 - local.set $3 + local.set $7 loop $for-loop|6 - local.get $3 + local.get $7 i32.extend8_s i32.const 50 i32.lt_s if - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $7 i32.extend8_s i32.const -1028477379 i32.mul @@ -4815,22 +4789,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -4839,38 +4813,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load8_u - local.get $3 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|019 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -4880,10 +4854,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $3 + local.get $6 + local.get $7 call $~lib/map/Map#get - local.get $3 + local.get $7 i32.extend8_s i32.const 20 i32.add @@ -4896,14 +4870,14 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $3 + local.get $6 + local.get $7 call $~lib/map/Map#delete - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $7 i32.extend8_s i32.const -1028477379 i32.mul @@ -4913,22 +4887,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -4937,38 +4911,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load8_u - local.get $3 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|022 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -4977,14 +4951,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|6 end end - local.get $8 + local.get $6 i32.load offset=20 i32.const 50 i32.ne @@ -4997,18 +4971,18 @@ unreachable end i32.const 0 - local.set $3 + local.set $7 loop $for-loop|8 - local.get $3 + local.get $7 i32.extend8_s i32.const 50 i32.lt_s if - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $7 i32.extend8_s i32.const -1028477379 i32.mul @@ -5018,22 +4992,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -5042,38 +5016,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load8_u - local.get $3 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|025 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -5082,19 +5056,19 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $3 - local.get $3 + local.get $6 + local.get $7 + local.get $7 i32.extend8_s - local.tee $2 + local.tee $1 i32.const 10 i32.add call $~lib/map/Map#set - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $2 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761394 @@ -5103,22 +5077,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -5127,38 +5101,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load8_u - local.get $3 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|028 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -5168,14 +5142,14 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $3 + local.get $6 + local.get $7 call $~lib/map/Map#delete - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $7 i32.extend8_s i32.const -1028477379 i32.mul @@ -5185,22 +5159,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -5209,38 +5183,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load8_u - local.get $3 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|031 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -5249,14 +5223,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|8 end end - local.get $8 + local.get $6 i32.load offset=20 i32.const 50 i32.ne @@ -5268,9 +5242,9 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $6 call $~lib/map/Map#clear - local.get $8 + local.get $6 i32.load offset=20 if i32.const 0 @@ -5694,16 +5668,16 @@ i32.lt_s br_if $folding-inner1 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 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5712,62 +5686,62 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $6 i32.const 0 i32.store - local.get $4 + local.get $6 i32.const 24 i32.const 8 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $6 i32.store - local.get $8 + local.get $6 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store - local.get $8 - local.get $4 + local.get $6 + local.get $0 call $~lib/rt/itcms/__link - local.get $8 + local.get $6 i32.const 3 i32.store offset=4 - local.get $8 + local.get $6 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store offset=8 - local.get $8 - local.get $4 + local.get $6 + local.get $0 call $~lib/rt/itcms/__link - local.get $8 + local.get $6 i32.const 4 i32.store offset=12 - local.get $8 + local.get $6 i32.const 0 i32.store offset=16 - local.get $8 + local.get $6 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $8 + local.get $2 + local.get $6 i32.store loop $for-loop|1 - local.get $2 + local.get $1 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $2 + local.get $1 i32.const 255 i32.and i32.const -1028477379 @@ -5778,22 +5752,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -5802,38 +5776,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load8_u local.get $2 + i32.load8_u + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|0 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 if i32.const 0 i32.const 1568 @@ -5842,20 +5816,20 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 - local.get $2 + local.get $6 + local.get $1 + local.get $1 i32.const 255 i32.and - local.tee $0 + local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $0 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761394 @@ -5864,22 +5838,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -5888,38 +5862,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load8_u local.get $2 + i32.load8_u + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|02 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz if i32.const 0 @@ -5929,10 +5903,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 + local.get $6 + local.get $1 call $~lib/map/Map#get - local.get $2 + local.get $1 i32.const 255 i32.and i32.const 10 @@ -5946,14 +5920,14 @@ 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 - local.get $8 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -5966,19 +5940,19 @@ unreachable end i32.const 0 - local.set $2 + local.set $1 loop $for-loop|3 - local.get $2 + local.get $1 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $2 + local.get $1 i32.const 255 i32.and i32.const -1028477379 @@ -5989,22 +5963,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -6013,38 +5987,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load8_u local.get $2 + i32.load8_u + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|05 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz if i32.const 0 @@ -6054,10 +6028,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 + local.get $6 + local.get $1 call $~lib/map/Map#get - local.get $2 + local.get $1 i32.const 255 i32.and i32.const 10 @@ -6071,20 +6045,20 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 - local.get $2 + local.get $6 + local.get $1 + local.get $1 i32.const 255 i32.and - local.tee $0 + local.tee $2 i32.const 20 i32.add call $~lib/map/Map#set - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $0 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761394 @@ -6093,22 +6067,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -6117,38 +6091,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load8_u local.get $2 + i32.load8_u + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|08 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz if i32.const 0 @@ -6158,10 +6132,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 + local.get $6 + local.get $1 call $~lib/map/Map#get - local.get $2 + local.get $1 i32.const 255 i32.and i32.const 20 @@ -6175,14 +6149,14 @@ 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 - local.get $8 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -6194,8 +6168,10 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $9 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6204,17 +6180,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store - local.get $8 + local.get $6 i32.load offset=8 - local.set $11 - local.get $8 + local.set $10 + local.get $6 i32.load offset=16 - local.set $4 - local.get $2 - local.tee $0 + local.tee $11 + local.set $0 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -6223,31 +6199,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 16 i32.const 9 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $0 i32.const 1073741820 i32.gt_u if @@ -6259,98 +6235,99 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.const 8 - local.get $4 + local.get $0 i32.const 8 i32.gt_u select - local.tee $7 + local.tee $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store offset=4 + local.get $3 local.get $5 - local.get $7 call $~lib/memory/memory.fill - local.get $2 - local.get $5 + local.get $1 + local.get $3 i32.store - local.get $2 - local.get $5 + local.get $1 + local.get $3 call $~lib/rt/itcms/__link - local.get $2 - local.get $5 + local.get $1 + local.get $3 i32.store offset=4 - local.get $2 - local.get $7 + local.get $1 + local.get $5 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + 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 $0 - local.get $2 + local.get $4 + local.get $1 i32.store loop $for-loop|0 - local.get $4 - local.get $6 - i32.gt_s + local.get $8 + local.get $11 + i32.lt_s if - local.get $11 - local.get $6 + local.get $10 + local.get $8 i32.const 12 i32.mul i32.add - local.tee $0 + local.tee $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 + local.tee $0 + i32.const 1 + i32.add + local.set $2 local.get $1 local.get $0 + local.get $3 i32.load8_u call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|0 end end - local.get $2 local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 local.get $1 + 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 $2 - local.tee $4 + local.get $9 + local.get $1 + local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 call $~lib/map/Map#values - local.tee $14 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6371,10 +6348,10 @@ local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $0 i32.store local.get $2 - local.get $5 + local.get $0 call $~lib/rt/itcms/__link local.get $2 i32.const 3 @@ -6382,10 +6359,10 @@ local.get $2 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $0 i32.store offset=8 local.get $2 - local.get $5 + local.get $0 call $~lib/rt/itcms/__link local.get $2 i32.const 4 @@ -6400,22 +6377,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $12 + local.tee $11 i32.store offset=16 loop $for-loop|4 + local.get $7 local.get $3 - local.get $4 i32.load offset=12 i32.lt_s if + local.get $7 local.get $3 - local.tee $5 - local.get $4 i32.load offset=12 i32.ge_u if @@ -6426,21 +6402,21 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $7 + local.get $3 i32.load offset=4 i32.add i32.load8_u - local.set $3 - local.get $14 - local.get $5 + local.set $1 + local.get $13 + local.get $7 call $~lib/array/Array#__get - local.set $13 - local.get $8 + local.set $12 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $1 i32.const 255 i32.and i32.const -1028477379 @@ -6482,7 +6458,7 @@ if local.get $0 i32.load offset=8 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) @@ -6490,13 +6466,13 @@ else local.get $0 i32.load8_u - local.get $3 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $6 + local.get $4 i32.const -2 i32.and local.set $0 @@ -6516,14 +6492,14 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $13 + local.get $12 i32.const 20 i32.sub - local.tee $6 + local.tee $4 i32.const 255 i32.and i32.const -1028477379 @@ -6565,7 +6541,7 @@ if local.get $0 i32.load offset=8 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) @@ -6573,13 +6549,13 @@ else local.get $0 i32.load8_u - local.get $6 + local.get $4 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $7 + local.get $5 i32.const -2 i32.and local.set $0 @@ -6610,8 +6586,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 - local.tee $7 + local.get $2 + i32.load + local.get $1 + local.tee $5 i32.const 255 i32.and i32.const -1028477379 @@ -6622,30 +6600,26 @@ 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 - local.tee $0 - local.set $15 - local.get $2 - i32.load - local.get $0 + local.tee $14 local.get $2 i32.load offset=4 i32.and @@ -6653,41 +6627,41 @@ i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=4 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $0 i32.load8_u - local.get $7 + local.get $5 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|015 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if - local.get $1 - local.get $7 + local.get $0 + local.get $5 i32.store8 offset=1 else local.get $2 @@ -6716,7 +6690,7 @@ i32.const 1 i32.or end - local.set $1 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -6730,14 +6704,14 @@ i64.const 0 i64.store local.get $0 - local.get $1 + local.get $8 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -6745,47 +6719,47 @@ i32.shl i32.const 3 i32.div_s - local.tee $16 + local.tee $15 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $4 i32.store offset=4 local.get $2 i32.load offset=8 - local.tee $10 + local.tee $9 local.get $2 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $3 - local.get $6 + local.set $16 + local.get $4 local.set $0 loop $while-continue|016 - local.get $3 - local.get $10 + local.get $9 + local.get $16 i32.ne if - local.get $10 + local.get $9 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $10 + local.get $9 i32.load8_u - local.tee $9 + local.tee $1 i32.store8 local.get $0 - local.get $10 + local.get $9 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $11 + local.get $10 + local.get $8 local.get $1 - local.get $9 i32.const 255 i32.and i32.const -1028477379 @@ -6796,22 +6770,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 - local.get $9 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $9 - local.get $9 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $9 - local.get $9 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -6819,10 +6793,10 @@ i32.const 2 i32.shl i32.add - local.tee $9 + local.tee $1 i32.load i32.store offset=4 - local.get $9 + local.get $1 local.get $0 i32.store local.get $0 @@ -6830,30 +6804,30 @@ i32.add local.set $0 end - local.get $10 + local.get $9 i32.const 8 i32.add - local.set $10 + local.set $9 br $while-continue|016 end end local.get $2 - local.get $11 + local.get $10 i32.store local.get $2 - local.get $11 + local.get $10 call $~lib/rt/itcms/__link local.get $2 - local.get $1 + local.get $8 i32.store offset=4 local.get $2 - local.get $6 + local.get $4 i32.store offset=8 local.get $2 - local.get $6 + local.get $4 call $~lib/rt/itcms/__link local.get $2 - local.get $16 + local.get $15 i32.store offset=12 local.get $2 local.get $2 @@ -6872,20 +6846,20 @@ local.get $2 local.get $2 i32.load offset=16 - local.tee $1 + local.tee $8 i32.const 1 i32.add i32.store offset=16 local.get $0 - local.get $1 + local.get $8 i32.const 3 i32.shl i32.add local.tee $0 - local.get $7 + local.get $5 i32.store8 local.get $0 - local.get $7 + local.get $5 i32.store8 offset=1 local.get $2 local.get $2 @@ -6896,17 +6870,17 @@ local.get $0 local.get $2 i32.load - local.get $15 + local.get $14 local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $1 i32.load i32.store offset=4 - local.get $3 + local.get $1 local.get $0 i32.store end @@ -6914,17 +6888,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $11 local.get $12 - local.get $13 i32.const 20 i32.sub - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 call $~lib/map/Map#set - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|4 end end @@ -6940,7 +6914,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -6953,19 +6927,19 @@ unreachable end i32.const 0 - local.set $3 + local.set $7 loop $for-loop|6 - local.get $3 + local.get $7 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $7 i32.const 255 i32.and i32.const -1028477379 @@ -6976,22 +6950,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -7000,38 +6974,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load8_u - local.get $3 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|019 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -7041,10 +7015,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $3 + local.get $6 + local.get $7 call $~lib/map/Map#get - local.get $3 + local.get $7 i32.const 255 i32.and i32.const 20 @@ -7058,14 +7032,14 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $3 + local.get $6 + local.get $7 call $~lib/map/Map#delete - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $7 i32.const 255 i32.and i32.const -1028477379 @@ -7076,22 +7050,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -7100,38 +7074,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load8_u - local.get $3 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|022 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -7140,14 +7114,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|6 end end - local.get $8 + local.get $6 i32.load offset=20 i32.const 50 i32.ne @@ -7160,19 +7134,19 @@ unreachable end i32.const 0 - local.set $3 + local.set $7 loop $for-loop|8 - local.get $3 + local.get $7 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $7 i32.const 255 i32.and i32.const -1028477379 @@ -7183,22 +7157,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -7207,38 +7181,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load8_u - local.get $3 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|025 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -7247,20 +7221,20 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $3 - local.get $3 + local.get $6 + local.get $7 + local.get $7 i32.const 255 i32.and - local.tee $2 + local.tee $1 i32.const 10 i32.add call $~lib/map/Map#set - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $2 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761394 @@ -7269,22 +7243,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -7293,38 +7267,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load8_u - local.get $3 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|028 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -7334,14 +7308,14 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $3 + local.get $6 + local.get $7 call $~lib/map/Map#delete - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $7 i32.const 255 i32.and i32.const -1028477379 @@ -7352,22 +7326,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -7376,38 +7350,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load8_u - local.get $3 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|031 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -7416,14 +7390,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|8 end end - local.get $8 + local.get $6 i32.load offset=20 i32.const 50 i32.ne @@ -7435,9 +7409,9 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $6 call $~lib/map/Map#clear - local.get $8 + local.get $6 i32.load offset=20 if i32.const 0 @@ -7707,10 +7681,10 @@ ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if local.get $1 i32.const 0 @@ -7897,16 +7871,16 @@ i32.lt_s br_if $folding-inner1 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 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7915,61 +7889,61 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $6 i32.const 0 i32.store - local.get $4 + local.get $6 i32.const 24 i32.const 11 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $6 i32.store - local.get $8 + local.get $6 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store - local.get $8 - local.get $4 + local.get $6 + local.get $0 call $~lib/rt/itcms/__link - local.get $8 + local.get $6 i32.const 3 i32.store offset=4 - local.get $8 + local.get $6 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store offset=8 - local.get $8 - local.get $4 + local.get $6 + local.get $0 call $~lib/rt/itcms/__link - local.get $8 + local.get $6 i32.const 4 i32.store offset=12 - local.get $8 + local.get $6 i32.const 0 i32.store offset=16 - local.get $8 + local.get $6 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $8 + local.get $2 + local.get $6 i32.store loop $for-loop|1 - local.get $2 + local.get $1 i32.extend16_s i32.const 100 i32.lt_s if - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $2 + local.get $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -7979,22 +7953,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -8003,38 +7977,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load16_u local.get $2 + i32.load16_u + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|0 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 if i32.const 0 i32.const 1568 @@ -8043,19 +8017,19 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 - local.get $2 + local.get $6 + local.get $1 + local.get $1 i32.extend16_s - local.tee $0 + local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $0 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761395 @@ -8064,22 +8038,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -8088,38 +8062,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load16_u local.get $2 + i32.load16_u + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|02 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz if i32.const 0 @@ -8129,10 +8103,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 + local.get $6 + local.get $1 call $~lib/map/Map#get - local.get $2 + local.get $1 i32.extend16_s i32.const 10 i32.add @@ -8145,14 +8119,14 @@ 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 - local.get $8 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -8165,18 +8139,18 @@ unreachable end i32.const 0 - 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 if - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $2 + local.get $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -8186,22 +8160,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -8210,38 +8184,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load16_u local.get $2 + i32.load16_u + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|05 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz if i32.const 0 @@ -8251,10 +8225,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 + local.get $6 + local.get $1 call $~lib/map/Map#get - local.get $2 + local.get $1 i32.extend16_s i32.const 10 i32.add @@ -8267,19 +8241,19 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 - local.get $2 + local.get $6 + local.get $1 + local.get $1 i32.extend16_s - local.tee $0 + local.tee $2 i32.const 20 i32.add call $~lib/map/Map#set - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $0 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761395 @@ -8288,22 +8262,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -8312,38 +8286,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load16_u local.get $2 + i32.load16_u + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|08 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz if i32.const 0 @@ -8353,10 +8327,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 + local.get $6 + local.get $1 call $~lib/map/Map#get - local.get $2 + local.get $1 i32.extend16_s i32.const 20 i32.add @@ -8369,14 +8343,14 @@ 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 - local.get $8 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -8388,8 +8362,10 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $9 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -8398,18 +8374,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store - local.get $8 + local.get $6 i32.load offset=8 - local.set $11 - local.get $8 + local.set $10 + local.get $6 i32.load offset=16 - local.set $4 - local.get $2 - local.tee $0 - i32.const 8 + local.tee $11 + local.set $0 + local.get $4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8417,31 +8393,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 16 i32.const 12 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $0 i32.const 536870910 i32.gt_u if @@ -8453,100 +8429,101 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.const 8 - local.get $4 + local.get $0 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $7 + local.tee $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store offset=4 + local.get $3 local.get $5 - local.get $7 call $~lib/memory/memory.fill - local.get $2 - local.get $5 + local.get $1 + local.get $3 i32.store - local.get $2 - local.get $5 + local.get $1 + local.get $3 call $~lib/rt/itcms/__link - local.get $2 - local.get $5 + local.get $1 + local.get $3 i32.store offset=4 - local.get $2 - local.get $7 + local.get $1 + local.get $5 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + 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 $0 - local.get $2 + local.get $4 + local.get $1 i32.store loop $for-loop|0 - local.get $4 - local.get $6 - i32.gt_s + local.get $8 + local.get $11 + i32.lt_s if - local.get $11 - local.get $6 + local.get $10 + local.get $8 i32.const 12 i32.mul i32.add - local.tee $0 + local.tee $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 + local.tee $0 + i32.const 1 + i32.add + local.set $2 local.get $1 local.get $0 + local.get $3 i32.load16_s call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|0 end end - local.get $2 local.get $1 + local.get $2 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 local.get $1 + 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 $2 - local.tee $4 + local.get $9 + local.get $1 + local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 call $~lib/map/Map#values - local.tee $14 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -8567,10 +8544,10 @@ local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $0 i32.store local.get $2 - local.get $5 + local.get $0 call $~lib/rt/itcms/__link local.get $2 i32.const 3 @@ -8578,10 +8555,10 @@ local.get $2 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $0 i32.store offset=8 local.get $2 - local.get $5 + local.get $0 call $~lib/rt/itcms/__link local.get $2 i32.const 4 @@ -8596,22 +8573,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $12 + local.tee $11 i32.store offset=16 loop $for-loop|4 + local.get $7 local.get $3 - local.get $4 i32.load offset=12 i32.lt_s if + local.get $7 local.get $3 - local.tee $5 - local.get $4 i32.load offset=12 i32.ge_u if @@ -8622,23 +8598,23 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.load offset=4 - local.get $5 + local.get $7 i32.const 1 i32.shl i32.add i32.load16_s - local.set $3 - local.get $14 - local.get $5 + local.set $1 + local.get $13 + local.get $7 call $~lib/array/Array#__get - local.set $13 - local.get $8 + local.set $12 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -8679,7 +8655,7 @@ if local.get $0 i32.load offset=8 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) @@ -8687,13 +8663,13 @@ else local.get $0 i32.load16_u - local.get $3 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $6 + local.get $4 i32.const -2 i32.and local.set $0 @@ -8713,14 +8689,14 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $13 + local.get $12 i32.const 20 i32.sub - local.tee $6 + local.tee $4 i32.extend16_s i32.const -1028477379 i32.mul @@ -8761,7 +8737,7 @@ if local.get $0 i32.load offset=8 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) @@ -8769,13 +8745,13 @@ else local.get $0 i32.load16_u - local.get $6 + local.get $4 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $7 + local.get $5 i32.const -2 i32.and local.set $0 @@ -8806,8 +8782,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 - local.tee $7 + local.get $2 + i32.load + local.get $1 + local.tee $5 i32.extend16_s i32.const -1028477379 i32.mul @@ -8817,30 +8795,26 @@ 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 - local.tee $0 - local.set $15 - local.get $2 - i32.load - local.get $0 + local.tee $14 local.get $2 i32.load offset=4 i32.and @@ -8848,41 +8822,41 @@ i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=4 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $0 i32.load16_u - local.get $7 + local.get $5 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|015 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if - local.get $1 - local.get $7 + local.get $0 + local.get $5 i32.store16 offset=2 else local.get $2 @@ -8911,7 +8885,7 @@ i32.const 1 i32.or end - local.set $1 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8925,14 +8899,14 @@ i64.const 0 i64.store local.get $0 - local.get $1 + local.get $8 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -8940,47 +8914,47 @@ i32.shl i32.const 3 i32.div_s - local.tee $16 + local.tee $15 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $4 i32.store offset=4 local.get $2 i32.load offset=8 - local.tee $10 + local.tee $9 local.get $2 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $3 - local.get $6 + local.set $16 + local.get $4 local.set $0 loop $while-continue|016 - local.get $3 - local.get $10 + local.get $9 + local.get $16 i32.ne if - local.get $10 + local.get $9 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $10 + local.get $9 i32.load16_s - local.tee $9 + local.tee $1 i32.store16 local.get $0 - local.get $10 + local.get $9 i32.load16_s offset=2 i32.store16 offset=2 local.get $0 - local.get $11 + local.get $10 + local.get $8 local.get $1 - local.get $9 i32.extend16_s i32.const -1028477379 i32.mul @@ -8990,22 +8964,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 - local.get $9 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $9 - local.get $9 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $9 - local.get $9 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -9013,10 +8987,10 @@ i32.const 2 i32.shl i32.add - local.tee $9 + local.tee $1 i32.load i32.store offset=4 - local.get $9 + local.get $1 local.get $0 i32.store local.get $0 @@ -9024,30 +8998,30 @@ i32.add local.set $0 end - local.get $10 + local.get $9 i32.const 8 i32.add - local.set $10 + local.set $9 br $while-continue|016 end end local.get $2 - local.get $11 + local.get $10 i32.store local.get $2 - local.get $11 + local.get $10 call $~lib/rt/itcms/__link local.get $2 - local.get $1 + local.get $8 i32.store offset=4 local.get $2 - local.get $6 + local.get $4 i32.store offset=8 local.get $2 - local.get $6 + local.get $4 call $~lib/rt/itcms/__link local.get $2 - local.get $16 + local.get $15 i32.store offset=12 local.get $2 local.get $2 @@ -9066,20 +9040,20 @@ local.get $2 local.get $2 i32.load offset=16 - local.tee $1 + local.tee $8 i32.const 1 i32.add i32.store offset=16 local.get $0 - local.get $1 + local.get $8 i32.const 3 i32.shl i32.add local.tee $0 - local.get $7 + local.get $5 i32.store16 local.get $0 - local.get $7 + local.get $5 i32.store16 offset=2 local.get $2 local.get $2 @@ -9090,17 +9064,17 @@ local.get $0 local.get $2 i32.load - local.get $15 + local.get $14 local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $1 i32.load i32.store offset=4 - local.get $3 + local.get $1 local.get $0 i32.store end @@ -9108,17 +9082,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $11 local.get $12 - local.get $13 i32.const 20 i32.sub - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 call $~lib/map/Map#set - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|4 end end @@ -9134,7 +9108,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -9147,18 +9121,18 @@ unreachable end i32.const 0 - local.set $3 + local.set $7 loop $for-loop|6 - local.get $3 + local.get $7 i32.extend16_s i32.const 50 i32.lt_s if - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $7 i32.extend16_s i32.const -1028477379 i32.mul @@ -9168,22 +9142,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -9192,38 +9166,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load16_u - local.get $3 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|019 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -9233,10 +9207,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $3 + local.get $6 + local.get $7 call $~lib/map/Map#get - local.get $3 + local.get $7 i32.extend16_s i32.const 20 i32.add @@ -9249,14 +9223,14 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $3 + local.get $6 + local.get $7 call $~lib/map/Map#delete - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $7 i32.extend16_s i32.const -1028477379 i32.mul @@ -9266,22 +9240,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -9290,38 +9264,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load16_u - local.get $3 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|022 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -9330,14 +9304,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|6 end end - local.get $8 + local.get $6 i32.load offset=20 i32.const 50 i32.ne @@ -9350,18 +9324,18 @@ unreachable end i32.const 0 - local.set $3 + local.set $7 loop $for-loop|8 - local.get $3 + local.get $7 i32.extend16_s i32.const 50 i32.lt_s if - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $7 i32.extend16_s i32.const -1028477379 i32.mul @@ -9371,22 +9345,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -9395,38 +9369,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load16_u - local.get $3 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|025 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -9435,19 +9409,19 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $3 - local.get $3 + local.get $6 + local.get $7 + local.get $7 i32.extend16_s - local.tee $2 + local.tee $1 i32.const 10 i32.add call $~lib/map/Map#set - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $2 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761395 @@ -9456,22 +9430,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -9480,38 +9454,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load16_u - local.get $3 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|028 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -9521,14 +9495,14 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $3 + local.get $6 + local.get $7 call $~lib/map/Map#delete - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $7 i32.extend16_s i32.const -1028477379 i32.mul @@ -9538,22 +9512,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -9562,38 +9536,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load16_u - local.get $3 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|031 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -9602,14 +9576,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|8 end end - local.get $8 + local.get $6 i32.load offset=20 i32.const 50 i32.ne @@ -9621,9 +9595,9 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $6 call $~lib/map/Map#clear - local.get $8 + local.get $6 i32.load offset=20 if i32.const 0 @@ -10047,16 +10021,16 @@ i32.lt_s br_if $folding-inner1 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 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10065,62 +10039,62 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $6 i32.const 0 i32.store - local.get $4 + local.get $6 i32.const 24 i32.const 14 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $6 i32.store - local.get $8 + local.get $6 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store - local.get $8 - local.get $4 + local.get $6 + local.get $0 call $~lib/rt/itcms/__link - local.get $8 + local.get $6 i32.const 3 i32.store offset=4 - local.get $8 + local.get $6 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store offset=8 - local.get $8 - local.get $4 + local.get $6 + local.get $0 call $~lib/rt/itcms/__link - local.get $8 + local.get $6 i32.const 4 i32.store offset=12 - local.get $8 + local.get $6 i32.const 0 i32.store offset=16 - local.get $8 + local.get $6 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $8 + local.get $2 + local.get $6 i32.store loop $for-loop|1 - local.get $2 + local.get $1 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $2 + local.get $1 i32.const 65535 i32.and i32.const -1028477379 @@ -10131,22 +10105,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -10155,38 +10129,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load16_u local.get $2 + i32.load16_u + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|0 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 if i32.const 0 i32.const 1568 @@ -10195,20 +10169,20 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 - local.get $2 + local.get $6 + local.get $1 + local.get $1 i32.const 65535 i32.and - local.tee $0 + local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $0 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761395 @@ -10217,22 +10191,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -10241,38 +10215,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load16_u local.get $2 + i32.load16_u + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|02 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz if i32.const 0 @@ -10282,10 +10256,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 + local.get $6 + local.get $1 call $~lib/map/Map#get - local.get $2 + local.get $1 i32.const 65535 i32.and i32.const 10 @@ -10299,14 +10273,14 @@ 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 - local.get $8 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -10319,19 +10293,19 @@ unreachable end i32.const 0 - local.set $2 + local.set $1 loop $for-loop|3 - local.get $2 + local.get $1 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $2 + local.get $1 i32.const 65535 i32.and i32.const -1028477379 @@ -10342,22 +10316,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -10366,38 +10340,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load16_u local.get $2 + i32.load16_u + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|05 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz if i32.const 0 @@ -10407,10 +10381,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 + local.get $6 + local.get $1 call $~lib/map/Map#get - local.get $2 + local.get $1 i32.const 65535 i32.and i32.const 10 @@ -10424,20 +10398,20 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 - local.get $2 + local.get $6 + local.get $1 + local.get $1 i32.const 65535 i32.and - local.tee $0 + local.tee $2 i32.const 20 i32.add call $~lib/map/Map#set - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $0 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761395 @@ -10446,22 +10420,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -10470,38 +10444,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load16_u local.get $2 + i32.load16_u + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|08 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz if i32.const 0 @@ -10511,10 +10485,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $2 + local.get $6 + local.get $1 call $~lib/map/Map#get - local.get $2 + local.get $1 i32.const 65535 i32.and i32.const 20 @@ -10528,14 +10502,14 @@ 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 - local.get $8 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -10547,8 +10521,10 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $9 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10557,17 +10533,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store - local.get $8 + local.get $6 i32.load offset=8 - local.set $11 - local.get $8 + local.set $10 + local.get $6 i32.load offset=16 - local.set $4 - local.get $2 - local.tee $0 + local.tee $11 + local.set $0 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -10576,31 +10552,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 16 i32.const 15 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $0 i32.const 536870910 i32.gt_u if @@ -10612,100 +10588,101 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.const 8 - local.get $4 + local.get $0 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $7 + local.tee $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store offset=4 + local.get $3 local.get $5 - local.get $7 call $~lib/memory/memory.fill - local.get $2 - local.get $5 + local.get $1 + local.get $3 i32.store - local.get $2 - local.get $5 + local.get $1 + local.get $3 call $~lib/rt/itcms/__link - local.get $2 - local.get $5 + local.get $1 + local.get $3 i32.store offset=4 - local.get $2 - local.get $7 + local.get $1 + local.get $5 i32.store offset=8 - local.get $2 - local.get $4 + local.get $1 + 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 $0 - local.get $2 + local.get $4 + local.get $1 i32.store loop $for-loop|0 - local.get $4 - local.get $6 - i32.gt_s + local.get $8 + local.get $11 + i32.lt_s if - local.get $11 - local.get $6 + local.get $10 + local.get $8 i32.const 12 i32.mul i32.add - local.tee $0 + local.tee $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 + local.tee $0 + i32.const 1 + i32.add + local.set $2 local.get $1 local.get $0 + local.get $3 i32.load16_u call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|0 end end - local.get $2 local.get $1 + local.get $2 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 local.get $1 + 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 $2 - local.tee $4 + local.get $9 + local.get $1 + local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 call $~lib/map/Map#values - local.tee $14 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10726,10 +10703,10 @@ local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $0 i32.store local.get $2 - local.get $5 + local.get $0 call $~lib/rt/itcms/__link local.get $2 i32.const 3 @@ -10737,10 +10714,10 @@ local.get $2 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $0 i32.store offset=8 local.get $2 - local.get $5 + local.get $0 call $~lib/rt/itcms/__link local.get $2 i32.const 4 @@ -10755,22 +10732,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $12 + local.tee $11 i32.store offset=16 loop $for-loop|4 + local.get $7 local.get $3 - local.get $4 i32.load offset=12 i32.lt_s if + local.get $7 local.get $3 - local.tee $5 - local.get $4 i32.load offset=12 i32.ge_u if @@ -10781,23 +10757,23 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.load offset=4 - local.get $5 + local.get $7 i32.const 1 i32.shl i32.add i32.load16_u - local.set $3 - local.get $14 - local.get $5 + local.set $1 + local.get $13 + local.get $7 call $~lib/array/Array#__get - local.set $13 - local.get $8 + local.set $12 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $1 i32.const 65535 i32.and i32.const -1028477379 @@ -10839,7 +10815,7 @@ if local.get $0 i32.load offset=8 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) @@ -10847,13 +10823,13 @@ else local.get $0 i32.load16_u - local.get $3 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $6 + local.get $4 i32.const -2 i32.and local.set $0 @@ -10873,14 +10849,14 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $13 + local.get $12 i32.const 20 i32.sub - local.tee $6 + local.tee $4 i32.const 65535 i32.and i32.const -1028477379 @@ -10922,7 +10898,7 @@ if local.get $0 i32.load offset=8 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) @@ -10930,13 +10906,13 @@ else local.get $0 i32.load16_u - local.get $6 + local.get $4 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $7 + local.get $5 i32.const -2 i32.and local.set $0 @@ -10967,8 +10943,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 - local.tee $7 + local.get $2 + i32.load + local.get $1 + local.tee $5 i32.const 65535 i32.and i32.const -1028477379 @@ -10979,30 +10957,26 @@ 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 - local.tee $0 - local.set $15 - local.get $2 - i32.load - local.get $0 + local.tee $14 local.get $2 i32.load offset=4 i32.and @@ -11010,41 +10984,41 @@ i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=4 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $0 i32.load16_u - local.get $7 + local.get $5 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|015 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if - local.get $1 - local.get $7 + local.get $0 + local.get $5 i32.store16 offset=2 else local.get $2 @@ -11073,7 +11047,7 @@ i32.const 1 i32.or end - local.set $1 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -11087,14 +11061,14 @@ i64.const 0 i64.store local.get $0 - local.get $1 + local.get $8 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -11102,47 +11076,47 @@ i32.shl i32.const 3 i32.div_s - local.tee $16 + local.tee $15 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $4 i32.store offset=4 local.get $2 i32.load offset=8 - local.tee $10 + local.tee $9 local.get $2 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $3 - local.get $6 + local.set $16 + local.get $4 local.set $0 loop $while-continue|016 - local.get $3 - local.get $10 + local.get $9 + local.get $16 i32.ne if - local.get $10 + local.get $9 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $10 + local.get $9 i32.load16_u - local.tee $9 + local.tee $1 i32.store16 local.get $0 - local.get $10 + local.get $9 i32.load16_u offset=2 i32.store16 offset=2 local.get $0 - local.get $11 + local.get $10 + local.get $8 local.get $1 - local.get $9 i32.const 65535 i32.and i32.const -1028477379 @@ -11153,22 +11127,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 - local.get $9 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $9 - local.get $9 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $9 - local.get $9 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -11176,10 +11150,10 @@ i32.const 2 i32.shl i32.add - local.tee $9 + local.tee $1 i32.load i32.store offset=4 - local.get $9 + local.get $1 local.get $0 i32.store local.get $0 @@ -11187,30 +11161,30 @@ i32.add local.set $0 end - local.get $10 + local.get $9 i32.const 8 i32.add - local.set $10 + local.set $9 br $while-continue|016 end end local.get $2 - local.get $11 + local.get $10 i32.store local.get $2 - local.get $11 + local.get $10 call $~lib/rt/itcms/__link local.get $2 - local.get $1 + local.get $8 i32.store offset=4 local.get $2 - local.get $6 + local.get $4 i32.store offset=8 local.get $2 - local.get $6 + local.get $4 call $~lib/rt/itcms/__link local.get $2 - local.get $16 + local.get $15 i32.store offset=12 local.get $2 local.get $2 @@ -11229,20 +11203,20 @@ local.get $2 local.get $2 i32.load offset=16 - local.tee $1 + local.tee $8 i32.const 1 i32.add i32.store offset=16 local.get $0 - local.get $1 + local.get $8 i32.const 3 i32.shl i32.add local.tee $0 - local.get $7 + local.get $5 i32.store16 local.get $0 - local.get $7 + local.get $5 i32.store16 offset=2 local.get $2 local.get $2 @@ -11253,17 +11227,17 @@ local.get $0 local.get $2 i32.load - local.get $15 + local.get $14 local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $1 i32.load i32.store offset=4 - local.get $3 + local.get $1 local.get $0 i32.store end @@ -11271,17 +11245,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $11 local.get $12 - local.get $13 i32.const 20 i32.sub - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 call $~lib/map/Map#set - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|4 end end @@ -11297,7 +11271,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -11310,19 +11284,19 @@ unreachable end i32.const 0 - local.set $3 + local.set $7 loop $for-loop|6 - local.get $3 + local.get $7 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $7 i32.const 65535 i32.and i32.const -1028477379 @@ -11333,22 +11307,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -11357,38 +11331,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load16_u - local.get $3 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|019 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -11398,10 +11372,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $3 + local.get $6 + local.get $7 call $~lib/map/Map#get - local.get $3 + local.get $7 i32.const 65535 i32.and i32.const 20 @@ -11415,14 +11389,14 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $3 + local.get $6 + local.get $7 call $~lib/map/Map#delete - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $7 i32.const 65535 i32.and i32.const -1028477379 @@ -11433,22 +11407,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -11457,38 +11431,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load16_u - local.get $3 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|022 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -11497,14 +11471,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|6 end end - local.get $8 + local.get $6 i32.load offset=20 i32.const 50 i32.ne @@ -11517,19 +11491,19 @@ unreachable end i32.const 0 - local.set $3 + local.set $7 loop $for-loop|8 - local.get $3 + local.get $7 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $7 i32.const 65535 i32.and i32.const -1028477379 @@ -11540,22 +11514,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -11564,38 +11538,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load16_u - local.get $3 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|025 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -11604,20 +11578,20 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $3 - local.get $3 + local.get $6 + local.get $7 + local.get $7 i32.const 65535 i32.and - local.tee $2 + local.tee $1 i32.const 10 i32.add call $~lib/map/Map#set - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $2 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761395 @@ -11626,22 +11600,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -11650,38 +11624,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load16_u - local.get $3 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|028 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -11691,14 +11665,14 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.get $3 + local.get $6 + local.get $7 call $~lib/map/Map#delete - local.get $8 + local.get $6 i32.load - local.get $8 + local.get $6 i32.load offset=4 - local.get $3 + local.get $7 i32.const 65535 i32.and i32.const -1028477379 @@ -11709,22 +11683,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -11733,38 +11707,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load16_u - local.get $3 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|031 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -11773,14 +11747,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|8 end end - local.get $8 + local.get $6 i32.load offset=20 i32.const 50 i32.ne @@ -11792,9 +11766,9 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $6 call $~lib/map/Map#clear - local.get $8 + local.get $6 i32.load offset=20 if i32.const 0 @@ -12042,16 +12016,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i64.const 0 i64.store offset=8 - local.get $2 + local.get $1 i32.const 0 i32.store offset=16 - local.get $2 + local.get $1 call $~lib/map/Map#constructor local.tee $2 i32.store @@ -12468,7 +12442,7 @@ i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $5 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -12482,61 +12456,62 @@ i32.store local.get $2 i32.load offset=8 - local.set $5 + local.set $7 local.get $1 local.get $2 i32.load offset=16 local.tee $8 call $~lib/array/Array#constructor - local.tee $1 + local.tee $4 i32.store loop $for-loop|01 - local.get $3 + local.get $6 local.get $8 i32.lt_s if - local.get $5 - local.get $3 + local.get $7 + local.get $6 i32.const 12 i32.mul i32.add - local.tee $6 + local.tee $9 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $1 - local.get $0 - local.get $6 - i32.load - call $~lib/array/Array#__set local.get $0 + local.tee $1 i32.const 1 i32.add local.set $0 + local.get $4 + local.get $1 + local.get $9 + i32.load + call $~lib/array/Array#__set end - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|01 end end - local.get $1 + local.get $4 local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $4 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $1 + local.get $5 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 @@ -12545,26 +12520,26 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $7 + local.tee $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor local.tee $5 i32.store offset=16 loop $for-loop|2 + local.get $3 local.get $4 - local.get $1 i32.load offset=12 i32.lt_s if - local.get $1 local.get $4 + local.get $3 call $~lib/array/Array#__get local.set $0 local.get $9 - local.get $4 + local.get $3 call $~lib/array/Array#__get - local.set $8 + local.set $7 local.get $2 i32.load local.get $2 @@ -12578,22 +12553,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 @@ -12602,36 +12577,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=8 - local.tee $6 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $0 - local.get $3 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $6 + local.get $10 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 @@ -12645,10 +12620,10 @@ i32.load local.get $2 i32.load offset=4 - local.get $8 + local.get $7 i32.const 20 i32.sub - local.tee $6 + local.tee $10 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12657,22 +12632,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 @@ -12681,36 +12656,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=8 - local.tee $10 + local.tee $8 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 - local.get $3 + local.get $10 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $10 + local.get $8 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|014 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -12720,25 +12695,25 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 local.get $0 local.get $0 call $~lib/map/Map#set local.get $5 - local.get $8 + local.get $7 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $for-loop|2 end end - local.get $7 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -12763,9 +12738,9 @@ unreachable end i32.const 0 - local.set $4 + local.set $3 loop $for-loop|3 - local.get $4 + local.get $3 i32.const 50 i32.lt_s if @@ -12773,7 +12748,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $4 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12813,19 +12788,19 @@ if local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $3 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find16 - local.get $3 + local.get $4 i32.const -2 i32.and local.set $0 @@ -12846,9 +12821,9 @@ unreachable end local.get $2 - local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.const 20 i32.add i32.ne @@ -12861,13 +12836,13 @@ unreachable end local.get $2 - local.get $4 + local.get $3 call $~lib/map/Map#delete local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $4 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12907,19 +12882,19 @@ if local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $3 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find19 - local.get $3 + local.get $4 i32.const -2 i32.and local.set $0 @@ -12938,10 +12913,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $for-loop|3 end end @@ -12958,9 +12933,9 @@ unreachable end i32.const 0 - local.set $4 + local.set $3 loop $for-loop|4 - local.get $4 + local.get $3 i32.const 50 i32.lt_s if @@ -12968,7 +12943,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $4 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13008,19 +12983,19 @@ if local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $3 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find22 - local.get $3 + local.get $4 i32.const -2 i32.and local.set $0 @@ -13040,8 +13015,8 @@ unreachable end local.get $2 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 10 i32.add call $~lib/map/Map#set @@ -13049,7 +13024,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $4 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13089,19 +13064,19 @@ if local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $3 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find25 - local.get $3 + local.get $4 i32.const -2 i32.and local.set $0 @@ -13122,13 +13097,13 @@ unreachable end local.get $2 - local.get $4 + local.get $3 call $~lib/map/Map#delete local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $4 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13168,19 +13143,19 @@ if local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $3 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find28 - local.get $3 + local.get $4 i32.const -2 i32.and local.set $0 @@ -13199,10 +13174,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $for-loop|4 end end @@ -13624,6 +13599,7 @@ (local $14 i32) (local $15 i32) (local $16 i32) + (local $17 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -13652,41 +13628,41 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 + local.get $1 i32.const 24 i32.const 17 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store - local.get $7 + local.get $6 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $1 i32.store - local.get $7 - local.get $5 + local.get $6 + local.get $1 call $~lib/rt/itcms/__link - local.get $7 + local.get $6 i32.const 3 i32.store offset=4 - local.get $7 + local.get $6 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $1 i32.store offset=8 - local.get $7 - local.get $5 + local.get $6 + local.get $1 call $~lib/rt/itcms/__link - local.get $7 + local.get $6 i32.const 4 i32.store offset=12 - local.get $7 + local.get $6 i32.const 0 i32.store offset=16 - local.get $7 + local.get $6 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -13694,16 +13670,16 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 - local.get $7 + local.get $6 i32.store loop $for-loop|0 local.get $2 i32.const 100 i32.lt_u if - local.get $7 + local.get $6 i32.load - local.get $7 + local.get $6 i32.load offset=4 local.get $2 i32.const -1028477379 @@ -13714,22 +13690,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 @@ -13738,36 +13714,36 @@ i32.shl i32.add i32.load - local.set $8 + local.set $3 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $8 + local.get $3 if - local.get $8 + local.get $3 i32.load offset=8 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $2 - local.get $8 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $5 + local.get $4 i32.const -2 i32.and - local.set $8 + local.set $3 br $while-continue|0 end end i32.const 0 - local.set $8 + local.set $3 end - local.get $8 + local.get $3 if i32.const 0 i32.const 1568 @@ -13776,15 +13752,15 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 local.get $2 local.get $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $7 + local.get $6 i32.load - local.get $7 + local.get $6 i32.load offset=4 local.get $2 i32.const -1028477379 @@ -13795,22 +13771,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 @@ -13819,36 +13795,36 @@ i32.shl i32.add i32.load - local.set $8 + local.set $3 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $8 + local.get $3 if - local.get $8 + local.get $3 i32.load offset=8 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $2 - local.get $8 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $5 + local.get $4 i32.const -2 i32.and - local.set $8 + local.set $3 br $while-continue|02 end end i32.const 0 - local.set $8 + local.set $3 end - local.get $8 + local.get $3 i32.eqz if i32.const 0 @@ -13858,7 +13834,7 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 local.get $2 call $~lib/map/Map#get local.get $2 @@ -13880,7 +13856,7 @@ br $for-loop|0 end end - local.get $7 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -13899,9 +13875,9 @@ i32.const 100 i32.lt_u if - local.get $7 + local.get $6 i32.load - local.get $7 + local.get $6 i32.load offset=4 local.get $2 i32.const -1028477379 @@ -13912,22 +13888,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 @@ -13936,36 +13912,36 @@ i32.shl i32.add i32.load - local.set $8 + local.set $3 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $8 + local.get $3 if - local.get $8 + local.get $3 i32.load offset=8 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $2 - local.get $8 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $5 + local.get $4 i32.const -2 i32.and - local.set $8 + local.set $3 br $while-continue|05 end end i32.const 0 - local.set $8 + local.set $3 end - local.get $8 + local.get $3 i32.eqz if i32.const 0 @@ -13975,7 +13951,7 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 local.get $2 call $~lib/map/Map#get local.get $2 @@ -13990,15 +13966,15 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 local.get $2 local.get $2 i32.const 20 i32.add call $~lib/map/Map#set - local.get $7 + local.get $6 i32.load - local.get $7 + local.get $6 i32.load offset=4 local.get $2 i32.const -1028477379 @@ -14009,22 +13985,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 @@ -14033,36 +14009,36 @@ i32.shl i32.add i32.load - local.set $8 + local.set $3 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $8 + local.get $3 if - local.get $8 + local.get $3 i32.load offset=8 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $2 - local.get $8 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $5 + local.get $4 i32.const -2 i32.and - local.set $8 + local.set $3 br $while-continue|08 end end i32.const 0 - local.set $8 + local.set $3 end - local.get $8 + local.get $3 i32.eqz if i32.const 0 @@ -14072,7 +14048,7 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 local.get $2 call $~lib/map/Map#get local.get $2 @@ -14094,7 +14070,7 @@ br $for-loop|1 end end - local.get $7 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -14106,8 +14082,10 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $9 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14116,16 +14094,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.store - local.get $7 + local.get $6 i32.load offset=8 - local.set $3 - local.get $7 + local.set $11 + local.get $6 i32.load offset=16 - local.set $10 - local.get $2 + local.tee $12 + local.set $4 + local.get $3 + local.tee $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14134,31 +14114,31 @@ i32.lt_s 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 i32.const 16 i32.const 18 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $3 i32.store - local.get $9 + local.get $3 i32.const 0 i32.store - local.get $9 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link - local.get $9 + local.get $3 i32.const 0 i32.store offset=4 - local.get $9 + local.get $3 i32.const 0 i32.store offset=8 - local.get $9 + local.get $3 i32.const 0 i32.store offset=12 - local.get $10 + local.get $4 i32.const 268435455 i32.gt_u if @@ -14170,99 +14150,101 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $4 i32.const 8 - local.get $10 + local.get $4 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $5 + local.tee $10 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $6 - local.get $5 + local.get $7 + local.get $10 call $~lib/memory/memory.fill - local.get $9 - local.get $6 + local.get $3 + local.get $7 i32.store - local.get $9 - local.get $6 + local.get $3 + local.get $7 call $~lib/rt/itcms/__link - local.get $9 - local.get $6 + local.get $3 + local.get $7 i32.store offset=4 - local.get $9 - local.get $5 - i32.store offset=8 - local.get $9 + local.get $3 local.get $10 + i32.store offset=8 + local.get $3 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $9 + local.get $1 + local.get $3 i32.store loop $for-loop|01 - local.get $4 - local.get $10 + local.get $5 + local.get $12 i32.lt_s if - local.get $3 - local.get $4 + local.get $11 + local.get $5 i32.const 12 i32.mul i32.add - local.tee $2 + local.tee $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $9 - local.get $0 local.get $2 - i32.load - call $~lib/array/Array#__set - local.get $0 + local.tee $1 i32.const 1 i32.add - local.set $0 + local.set $2 + local.get $3 + local.get $1 + local.get $4 + i32.load + call $~lib/array/Array#__set end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|01 end end - local.get $9 - local.get $0 + local.get $3 + local.get $2 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $9 - local.get $0 + local.get $3 + 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 $8 local.get $9 + local.get $3 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 call $~lib/map/Map#values - local.tee $13 + local.tee $14 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14271,63 +14253,63 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.store - local.get $2 + local.get $3 i32.const 24 i32.const 19 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $3 i32.store - local.get $6 + local.get $3 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $4 i32.store - local.get $6 - local.get $2 + local.get $3 + local.get $4 call $~lib/rt/itcms/__link - local.get $6 + local.get $3 i32.const 3 i32.store offset=4 - local.get $6 + local.get $3 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $4 i32.store offset=8 - local.get $6 - local.get $2 + local.get $3 + local.get $4 call $~lib/rt/itcms/__link - local.get $6 + local.get $3 i32.const 4 i32.store offset=12 - local.get $6 + local.get $3 i32.const 0 i32.store offset=16 - local.get $6 + 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 $6 + local.get $2 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $11 + local.tee $12 i32.store offset=16 loop $for-loop|2 + local.get $0 local.get $1 - local.get $9 i32.load offset=12 i32.lt_s if - local.get $1 + local.get $0 local.tee $4 - local.get $9 + local.get $1 i32.load offset=12 i32.ge_u if @@ -14338,23 +14320,23 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $1 i32.load offset=4 local.get $4 i32.const 2 i32.shl i32.add i32.load - local.set $1 - local.get $13 + local.set $0 + local.get $14 local.get $4 call $~lib/array/Array#__get - local.set $12 - local.get $7 + local.set $13 + local.get $6 i32.load - local.get $7 + local.get $6 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14387,36 +14369,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $2 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|011 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.eqz if i32.const 0 @@ -14426,11 +14408,11 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 i32.load - local.get $7 + local.get $6 i32.load offset=4 - local.get $12 + local.get $13 i32.const 20 i32.sub local.tee $5 @@ -14466,36 +14448,36 @@ i32.shl i32.add i32.load - local.set $8 + local.set $2 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $8 + local.get $2 if - local.get $8 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $5 - local.get $8 + local.get $2 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $2 + local.get $10 i32.const -2 i32.and - local.set $8 + local.set $2 br $while-continue|014 end end i32.const 0 - local.set $8 + local.set $2 end - local.get $8 + local.get $2 i32.eqz if i32.const 0 @@ -14516,10 +14498,11 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $6 + local.get $3 i32.load - local.get $1 - local.tee $3 + local.get $0 + local.tee $2 + local.tee $10 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14528,77 +14511,77 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor - local.tee $14 - local.get $6 + local.tee $15 + local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $0 block $__inlined_func$~lib/map/Map#find15 loop $while-continue|016 - local.get $2 + local.get $0 if - local.get $2 + local.get $0 i32.load offset=8 - local.tee $8 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $2 + local.get $10 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find15 - local.get $8 + local.get $5 i32.const -2 i32.and - local.set $2 + local.set $0 br $while-continue|016 end end i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if - local.get $2 - local.get $3 + local.get $0 + local.get $10 i32.store offset=4 else - local.get $6 + local.get $3 i32.load offset=16 - local.get $6 + local.get $3 i32.load offset=12 i32.eq if - local.get $6 + local.get $3 i32.load offset=20 - local.get $6 + local.get $3 i32.load offset=12 i32.const 3 i32.mul @@ -14606,17 +14589,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $6 + local.get $3 i32.load offset=4 else - local.get $6 + local.get $3 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -14626,66 +14609,66 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 - local.get $8 + local.get $0 + local.get $7 i32.const 1 i32.add - local.tee $2 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $11 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $16 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $5 i32.store offset=4 - local.get $6 + local.get $3 i32.load offset=8 - local.tee $1 - local.get $6 + local.tee $9 + 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 $5 local.set $0 loop $while-continue|017 - local.get $1 - local.get $16 + local.get $9 + local.get $17 i32.ne if - local.get $1 + local.get $9 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $1 + local.get $9 i32.load - local.tee $10 + local.tee $8 i32.store local.get $0 - local.get $1 + local.get $9 i32.load offset=4 i32.store offset=4 local.get $0 - local.get $5 + local.get $11 + local.get $7 local.get $8 - local.get $10 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14694,22 +14677,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $10 - local.get $10 + local.tee $8 + local.get $8 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $10 - local.get $10 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $10 - local.get $10 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u i32.xor @@ -14717,10 +14700,10 @@ i32.const 2 i32.shl i32.add - local.tee $10 + local.tee $8 i32.load i32.store offset=8 - local.get $10 + local.get $8 local.get $0 i32.store local.get $0 @@ -14728,33 +14711,33 @@ i32.add local.set $0 end - local.get $1 + local.get $9 i32.const 12 i32.add - local.set $1 + local.set $9 br $while-continue|017 end end - local.get $6 - local.get $5 + local.get $3 + local.get $11 i32.store - local.get $6 - local.get $5 + local.get $3 + local.get $11 call $~lib/rt/itcms/__link - local.get $6 - local.get $8 + local.get $3 + local.get $7 i32.store offset=4 - local.get $6 - local.get $2 + local.get $3 + local.get $5 i32.store offset=8 - local.get $6 - local.get $2 + local.get $3 + local.get $5 call $~lib/rt/itcms/__link - local.get $6 - local.get $15 + local.get $3 + local.get $16 i32.store offset=12 - local.get $6 - local.get $6 + local.get $3 + local.get $3 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -14763,70 +14746,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $3 i32.load offset=8 - local.tee $8 + local.tee $0 i32.store - local.get $6 - local.get $6 + local.get $3 + local.get $3 i32.load offset=16 - local.tee $2 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $8 - local.get $2 + local.get $0 + local.get $7 i32.const 12 i32.mul i32.add - local.tee $2 - local.get $3 - i32.store + local.tee $0 local.get $2 - local.get $3 + i32.store + local.get $0 + local.get $10 i32.store offset=4 - local.get $6 - local.get $6 + local.get $3 + local.get $3 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $2 - local.get $6 + local.get $0 + local.get $3 i32.load - local.get $14 - local.get $6 + local.get $15 + local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $2 i32.load i32.store offset=8 - local.get $1 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 $11 local.get $12 + local.get $13 i32.const 20 i32.sub - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 call $~lib/map/Map#set local.get $4 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|2 end end - local.get $6 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -14838,7 +14821,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $12 i32.load offset=20 i32.const 100 i32.ne @@ -14851,17 +14834,17 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|3 - local.get $1 + local.get $0 i32.const 50 i32.lt_u if - local.get $7 + local.get $6 i32.load - local.get $7 + local.get $6 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14894,36 +14877,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find19 loop $while-continue|020 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find19 - local.get $2 + local.get $1 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 i32.eqz if i32.const 0 @@ -14933,10 +14916,10 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $1 + local.get $6 + local.get $0 call $~lib/map/Map#get - local.get $1 + local.get $0 i32.const 20 i32.add i32.ne @@ -14948,14 +14931,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $1 + local.get $6 + local.get $0 call $~lib/map/Map#delete - local.get $7 + local.get $6 i32.load - local.get $7 + local.get $6 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14988,36 +14971,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find22 loop $while-continue|023 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find22 - local.get $2 + local.get $1 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 if i32.const 0 i32.const 1568 @@ -15026,14 +15009,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|3 end end - local.get $7 + local.get $6 i32.load offset=20 i32.const 50 i32.ne @@ -15046,17 +15029,17 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|4 - local.get $1 + local.get $0 i32.const 50 i32.lt_u if - local.get $7 + local.get $6 i32.load - local.get $7 + local.get $6 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15089,36 +15072,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find25 loop $while-continue|026 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find25 - local.get $2 + local.get $1 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 @@ -15127,17 +15110,17 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $1 - local.get $1 + local.get $6 + local.get $0 + local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $7 + local.get $6 i32.load - local.get $7 + local.get $6 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15170,36 +15153,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find28 loop $while-continue|029 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find28 - local.get $2 + local.get $1 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|029 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.eqz if i32.const 0 @@ -15209,14 +15192,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $1 + local.get $6 + local.get $0 call $~lib/map/Map#delete - local.get $7 + local.get $6 i32.load - local.get $7 + local.get $6 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15249,36 +15232,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find31 loop $while-continue|032 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find31 - local.get $2 + local.get $1 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|032 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 @@ -15287,14 +15270,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|4 end end - local.get $7 + local.get $6 i32.load offset=20 i32.const 50 i32.ne @@ -15306,9 +15289,9 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 call $~lib/map/Map#clear - local.get $7 + local.get $6 i32.load offset=20 if i32.const 0 @@ -15338,6 +15321,12 @@ local.get $0 i32.load offset=4 local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15347,12 +15336,6 @@ 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 @@ -15500,6 +15483,12 @@ local.get $7 local.get $1 local.get $6 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $6 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15509,12 +15498,6 @@ i32.rotl i32.const 668265263 i32.mul - local.get $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul i32.add i32.const 17 i32.rotl @@ -15595,6 +15578,12 @@ local.get $0 i32.load offset=4 local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15604,12 +15593,6 @@ 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 @@ -15683,10 +15666,10 @@ ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if local.get $1 i32.const 0 @@ -15728,6 +15711,12 @@ local.get $0 i32.load offset=4 local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15737,12 +15726,6 @@ 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 @@ -15888,8 +15871,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i64) + (local $3 i64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -15898,10 +15881,10 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i64) + (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 i32) + (local $16 i64) (local $17 i32) global.get $~lib/memory/__stack_pointer i32.const 20 @@ -15931,41 +15914,41 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 + local.get $1 i32.const 24 i32.const 20 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $1 i32.store - local.get $5 - local.get $3 + local.get $4 + local.get $1 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 i32.const 3 i32.store offset=4 - local.get $5 + local.get $4 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $1 i32.store offset=8 - local.get $5 - local.get $3 + local.get $4 + local.get $1 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 i32.const 4 i32.store offset=12 - local.get $5 + local.get $4 i32.const 0 i32.store offset=16 - local.get $5 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -15973,15 +15956,15 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - local.get $5 + local.get $4 i32.store loop $for-loop|0 - local.get $4 + local.get $3 i64.const 100 i64.lt_s if - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -15991,15 +15974,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 local.get $4 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16010,10 +15993,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 10 i32.add @@ -16026,14 +16009,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|0 end end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -16046,14 +16029,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|1 - local.get $4 + local.get $3 i64.const 100 i64.lt_s if - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16064,10 +16047,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 10 i32.add @@ -16080,15 +16063,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 local.get $4 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 20 i32.add call $~lib/map/Map#set - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16099,10 +16082,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 20 i32.add @@ -16115,14 +16098,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|1 end end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -16134,8 +16117,10 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $13 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -16147,12 +16132,13 @@ local.tee $1 i32.const 0 i32.store - local.get $5 + local.get $4 i32.load offset=8 - local.set $11 - local.get $5 + local.set $8 + local.get $4 i32.load offset=16 - local.set $2 + local.tee $5 + local.set $9 local.get $1 i32.const 8 i32.sub @@ -16162,10 +16148,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $6 i64.const 0 i64.store - local.get $3 + local.get $6 i32.const 16 i32.const 21 call $~lib/rt/itcms/__new @@ -16186,7 +16172,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $2 + local.get $9 i32.const 134217727 i32.gt_u if @@ -16198,36 +16184,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $9 i32.const 8 - local.get $2 + local.get $9 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $7 + local.tee $0 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $10 i32.store offset=4 - local.get $3 - local.get $7 + local.get $10 + local.get $0 call $~lib/memory/memory.fill local.get $6 - local.get $3 + local.get $10 i32.store local.get $6 - local.get $3 + local.get $10 call $~lib/rt/itcms/__link local.get $6 - local.get $3 + local.get $10 i32.store offset=4 local.get $6 - local.get $7 + local.get $0 i32.store offset=8 local.get $6 - local.get $2 + local.get $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -16237,57 +16223,58 @@ local.get $6 i32.store loop $for-loop|01 - local.get $2 - local.get $8 + local.get $5 + local.get $7 i32.gt_s if - local.get $11 local.get $8 + local.get $7 i32.const 4 i32.shl i32.add - local.tee $3 + local.tee $0 i32.load offset=12 i32.const 1 i32.and i32.eqz if + local.get $2 + local.tee $1 + i32.const 1 + i32.add + local.set $2 local.get $6 + local.get $1 local.get $0 - local.get $3 i64.load call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $8 + local.get $7 i32.const 1 i32.add - local.set $8 + local.set $7 br $for-loop|01 end end local.get $6 - local.get $0 + local.get $2 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity local.get $6 - 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 $9 + local.get $13 local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 call $~lib/map/Map#values - local.tee $14 + local.tee $17 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.tee $2 @@ -16299,41 +16286,41 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i32.const 0 i32.store - local.get $3 + local.get $1 i32.const 24 i32.const 22 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/rt/itcms/__link - local.get $3 + local.get $5 i32.const 3 i32.store offset=4 - local.get $3 + local.get $5 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/rt/itcms/__link - local.get $3 + local.get $5 i32.const 4 i32.store offset=12 - local.get $3 + local.get $5 i32.const 0 i32.store offset=16 - local.get $3 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -16341,19 +16328,19 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - local.get $3 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $11 + local.tee $14 i32.store offset=16 loop $for-loop|2 - local.get $10 + local.get $12 local.get $6 i32.load offset=12 i32.lt_s if - local.get $10 + local.get $12 local.get $6 i32.load offset=12 i32.ge_u @@ -16367,18 +16354,18 @@ end local.get $6 i32.load offset=4 - local.get $10 + local.get $12 i32.const 3 i32.shl i32.add i64.load - local.set $4 - local.get $14 - local.get $10 + local.set $3 + local.get $17 + local.get $12 call $~lib/array/Array#__get - local.set $12 - local.get $5 + local.set $15 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16389,8 +16376,8 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $12 + local.get $4 + local.get $15 i32.const 20 i32.sub i64.extend_i32_s @@ -16415,7 +16402,15 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $5 + i32.load + local.get $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16425,54 +16420,44 @@ 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 $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor - local.tee $0 - local.set $15 - local.get $3 - i32.load - local.get $0 - local.get $3 + local.tee $9 + local.get $5 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $7 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $0 + local.get $7 if - local.get $0 + local.get $7 i32.load offset=16 local.tee $1 i32.const 1 @@ -16480,8 +16465,8 @@ if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $3 + local.get $7 i64.load i64.eq end @@ -16489,28 +16474,28 @@ local.get $1 i32.const -2 i32.and - local.set $0 + local.set $7 br $while-continue|0 end end i32.const 0 - local.set $0 + local.set $7 end - local.get $0 + local.get $7 if - local.get $0 - local.get $4 + local.get $7 + local.get $3 i64.store offset=8 else - local.get $3 + local.get $5 i32.load offset=16 - local.get $3 + local.get $5 i32.load offset=12 i32.eq if - local.get $3 + local.get $5 i32.load offset=20 - local.get $3 + local.get $5 i32.load offset=12 i32.const 3 i32.mul @@ -16518,17 +16503,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + local.get $5 i32.load offset=4 else - local.get $3 + local.get $5 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $8 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -16538,102 +16523,102 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 - local.get $8 + local.get $1 + local.get $2 i32.const 1 i32.add - local.tee $0 + local.tee $1 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $16 + local.tee $10 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=4 - local.get $3 + local.get $5 i32.load offset=8 - local.tee $7 - local.get $3 + local.tee $11 + local.get $5 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $17 + local.set $13 local.get $1 local.set $0 loop $while-continue|00 - local.get $7 - local.get $17 + local.get $11 + local.get $13 i32.ne if - local.get $7 + local.get $11 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $7 + local.get $11 i64.load - local.tee $13 + local.tee $16 i64.store local.get $0 - local.get $7 + local.get $11 i64.load offset=8 i64.store offset=8 local.get $0 - local.get $9 - local.get $8 - local.get $13 - 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 $13 + local.get $7 + local.get $2 + local.get $16 i64.const 32 i64.shr_u i32.wrap_i64 i32.const -1028477379 i32.mul + local.get $16 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u i32.xor @@ -16641,10 +16626,10 @@ i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $8 i32.load i32.store offset=16 - local.get $2 + local.get $8 local.get $0 i32.store local.get $0 @@ -16652,33 +16637,33 @@ i32.add local.set $0 end - local.get $7 + local.get $11 i32.const 24 i32.add - local.set $7 + local.set $11 br $while-continue|00 end end - local.get $3 - local.get $9 + local.get $5 + local.get $7 i32.store - local.get $3 - local.get $9 + local.get $5 + local.get $7 call $~lib/rt/itcms/__link - local.get $3 - local.get $8 + local.get $5 + local.get $2 i32.store offset=4 - local.get $3 + local.get $5 local.get $1 i32.store offset=8 - local.get $3 + local.get $5 local.get $1 call $~lib/rt/itcms/__link - local.get $3 - local.get $16 + local.get $5 + local.get $10 i32.store offset=12 - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -16687,70 +16672,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.load offset=8 - local.tee $0 + local.tee $2 i32.store - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.load offset=16 - local.tee $8 + local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $0 - local.get $8 + local.get $2 + local.get $1 i32.const 24 i32.mul i32.add - local.tee $0 - local.get $4 - i64.store - local.get $0 - local.get $4 - i64.store offset=8 + local.tee $2 local.get $3 + i64.store + local.get $2 local.get $3 + i64.store offset=8 + local.get $5 + local.get $5 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $0 - local.get $3 + local.get $2 + local.get $5 i32.load - local.get $15 - local.get $3 + local.get $9 + local.get $5 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $1 i32.load i32.store offset=16 + local.get $1 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 $11 - local.get $12 + local.get $14 + local.get $15 i32.const 20 i32.sub - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 call $~lib/map/Map#set - local.get $10 + local.get $12 i32.const 1 i32.add - local.set $10 + local.set $12 br $for-loop|2 end end - local.get $3 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -16762,7 +16747,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $14 i32.load offset=20 i32.const 100 i32.ne @@ -16775,14 +16760,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|3 - local.get $4 + local.get $3 i64.const 50 i64.lt_s if - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16793,10 +16778,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 20 i32.add @@ -16809,11 +16794,11 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#delete - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -16823,14 +16808,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|3 end end - local.get $5 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -16843,14 +16828,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|4 - local.get $4 + local.get $3 i64.const 50 i64.lt_s if - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -16860,15 +16845,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 local.get $4 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16879,11 +16864,11 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#delete - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -16893,14 +16878,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|4 end end - local.get $5 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -16912,9 +16897,9 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 call $~lib/map/Map#clear - local.get $5 + local.get $4 i32.load offset=20 if i32.const 0 @@ -16944,6 +16929,12 @@ local.get $0 i32.load offset=4 local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16953,12 +16944,6 @@ 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 @@ -17106,6 +17091,12 @@ local.get $7 local.get $1 local.get $6 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $6 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17115,12 +17106,6 @@ i32.rotl i32.const 668265263 i32.mul - local.get $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul i32.add i32.const 17 i32.rotl @@ -17201,6 +17186,12 @@ local.get $0 i32.load offset=4 local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17210,12 +17201,6 @@ 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 @@ -17295,6 +17280,12 @@ local.get $0 i32.load offset=4 local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17304,12 +17295,6 @@ 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 @@ -17424,8 +17409,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i64) + (local $3 i64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -17434,10 +17419,10 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i64) + (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 i32) + (local $16 i64) (local $17 i32) global.get $~lib/memory/__stack_pointer i32.const 20 @@ -17467,41 +17452,41 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 + local.get $1 i32.const 24 i32.const 23 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $1 i32.store - local.get $5 - local.get $3 + local.get $4 + local.get $1 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 i32.const 3 i32.store offset=4 - local.get $5 + local.get $4 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $1 i32.store offset=8 - local.get $5 - local.get $3 + local.get $4 + local.get $1 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 i32.const 4 i32.store offset=12 - local.get $5 + local.get $4 i32.const 0 i32.store offset=16 - local.get $5 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -17509,15 +17494,15 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - local.get $5 + local.get $4 i32.store loop $for-loop|0 - local.get $4 + local.get $3 i64.const 100 i64.lt_u if - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -17527,15 +17512,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 local.get $4 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -17546,10 +17531,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 10 i32.add @@ -17562,14 +17547,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|0 end end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -17582,14 +17567,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|1 - local.get $4 + local.get $3 i64.const 100 i64.lt_u if - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -17600,10 +17585,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 10 i32.add @@ -17616,15 +17601,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 local.get $4 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 20 i32.add call $~lib/map/Map#set - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -17635,10 +17620,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 20 i32.add @@ -17651,14 +17636,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|1 end end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -17670,8 +17655,10 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $13 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17683,12 +17670,13 @@ local.tee $1 i32.const 0 i32.store - local.get $5 + local.get $4 i32.load offset=8 - local.set $11 - local.get $5 + local.set $8 + local.get $4 i32.load offset=16 - local.set $2 + local.tee $5 + local.set $9 local.get $1 i32.const 8 i32.sub @@ -17698,10 +17686,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $6 i64.const 0 i64.store - local.get $3 + local.get $6 i32.const 16 i32.const 24 call $~lib/rt/itcms/__new @@ -17722,7 +17710,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $2 + local.get $9 i32.const 134217727 i32.gt_u if @@ -17734,36 +17722,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $9 i32.const 8 - local.get $2 + local.get $9 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $7 + local.tee $0 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $10 i32.store offset=4 - local.get $3 - local.get $7 + local.get $10 + local.get $0 call $~lib/memory/memory.fill local.get $6 - local.get $3 + local.get $10 i32.store local.get $6 - local.get $3 + local.get $10 call $~lib/rt/itcms/__link local.get $6 - local.get $3 + local.get $10 i32.store offset=4 local.get $6 - local.get $7 + local.get $0 i32.store offset=8 local.get $6 - local.get $2 + local.get $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -17773,57 +17761,58 @@ local.get $6 i32.store loop $for-loop|01 - local.get $2 - local.get $8 + local.get $5 + local.get $7 i32.gt_s if - local.get $11 local.get $8 + local.get $7 i32.const 4 i32.shl i32.add - local.tee $3 + local.tee $0 i32.load offset=12 i32.const 1 i32.and i32.eqz if + local.get $2 + local.tee $1 + i32.const 1 + i32.add + local.set $2 local.get $6 + local.get $1 local.get $0 - local.get $3 i64.load call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $8 + local.get $7 i32.const 1 i32.add - local.set $8 + local.set $7 br $for-loop|01 end end local.get $6 - local.get $0 + local.get $2 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity local.get $6 - 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 $9 + local.get $13 local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 call $~lib/map/Map#values - local.tee $14 + local.tee $17 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.tee $2 @@ -17835,41 +17824,41 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i32.const 0 i32.store - local.get $3 + local.get $1 i32.const 24 i32.const 25 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/rt/itcms/__link - local.get $3 + local.get $5 i32.const 3 i32.store offset=4 - local.get $3 + local.get $5 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/rt/itcms/__link - local.get $3 + local.get $5 i32.const 4 i32.store offset=12 - local.get $3 + local.get $5 i32.const 0 i32.store offset=16 - local.get $3 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -17877,19 +17866,19 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - local.get $3 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $11 + local.tee $14 i32.store offset=16 loop $for-loop|2 - local.get $10 + local.get $12 local.get $6 i32.load offset=12 i32.lt_s if - local.get $10 + local.get $12 local.get $6 i32.load offset=12 i32.ge_u @@ -17903,18 +17892,18 @@ end local.get $6 i32.load offset=4 - local.get $10 + local.get $12 i32.const 3 i32.shl i32.add i64.load - local.set $4 - local.get $14 - local.get $10 + local.set $3 + local.get $17 + local.get $12 call $~lib/array/Array#__get - local.set $12 - local.get $5 + local.set $15 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -17925,8 +17914,8 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $12 + local.get $4 + local.get $15 i32.const 20 i32.sub i64.extend_i32_s @@ -17951,7 +17940,15 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $5 + i32.load + local.get $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17961,54 +17958,44 @@ 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 $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor - local.tee $0 - local.set $15 - local.get $3 - i32.load - local.get $0 - local.get $3 + local.tee $9 + local.get $5 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $7 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $0 + local.get $7 if - local.get $0 + local.get $7 i32.load offset=16 local.tee $1 i32.const 1 @@ -18016,8 +18003,8 @@ if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $3 + local.get $7 i64.load i64.eq end @@ -18025,28 +18012,28 @@ local.get $1 i32.const -2 i32.and - local.set $0 + local.set $7 br $while-continue|0 end end i32.const 0 - local.set $0 + local.set $7 end - local.get $0 + local.get $7 if - local.get $0 - local.get $4 + local.get $7 + local.get $3 i64.store offset=8 else - local.get $3 + local.get $5 i32.load offset=16 - local.get $3 + local.get $5 i32.load offset=12 i32.eq if - local.get $3 + local.get $5 i32.load offset=20 - local.get $3 + local.get $5 i32.load offset=12 i32.const 3 i32.mul @@ -18054,17 +18041,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + local.get $5 i32.load offset=4 else - local.get $3 + local.get $5 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $8 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -18074,102 +18061,102 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 - local.get $8 + local.get $1 + local.get $2 i32.const 1 i32.add - local.tee $0 + local.tee $1 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $16 + local.tee $10 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=4 - local.get $3 + local.get $5 i32.load offset=8 - local.tee $7 - local.get $3 + local.tee $11 + local.get $5 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $17 + local.set $13 local.get $1 local.set $0 loop $while-continue|00 - local.get $7 - local.get $17 + local.get $11 + local.get $13 i32.ne if - local.get $7 + local.get $11 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $7 + local.get $11 i64.load - local.tee $13 + local.tee $16 i64.store local.get $0 - local.get $7 + local.get $11 i64.load offset=8 i64.store offset=8 local.get $0 - local.get $9 - local.get $8 - local.get $13 + local.get $7 + local.get $2 + local.get $16 + i64.const 32 + i64.shr_u i32.wrap_i64 i32.const -1028477379 i32.mul - i32.const 374761401 - i32.add + local.get $16 + 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 $13 - 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 - local.get $2 + local.tee $8 + local.get $8 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u i32.xor @@ -18177,10 +18164,10 @@ i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $8 i32.load i32.store offset=16 - local.get $2 + local.get $8 local.get $0 i32.store local.get $0 @@ -18188,33 +18175,33 @@ i32.add local.set $0 end - local.get $7 + local.get $11 i32.const 24 i32.add - local.set $7 + local.set $11 br $while-continue|00 end end - local.get $3 - local.get $9 + local.get $5 + local.get $7 i32.store - local.get $3 - local.get $9 + local.get $5 + local.get $7 call $~lib/rt/itcms/__link - local.get $3 - local.get $8 + local.get $5 + local.get $2 i32.store offset=4 - local.get $3 + local.get $5 local.get $1 i32.store offset=8 - local.get $3 + local.get $5 local.get $1 call $~lib/rt/itcms/__link - local.get $3 - local.get $16 + local.get $5 + local.get $10 i32.store offset=12 - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -18223,70 +18210,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.load offset=8 - local.tee $0 + local.tee $2 i32.store - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.load offset=16 - local.tee $8 + local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $0 - local.get $8 + local.get $2 + local.get $1 i32.const 24 i32.mul i32.add - local.tee $0 - local.get $4 - i64.store - local.get $0 - local.get $4 - i64.store offset=8 + local.tee $2 local.get $3 + i64.store + local.get $2 local.get $3 + i64.store offset=8 + local.get $5 + local.get $5 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $0 - local.get $3 + local.get $2 + local.get $5 i32.load - local.get $15 - local.get $3 + local.get $9 + local.get $5 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $1 i32.load i32.store offset=16 + local.get $1 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 $11 - local.get $12 + local.get $14 + local.get $15 i32.const 20 i32.sub - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 call $~lib/map/Map#set - local.get $10 + local.get $12 i32.const 1 i32.add - local.set $10 + local.set $12 br $for-loop|2 end end - local.get $3 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -18298,7 +18285,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $14 i32.load offset=20 i32.const 100 i32.ne @@ -18311,14 +18298,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|3 - local.get $4 + local.get $3 i64.const 50 i64.lt_u if - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -18329,10 +18316,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 20 i32.add @@ -18345,11 +18332,11 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#delete - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -18359,14 +18346,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|3 end end - local.get $5 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -18379,14 +18366,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|4 - local.get $4 + local.get $3 i64.const 50 i64.lt_u if - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -18396,15 +18383,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 local.get $4 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -18415,11 +18402,11 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#delete - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -18429,14 +18416,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|4 end end - local.get $5 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -18448,9 +18435,9 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 call $~lib/map/Map#clear - local.get $5 + local.get $4 i32.load offset=20 if i32.const 0 @@ -18846,7 +18833,7 @@ (local $3 f32) (local $4 i32) (local $5 i32) - (local $6 f32) + (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) @@ -18854,7 +18841,7 @@ (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 i32) + (local $14 f32) (local $15 i32) (local $16 i32) (local $17 i32) @@ -18886,41 +18873,41 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i32.const 0 i32.store - local.get $0 + local.get $4 i32.const 24 i32.const 26 call $~lib/rt/itcms/__new - local.tee $17 + local.tee $4 i32.store - local.get $17 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $5 i32.store - local.get $17 - local.get $0 + local.get $4 + local.get $5 call $~lib/rt/itcms/__link - local.get $17 + local.get $4 i32.const 3 i32.store offset=4 - local.get $17 + local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $5 i32.store offset=8 - local.get $17 - local.get $0 + local.get $4 + local.get $5 call $~lib/rt/itcms/__link - local.get $17 + local.get $4 i32.const 4 i32.store offset=12 - local.get $17 + local.get $4 i32.const 0 i32.store offset=16 - local.get $17 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -18928,18 +18915,18 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $17 + local.get $4 i32.store loop $for-loop|0 - local.get $6 + local.get $3 f32.const 100 f32.lt if - local.get $17 + local.get $4 i32.load - local.get $17 + local.get $4 i32.load offset=4 - local.get $6 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -18980,19 +18967,19 @@ if local.get $1 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $3 local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $5 + local.get $6 i32.const -2 i32.and local.set $1 @@ -19011,18 +18998,18 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $6 - local.get $6 + local.get $4 + local.get $3 + local.get $3 i32.trunc_f32_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $17 + local.get $4 i32.load - local.get $17 + local.get $4 i32.load offset=4 - local.get $6 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19063,19 +19050,19 @@ if local.get $1 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $3 local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $5 + local.get $6 i32.const -2 i32.and local.set $1 @@ -19095,10 +19082,10 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $6 + local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $6 + local.get $3 i32.trunc_f32_s i32.const 10 i32.add @@ -19111,14 +19098,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 f32.const 1 f32.add - local.set $6 + local.set $3 br $for-loop|0 end end - local.get $17 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -19131,17 +19118,17 @@ unreachable end f32.const 0 - local.set $6 + local.set $3 loop $for-loop|1 - local.get $6 + local.get $3 f32.const 100 f32.lt if - local.get $17 + local.get $4 i32.load - local.get $17 + local.get $4 i32.load offset=4 - local.get $6 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19182,19 +19169,19 @@ if local.get $1 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $3 local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $5 + local.get $6 i32.const -2 i32.and local.set $1 @@ -19214,10 +19201,10 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $6 + local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $6 + local.get $3 i32.trunc_f32_s i32.const 10 i32.add @@ -19230,18 +19217,18 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $6 - local.get $6 + local.get $4 + local.get $3 + local.get $3 i32.trunc_f32_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $17 + local.get $4 i32.load - local.get $17 + local.get $4 i32.load offset=4 - local.get $6 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19282,19 +19269,19 @@ if local.get $1 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $3 local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $5 + local.get $6 i32.const -2 i32.and local.set $1 @@ -19314,10 +19301,10 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $6 + local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $6 + local.get $3 i32.trunc_f32_s i32.const 20 i32.add @@ -19330,14 +19317,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 f32.const 1 f32.add - local.set $6 + local.set $3 br $for-loop|1 end end - local.get $17 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -19350,7 +19337,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $13 + local.tee $11 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -19359,17 +19346,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $7 i32.const 0 i32.store - local.get $17 + local.get $4 i32.load offset=8 - local.set $11 - local.get $17 + local.set $12 + local.get $4 i32.load offset=16 - local.set $5 - local.get $1 - local.tee $0 + local.tee $13 + local.set $1 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -19378,31 +19365,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $5 i64.const 0 i64.store - local.get $1 + local.get $5 i32.const 16 i32.const 27 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $6 i32.store - local.get $1 + local.get $6 i32.const 0 i32.store - local.get $1 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $6 i32.const 0 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 i32.store offset=8 - local.get $1 + local.get $6 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 268435455 i32.gt_u if @@ -19414,74 +19401,74 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.const 8 - local.get $5 + local.get $1 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $15 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $16 + local.tee $5 i32.store offset=4 - local.get $16 - local.get $15 + local.get $5 + local.get $9 call $~lib/memory/memory.fill - local.get $1 - local.get $16 + local.get $6 + local.get $5 i32.store - local.get $1 - local.get $16 + local.get $6 + local.get $5 call $~lib/rt/itcms/__link - local.get $1 - local.get $16 + local.get $6 + local.get $5 i32.store offset=4 - local.get $1 - local.get $15 + local.get $6 + local.get $9 i32.store offset=8 + local.get $6 local.get $1 - local.get $5 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 $1 + local.get $7 + local.get $6 i32.store loop $for-loop|01 - local.get $4 - local.get $5 + local.get $2 + local.get $13 i32.lt_s if - local.get $11 - local.get $4 + local.get $12 + local.get $2 i32.const 12 i32.mul i32.add - local.tee $16 + local.tee $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.add - local.set $2 - local.get $16 + local.set $0 + local.get $5 f32.load - local.set $6 - local.get $0 + local.set $3 local.get $1 + local.get $6 i32.load offset=12 i32.ge_u if - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -19492,57 +19479,56 @@ call $~lib/builtins/abort unreachable end + local.get $6 local.get $1 - local.get $0 i32.const 1 i32.add - local.tee $16 + local.tee $5 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity - local.get $1 - local.get $16 + local.get $6 + local.get $5 i32.store offset=12 end - local.get $1 + local.get $6 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $6 + local.get $3 f32.store end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|01 end end - local.get $1 - local.get $2 + local.get $6 + local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 - local.get $2 + local.get $6 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $13 - local.get $1 - local.tee $5 + local.get $11 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $4 call $~lib/map/Map#values - local.tee $9 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -19551,62 +19537,62 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 24 i32.const 28 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $5 i32.store - local.get $2 - local.get $0 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 i32.const 3 i32.store offset=4 - local.get $2 + local.get $1 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $5 i32.store offset=8 - local.get $2 - local.get $0 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 i32.const 4 i32.store offset=12 - local.get $2 + local.get $1 i32.const 0 i32.store offset=16 - local.get $2 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 local.get $1 - local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $12 - local.get $5 + local.get $10 + local.get $6 i32.load offset=12 i32.lt_s if - local.get $12 - local.get $5 + local.get $10 + local.get $6 i32.load offset=12 i32.ge_u if @@ -19617,23 +19603,23 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $6 i32.load offset=4 - local.get $12 + local.get $10 i32.const 2 i32.shl i32.add f32.load - local.set $6 - local.get $9 - local.get $12 + local.set $3 + local.get $13 + local.get $10 call $~lib/array/Array#__get - local.set $10 - local.get $17 + local.set $12 + local.get $4 i32.load - local.get $17 + local.get $4 i32.load offset=4 - local.get $6 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19643,22 +19629,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -19667,36 +19653,36 @@ i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $16 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 - local.get $1 + local.get $3 + local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $16 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|011 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -19706,15 +19692,15 @@ call $~lib/builtins/abort unreachable end - local.get $17 + local.get $4 i32.load - local.get $17 + local.get $4 i32.load offset=4 - local.get $10 + local.get $12 i32.const 20 i32.sub f32.convert_i32_s - local.tee $3 + local.tee $14 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19724,22 +19710,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -19748,36 +19734,36 @@ i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $16 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $14 + local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $16 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -19798,10 +19784,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 + local.get $1 i32.load - local.get $6 - local.tee $3 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19830,8 +19815,8 @@ i32.const 16 i32.shr_u i32.xor - local.tee $8 - local.get $2 + local.tee $15 + local.get $1 i32.load offset=4 i32.and i32.const 2 @@ -19845,7 +19830,7 @@ if local.get $0 i32.load offset=8 - local.tee $4 + local.tee $2 i32.const 1 i32.and if (result i32) @@ -19857,7 +19842,7 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find15 - local.get $4 + local.get $2 i32.const -2 i32.and local.set $0 @@ -19873,15 +19858,15 @@ local.get $3 f32.store offset=4 else - local.get $2 + local.get $1 i32.load offset=16 - local.get $2 + local.get $1 i32.load offset=12 i32.eq if - local.get $2 + local.get $1 i32.load offset=20 - local.get $2 + local.get $1 i32.load offset=12 i32.const 3 i32.mul @@ -19889,17 +19874,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $2 + local.get $1 i32.load offset=4 else - local.get $2 + local.get $1 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $16 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -19913,14 +19898,14 @@ i64.const 0 i64.store local.get $0 - local.get $16 + local.get $5 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $13 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -19928,47 +19913,47 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $16 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $2 i32.store offset=4 - local.get $2 + local.get $1 i32.load offset=8 - local.tee $15 - local.get $2 + local.tee $7 + local.get $1 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $1 - local.get $4 + local.set $17 + local.get $2 local.set $0 loop $while-continue|017 - local.get $1 - local.get $15 + local.get $7 + local.get $17 i32.ne if - local.get $15 + local.get $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $15 + local.get $7 f32.load - local.tee $6 + local.tee $14 f32.store local.get $0 - local.get $15 + local.get $7 f32.load offset=4 f32.store offset=4 local.get $0 - local.get $13 - local.get $16 - local.get $6 + local.get $9 + local.get $5 + local.get $14 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19978,22 +19963,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $14 - local.get $14 + local.tee $8 + local.get $8 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $14 - local.get $14 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $14 - local.get $14 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u i32.xor @@ -20001,10 +19986,10 @@ i32.const 2 i32.shl i32.add - local.tee $14 + local.tee $8 i32.load i32.store offset=8 - local.get $14 + local.get $8 local.get $0 i32.store local.get $0 @@ -20012,33 +19997,33 @@ i32.add local.set $0 end - local.get $15 + local.get $7 i32.const 12 i32.add - local.set $15 + local.set $7 br $while-continue|017 end end - local.get $2 - local.get $13 + local.get $1 + local.get $9 i32.store - local.get $2 - local.get $13 + local.get $1 + local.get $9 call $~lib/rt/itcms/__link - local.get $2 - local.get $16 + local.get $1 + local.get $5 i32.store offset=4 + local.get $1 local.get $2 - local.get $4 i32.store offset=8 + local.get $1 local.get $2 - local.get $4 call $~lib/rt/itcms/__link - local.get $2 - local.get $7 + local.get $1 + local.get $16 i32.store offset=12 - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -20047,19 +20032,19 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load offset=8 local.tee $0 i32.store - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.load offset=16 - local.tee $16 + local.tee $5 i32.const 1 i32.add i32.store offset=16 local.get $0 - local.get $16 + local.get $5 i32.const 12 i32.mul i32.add @@ -20069,26 +20054,26 @@ local.get $0 local.get $3 f32.store offset=4 - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $2 + local.get $1 i32.load - local.get $8 - local.get $2 + local.get $15 + local.get $1 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $5 i32.load i32.store offset=8 - local.get $1 + local.get $5 local.get $0 i32.store end @@ -20097,20 +20082,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $11 - local.get $10 + local.get $12 i32.const 20 i32.sub - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 call $~lib/map/Map#set - local.get $12 + local.get $10 i32.const 1 i32.add - local.set $12 + local.set $10 br $for-loop|2 end end - local.get $2 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -20135,17 +20120,17 @@ unreachable end f32.const 0 - local.set $6 + local.set $3 loop $for-loop|3 - local.get $6 + local.get $3 f32.const 50 f32.lt if - local.get $17 + local.get $4 i32.load - local.get $17 + local.get $4 i32.load offset=4 - local.get $6 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20186,19 +20171,19 @@ if local.get $1 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 $3 local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find19 - local.get $2 + local.get $5 i32.const -2 i32.and local.set $1 @@ -20218,10 +20203,10 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $6 + local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $6 + local.get $3 i32.trunc_f32_s i32.const 20 i32.add @@ -20234,14 +20219,14 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $6 + local.get $4 + local.get $3 call $~lib/map/Map#delete - local.get $17 + local.get $4 i32.load - local.get $17 + local.get $4 i32.load offset=4 - local.get $6 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20282,19 +20267,19 @@ if local.get $1 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 $3 local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find22 - local.get $2 + local.get $5 i32.const -2 i32.and local.set $1 @@ -20313,14 +20298,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 f32.const 1 f32.add - local.set $6 + local.set $3 br $for-loop|3 end end - local.get $17 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -20333,17 +20318,17 @@ unreachable end f32.const 0 - local.set $6 + local.set $3 loop $for-loop|4 - local.get $6 + local.get $3 f32.const 50 f32.lt if - local.get $17 + local.get $4 i32.load - local.get $17 + local.get $4 i32.load offset=4 - local.get $6 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20384,19 +20369,19 @@ if local.get $1 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 $3 local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find25 - local.get $2 + local.get $5 i32.const -2 i32.and local.set $1 @@ -20415,18 +20400,18 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $6 - local.get $6 + local.get $4 + local.get $3 + local.get $3 i32.trunc_f32_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $17 + local.get $4 i32.load - local.get $17 + local.get $4 i32.load offset=4 - local.get $6 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20467,19 +20452,19 @@ if local.get $1 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 $3 local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find28 - local.get $2 + local.get $5 i32.const -2 i32.and local.set $1 @@ -20499,14 +20484,14 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $6 + local.get $4 + local.get $3 call $~lib/map/Map#delete - local.get $17 + local.get $4 i32.load - local.get $17 + local.get $4 i32.load offset=4 - local.get $6 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20547,19 +20532,19 @@ if local.get $1 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 $3 local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find31 - local.get $2 + local.get $5 i32.const -2 i32.and local.set $1 @@ -20578,14 +20563,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 f32.const 1 f32.add - local.set $6 + local.set $3 br $for-loop|4 end end - local.get $17 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -20597,9 +20582,9 @@ call $~lib/builtins/abort unreachable end - local.get $17 + local.get $4 call $~lib/map/Map#clear - local.get $17 + local.get $4 i32.load offset=20 if i32.const 0 @@ -20632,6 +20617,12 @@ local.get $1 i64.reinterpret_f64 local.tee $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -20641,12 +20632,6 @@ 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 @@ -20797,6 +20782,12 @@ local.get $5 i64.reinterpret_f64 local.tee $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -20806,12 +20797,6 @@ 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 @@ -20895,6 +20880,12 @@ local.get $1 i64.reinterpret_f64 local.tee $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -20904,12 +20895,6 @@ 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 @@ -20992,6 +20977,12 @@ local.get $1 i64.reinterpret_f64 local.tee $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21001,12 +20992,6 @@ 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 @@ -21121,8 +21106,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 f64) + (local $3 f64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -21130,9 +21115,9 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i64) + (local $12 i32) (local $13 i32) - (local $14 i32) + (local $14 i64) (local $15 i32) (local $16 i32) (local $17 i32) @@ -21147,16 +21132,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $1 i64.const 0 i64.store - local.get $6 + local.get $1 i64.const 0 i64.store offset=8 - local.get $6 + local.get $1 i32.const 0 i32.store offset=16 - local.get $6 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21165,57 +21150,57 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 24 i32.const 29 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $5 i32.store + local.get $4 local.get $5 - local.get $2 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 i32.const 3 i32.store offset=4 - local.get $5 + local.get $4 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $5 i32.store offset=8 + local.get $4 local.get $5 - local.get $2 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 i32.const 4 i32.store offset=12 - local.get $5 + local.get $4 i32.const 0 i32.store offset=16 - local.get $5 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $5 + local.get $1 + local.get $4 i32.store loop $for-loop|0 - local.get $4 + local.get $3 f64.const 100 f64.lt if - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -21225,15 +21210,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 local.get $4 + local.get $3 + local.get $3 i32.trunc_f64_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -21244,10 +21229,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.trunc_f64_s i32.const 10 i32.add @@ -21260,14 +21245,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 f64.const 1 f64.add - local.set $4 + local.set $3 br $for-loop|0 end end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -21280,14 +21265,14 @@ unreachable end f64.const 0 - local.set $4 + local.set $3 loop $for-loop|1 - local.get $4 + local.get $3 f64.const 100 f64.lt if - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -21298,10 +21283,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.trunc_f64_s i32.const 10 i32.add @@ -21314,15 +21299,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 local.get $4 + local.get $3 + local.get $3 i32.trunc_f64_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -21333,10 +21318,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.trunc_f64_s i32.const 20 i32.add @@ -21349,14 +21334,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 f64.const 1 f64.add - local.set $4 + local.set $3 br $for-loop|1 end end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -21369,7 +21354,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $11 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21378,16 +21363,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $7 i32.const 0 i32.store - local.get $5 + local.get $4 i32.load offset=8 - local.set $0 - local.get $5 + local.set $12 + local.get $4 i32.load offset=16 - local.set $9 - local.get $2 + local.tee $13 + local.set $1 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -21396,31 +21382,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $5 i64.const 0 i64.store - local.get $6 + local.get $5 i32.const 16 i32.const 30 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store - local.get $7 + local.get $6 i32.const 0 i32.store - local.get $7 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link - local.get $7 + local.get $6 i32.const 0 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store offset=8 - local.get $7 + local.get $6 i32.const 0 i32.store offset=12 - local.get $9 + local.get $1 i32.const 134217727 i32.gt_u if @@ -21432,74 +21418,74 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $1 i32.const 8 - local.get $9 + local.get $1 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $6 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $5 i32.store offset=4 - local.get $10 - local.get $6 + local.get $5 + local.get $9 call $~lib/memory/memory.fill - local.get $7 - local.get $10 + local.get $6 + local.get $5 i32.store - local.get $7 - local.get $10 + local.get $6 + local.get $5 call $~lib/rt/itcms/__link - local.get $7 - local.get $10 + local.get $6 + local.get $5 i32.store offset=4 - local.get $7 local.get $6 - i32.store offset=8 - local.get $7 local.get $9 + i32.store offset=8 + local.get $6 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $7 + local.get $6 i32.store loop $for-loop|01 - local.get $8 - local.get $9 + local.get $2 + local.get $13 i32.lt_s if - local.get $0 - local.get $8 + local.get $12 + local.get $2 i32.const 4 i32.shl i32.add - local.tee $6 + local.tee $5 i32.load offset=12 i32.const 1 i32.and i32.eqz if - local.get $1 - local.tee $2 + local.get $0 + local.tee $1 i32.const 1 i32.add - local.set $1 - local.get $6 + local.set $0 + local.get $5 f64.load - local.set $4 - local.get $2 - local.get $7 + local.set $3 + local.get $1 + local.get $6 i32.load offset=12 i32.ge_u if - local.get $2 + local.get $1 i32.const 0 i32.lt_s if @@ -21510,56 +21496,56 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $2 + local.get $6 + local.get $1 i32.const 1 i32.add - local.tee $6 + local.tee $5 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity - local.get $7 local.get $6 + local.get $5 i32.store offset=12 end - local.get $7 + local.get $6 i32.load offset=4 - local.get $2 + local.get $1 i32.const 3 i32.shl i32.add - local.get $4 + local.get $3 f64.store end - local.get $8 + local.get $2 i32.const 1 i32.add - local.set $8 + local.set $2 br $for-loop|01 end end - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $7 + local.get $11 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 call $~lib/map/Map#values - local.tee $16 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21568,62 +21554,62 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 24 i32.const 31 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $5 i32.store - local.get $3 - local.get $2 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link - local.get $3 + local.get $1 i32.const 3 i32.store offset=4 - local.get $3 + local.get $1 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $5 i32.store offset=8 - local.get $3 - local.get $2 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link - local.get $3 + local.get $1 i32.const 4 i32.store offset=12 - local.get $3 + local.get $1 i32.const 0 i32.store offset=16 - local.get $3 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 local.get $1 - local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $14 + local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $11 - local.get $7 + local.get $10 + local.get $6 i32.load offset=12 i32.lt_s if - local.get $11 - local.get $7 + local.get $10 + local.get $6 i32.load offset=12 i32.ge_u if @@ -21634,20 +21620,20 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 i32.load offset=4 - local.get $11 + local.get $10 i32.const 3 i32.shl i32.add f64.load - local.set $4 - local.get $16 - local.get $11 + local.set $3 + local.get $13 + local.get $10 call $~lib/array/Array#__get - local.set $15 - local.get $5 + local.set $12 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -21658,8 +21644,8 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $15 + local.get $4 + local.get $12 i32.const 20 i32.sub f64.convert_i32_s @@ -21684,9 +21670,17 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $1 + i32.load + local.get $3 i64.reinterpret_f64 - local.tee $12 + local.tee $14 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $14 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21696,92 +21690,82 @@ i32.rotl i32.const 668265263 i32.mul - local.get $12 - 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 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor - local.tee $1 - local.set $17 - local.get $3 - i32.load + local.tee $15 local.get $1 - local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=16 - local.tee $6 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $1 + local.get $3 + local.get $0 f64.load f64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $6 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|0 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if - local.get $1 - local.get $4 + local.get $0 + local.get $3 f64.store offset=8 else - local.get $3 + local.get $1 i32.load offset=16 - local.get $3 + local.get $1 i32.load offset=12 i32.eq if - local.get $3 + local.get $1 i32.load offset=20 - local.get $3 + local.get $1 i32.load offset=12 i32.const 3 i32.mul @@ -21789,17 +21773,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + local.get $1 i32.load offset=4 else - local.get $3 + local.get $1 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -21809,68 +21793,74 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 - local.get $6 + local.get $0 + local.get $5 i32.const 1 i32.add - local.tee $1 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $13 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $9 + local.tee $16 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $1 i32.load offset=8 - local.tee $2 - local.get $3 + local.tee $7 + local.get $1 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $10 - local.get $1 + local.set $17 + local.get $2 local.set $0 loop $while-continue|00 - local.get $2 - local.get $10 + local.get $7 + local.get $17 i32.ne if - local.get $2 + local.get $7 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $2 + local.get $7 f64.load local.tee $18 f64.store local.get $0 - local.get $2 + local.get $7 f64.load offset=8 f64.store offset=8 local.get $0 - local.get $13 - local.get $6 + local.get $9 + local.get $5 local.get $18 i64.reinterpret_f64 - local.tee $12 + local.tee $14 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $14 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21880,12 +21870,6 @@ i32.rotl i32.const 668265263 i32.mul - local.get $12 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul i32.add i32.const 17 i32.rotl @@ -21925,33 +21909,33 @@ i32.add local.set $0 end - local.get $2 + local.get $7 i32.const 24 i32.add - local.set $2 + local.set $7 br $while-continue|00 end end - local.get $3 - local.get $13 + local.get $1 + local.get $9 i32.store - local.get $3 - local.get $13 + local.get $1 + local.get $9 call $~lib/rt/itcms/__link - local.get $3 - local.get $6 + local.get $1 + local.get $5 i32.store offset=4 - local.get $3 local.get $1 + local.get $2 i32.store offset=8 - local.get $3 local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $3 - local.get $9 + local.get $1 + local.get $16 i32.store offset=12 - local.get $3 - local.get $3 + local.get $1 + local.get $1 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -21960,70 +21944,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.load offset=8 - local.tee $6 + local.tee $0 i32.store - local.get $3 - local.get $3 + local.get $1 + local.get $1 i32.load offset=16 - local.tee $1 + local.tee $5 i32.const 1 i32.add i32.store offset=16 - local.get $6 - local.get $1 + local.get $0 + local.get $5 i32.const 24 i32.mul i32.add - local.tee $1 - local.get $4 - f64.store - local.get $1 - local.get $4 - f64.store offset=8 + local.tee $0 local.get $3 + f64.store + local.get $0 local.get $3 + f64.store offset=8 + local.get $1 + local.get $1 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 + local.get $0 local.get $1 - local.get $3 i32.load - local.get $17 - local.get $3 + local.get $15 + local.get $1 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $5 i32.load i32.store offset=16 - local.get $2 - local.get $1 + local.get $5 + 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 $14 - local.get $15 + local.get $11 + local.get $12 i32.const 20 i32.sub - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 call $~lib/map/Map#set - 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 $3 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -22035,7 +22019,7 @@ call $~lib/builtins/abort unreachable end - local.get $14 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -22048,14 +22032,14 @@ unreachable end f64.const 0 - local.set $4 + local.set $3 loop $for-loop|3 - local.get $4 + local.get $3 f64.const 50 f64.lt if - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -22066,10 +22050,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.trunc_f64_s i32.const 20 i32.add @@ -22082,11 +22066,11 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#delete - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -22096,14 +22080,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 f64.const 1 f64.add - local.set $4 + local.set $3 br $for-loop|3 end end - local.get $5 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -22116,14 +22100,14 @@ unreachable end f64.const 0 - local.set $4 + local.set $3 loop $for-loop|4 - local.get $4 + local.get $3 f64.const 50 f64.lt if - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -22133,15 +22117,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 local.get $4 + local.get $3 + local.get $3 i32.trunc_f64_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -22152,11 +22136,11 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#delete - local.get $5 local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -22166,14 +22150,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 f64.const 1 f64.add - local.set $4 + local.set $3 br $for-loop|4 end end - local.get $5 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -22185,9 +22169,9 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 call $~lib/map/Map#clear - local.get $5 + local.get $4 i32.load offset=20 if i32.const 0 @@ -22651,6 +22635,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22676,35 +22661,36 @@ local.get $2 local.get $0 i32.load offset=16 - local.tee $2 + local.tee $5 call $~lib/array/Array#constructor - local.tee $0 + local.tee $2 i32.store loop $for-loop|0 - local.get $2 local.get $3 - i32.gt_s + local.get $5 + i32.lt_s if local.get $4 local.get $3 i32.const 12 i32.mul i32.add - local.tee $5 + local.tee $6 i32.load offset=8 i32.const 1 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 $2 + local.get $0 + local.get $6 + i32.load offset=4 + call $~lib/array/Array#__set end local.get $3 i32.const 1 @@ -22713,19 +22699,19 @@ br $for-loop|0 end end - local.get $0 + local.get $2 local.get $1 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $0 + local.get $2 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 ) (func $~lib/map/Map#constructor (result i32) (local $0 i32) @@ -23705,6 +23691,12 @@ local.get $0 i32.load local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -23714,12 +23706,6 @@ 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 @@ -23873,6 +23859,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23898,35 +23885,36 @@ local.get $2 local.get $0 i32.load offset=16 - local.tee $2 + local.tee $5 call $~lib/array/Array#constructor - local.tee $0 + local.tee $2 i32.store loop $for-loop|0 - local.get $2 local.get $3 - i32.gt_s + local.get $5 + i32.lt_s if local.get $4 local.get $3 i32.const 4 i32.shl i32.add - local.tee $5 + local.tee $6 i32.load offset=12 i32.const 1 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 $2 + local.get $0 + local.get $6 + i32.load offset=8 + call $~lib/array/Array#__set end local.get $3 i32.const 1 @@ -23935,19 +23923,19 @@ br $for-loop|0 end end - local.get $0 + local.get $2 local.get $1 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $0 + local.get $2 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 ) (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) @@ -23974,6 +23962,12 @@ local.get $0 i32.load local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -23983,12 +23977,6 @@ 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 @@ -24340,6 +24328,12 @@ local.get $1 i64.reinterpret_f64 local.tee $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $5 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -24349,12 +24343,6 @@ i32.rotl i32.const 668265263 i32.mul - local.get $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul i32.add i32.const 17 i32.rotl diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index 88f95280d1..067e3a38df 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -1,12 +1,11 @@ (module (type $f64_=>_f64 (func (param f64) (result f64))) (type $f64_f64_f64_=>_i32 (func (param f64 f64 f64) (result i32))) - (type $f32_f32_f32_=>_i32 (func (param f32 f32 f32) (result i32))) (type $f32_=>_f32 (func (param f32) (result f32))) + (type $f32_f32_f32_=>_i32 (func (param f32 f32 f32) (result i32))) (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))) @@ -313,7 +313,8 @@ f64.ne return end - block $__inlined_func$std/math/ulperr + block $__inlined_func$std/math/ulperr (result f64) + f64.const 0 local.get $1 local.get $1 f64.ne @@ -322,15 +323,13 @@ local.get $0 f64.ne select - if - f64.const 0 - local.set $2 - br $__inlined_func$std/math/ulperr - end + br_if $__inlined_func$std/math/ulperr + drop local.get $0 local.get $1 f64.eq if + local.get $2 local.get $0 i64.reinterpret_f64 i64.const 63 @@ -343,8 +342,8 @@ i32.wrap_i64 i32.eq br_if $__inlined_func$std/math/ulperr + drop f64.const inf - local.set $2 br $__inlined_func$std/math/ulperr end local.get $0 @@ -385,9 +384,7 @@ call $~lib/math/NativeMath.scalbn local.get $2 f64.add - local.set $2 end - local.get $2 f64.abs f64.const 1.5 f64.ge @@ -415,7 +412,8 @@ f32.ne return end - block $__inlined_func$std/math/ulperrf + block $__inlined_func$std/math/ulperrf (result f32) + f32.const 0 local.get $1 local.get $1 f32.ne @@ -424,15 +422,13 @@ local.get $0 f32.ne select - if - f32.const 0 - local.set $2 - br $__inlined_func$std/math/ulperrf - end + br_if $__inlined_func$std/math/ulperrf + drop local.get $0 local.get $1 f32.eq if + local.get $2 local.get $0 i32.reinterpret_f32 i32.const 31 @@ -443,8 +439,8 @@ i32.shr_u i32.eq br_if $__inlined_func$std/math/ulperrf + drop f32.const inf - local.set $2 br $__inlined_func$std/math/ulperrf end local.get $0 @@ -558,9 +554,7 @@ f32.mul local.get $2 f32.add - local.set $2 end - local.get $2 f32.abs f32.const 1.5 f32.ge @@ -816,136 +810,61 @@ local.get $0 f64.add ) - (func $std/math/test_acosf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $~lib/math/NativeMathf.acos (param $0 f32) (result f32) + (local $1 f32) + (local $2 i32) (local $3 f32) (local $4 i32) - (local $5 i32) - (local $6 f32) - block $__inlined_func$~lib/math/NativeMathf.acos (result f32) - local.get $0 - i32.reinterpret_f32 - local.tee $5 - i32.const 2147483647 - i32.and - local.tee $4 + (local $5 f32) + local.get $0 + i32.reinterpret_f32 + local.tee $4 + i32.const 2147483647 + i32.and + local.tee $2 + i32.const 1065353216 + i32.ge_u + if + local.get $2 i32.const 1065353216 - i32.ge_u + i32.eq if local.get $4 - i32.const 1065353216 - i32.eq + i32.const 31 + i32.shr_u if f32.const 3.141592502593994 - local.get $5 - i32.const 31 - i32.shr_u - br_if $__inlined_func$~lib/math/NativeMathf.acos - drop - f32.const 0 - br $__inlined_func$~lib/math/NativeMathf.acos + return end f32.const 0 - local.get $0 - local.get $0 - f32.sub - f32.div - br $__inlined_func$~lib/math/NativeMathf.acos - end - local.get $4 - i32.const 1056964608 - i32.lt_u - if - f32.const 1.570796251296997 - local.get $4 - i32.const 847249408 - i32.le_u - br_if $__inlined_func$~lib/math/NativeMathf.acos - drop - f32.const 1.570796251296997 - local.get $0 - f32.const 7.549789415861596e-08 - local.get $0 - local.get $0 - local.get $0 - f32.mul - local.tee $0 - local.get $0 - local.get $0 - f32.const -0.008656363002955914 - f32.mul - f32.const -0.04274342209100723 - f32.add - f32.mul - f32.const 0.16666586697101593 - f32.add - f32.mul - local.get $0 - f32.const -0.7066296339035034 - f32.mul - f32.const 1 - f32.add - f32.div - f32.mul - f32.sub - f32.sub - f32.sub - br $__inlined_func$~lib/math/NativeMathf.acos + return end - local.get $5 - i32.const 31 - i32.shr_u + f32.const 0 + local.get $0 + local.get $0 + f32.sub + f32.div + return + end + local.get $2 + i32.const 1056964608 + i32.lt_u + if + local.get $2 + i32.const 847249408 + i32.le_u if f32.const 1.570796251296997 - local.get $0 - f32.const 0.5 - f32.mul - f32.const 0.5 - f32.add - local.tee $0 - f32.sqrt - local.tee $3 - local.get $0 - local.get $0 - local.get $0 - f32.const -0.008656363002955914 - f32.mul - f32.const -0.04274342209100723 - f32.add - f32.mul - f32.const 0.16666586697101593 - f32.add - f32.mul - local.get $0 - f32.const -0.7066296339035034 - f32.mul - f32.const 1 - f32.add - f32.div - local.get $3 - f32.mul - f32.const 7.549789415861596e-08 - f32.sub - f32.add - f32.sub - local.tee $0 - local.get $0 - f32.add - br $__inlined_func$~lib/math/NativeMathf.acos + return end - f32.const 0.5 + f32.const 1.570796251296997 + local.get $0 + f32.const 7.549789415861596e-08 + local.get $0 + local.get $0 local.get $0 - f32.const 0.5 f32.mul - f32.sub local.tee $0 - f32.sqrt - local.tee $6 - i32.reinterpret_f32 - i32.const -4096 - i32.and - f32.reinterpret_i32 - local.tee $3 - local.get $0 local.get $0 local.get $0 f32.const -0.008656363002955914 @@ -962,26 +881,98 @@ f32.const 1 f32.add f32.div - local.get $6 f32.mul + f32.sub + f32.sub + f32.sub + return + end + local.get $4 + i32.const 31 + i32.shr_u + if + f32.const 1.570796251296997 local.get $0 - local.get $3 - local.get $3 + f32.const 0.5 f32.mul - f32.sub - local.get $6 - local.get $3 + f32.const 0.5 f32.add - f32.div + local.tee $0 + f32.sqrt + local.tee $1 + local.get $0 + local.get $0 + local.get $0 + f32.const -0.008656363002955914 + f32.mul + f32.const -0.04274342209100723 f32.add + f32.mul + f32.const 0.16666586697101593 f32.add - local.tee $0 + f32.mul local.get $0 + f32.const -0.7066296339035034 + f32.mul + f32.const 1 + f32.add + f32.div + local.get $1 + f32.mul + f32.const 7.549789415861596e-08 + f32.sub f32.add + f32.sub + f32.const 2 + f32.mul + return end + f32.const 0.5 + local.get $0 + f32.const 0.5 + f32.mul + f32.sub + local.tee $1 + f32.sqrt + local.tee $5 + i32.reinterpret_f32 + i32.const -4096 + i32.and + f32.reinterpret_i32 + local.tee $3 local.get $1 - local.get $2 - call $std/math/check + local.tee $0 + local.get $0 + local.get $0 + f32.const -0.008656363002955914 + f32.mul + f32.const -0.04274342209100723 + f32.add + f32.mul + f32.const 0.16666586697101593 + f32.add + f32.mul + local.get $0 + f32.const -0.7066296339035034 + f32.mul + f32.const 1 + f32.add + f32.div + local.get $5 + f32.mul + local.get $0 + local.get $3 + local.get $3 + f32.mul + f32.sub + local.get $5 + local.get $3 + f32.add + f32.div + f32.add + f32.add + f32.const 2 + f32.mul ) (func $~lib/math/NativeMath.log1p (param $0 f64) (result f64) (local $1 f64) @@ -1187,8 +1178,8 @@ (local $3 f64) (local $4 i32) (local $5 f64) - (local $6 i64) - (local $7 i32) + (local $6 i32) + (local $7 i64) block $~lib/util/math/log_lut|inlined.0 (result f64) local.get $0 i64.reinterpret_f64 @@ -1338,7 +1329,7 @@ local.get $1 i64.const 4604367669032910848 i64.sub - local.tee $6 + local.tee $7 i64.const 45 i64.shr_u i64.const 127 @@ -1346,30 +1337,11 @@ i32.wrap_i64 i32.const 4 i32.shl - local.tee $7 - i32.const 3136 + local.tee $6 + i32.const 1088 i32.add local.set $4 - local.get $1 - local.get $6 - i64.const -4503599627370496 - i64.and - i64.sub - f64.reinterpret_i64 - local.get $4 - f64.load - f64.sub - local.get $4 - f64.load offset=8 - f64.sub local.get $7 - i32.const 1088 - i32.add - local.tee $4 - f64.load - f64.mul - local.set $0 - local.get $6 i64.const 52 i64.shr_s f64.convert_i64_s @@ -1380,7 +1352,25 @@ f64.load offset=8 f64.add local.tee $5 - local.get $0 + local.get $1 + local.get $7 + i64.const -4503599627370496 + i64.and + i64.sub + f64.reinterpret_i64 + local.get $6 + i32.const 3136 + i32.add + local.tee $6 + f64.load + f64.sub + local.get $6 + f64.load offset=8 + f64.sub + local.get $4 + f64.load + f64.mul + local.tee $0 f64.add local.set $2 local.get $5 @@ -1426,17 +1416,19 @@ (local $4 i64) block $__inlined_func$~lib/math/NativeMath.acosh (result f64) local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.div - local.get $0 + local.tee $3 i64.reinterpret_f64 local.tee $4 i64.const 4607182418800017408 i64.lt_s - br_if $__inlined_func$~lib/math/NativeMath.acosh - drop + if + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.div + br $__inlined_func$~lib/math/NativeMath.acosh + end local.get $4 i64.const 52 i64.shr_u @@ -1446,7 +1438,7 @@ i64.const 1024 i64.lt_u if - local.get $0 + local.get $3 f64.const 1 f64.sub local.tee $3 @@ -1466,13 +1458,13 @@ i64.const 1049 i64.lt_u if - local.get $0 - local.get $0 + local.get $3 + local.get $3 f64.add f64.const 1 - local.get $0 - local.get $0 - local.get $0 + local.get $3 + local.get $3 + local.get $3 f64.mul f64.const 1 f64.sub @@ -1483,7 +1475,7 @@ call $~lib/math/NativeMath.log br $__inlined_func$~lib/math/NativeMath.acosh end - local.get $0 + local.get $3 call $~lib/math/NativeMath.log f64.const 0.6931471805599453 f64.add @@ -1675,9 +1667,9 @@ (local $1 i32) (local $2 f64) (local $3 i32) - (local $4 f64) - (local $5 f32) - (local $6 i32) + (local $4 i32) + (local $5 f64) + (local $6 f32) block $~lib/util/math/logf_lut|inlined.0 (result f32) local.get $0 i32.reinterpret_f32 @@ -1703,8 +1695,8 @@ local.get $0 local.get $0 f32.sub - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 f32.div i32.const 1 local.get $1 @@ -1734,7 +1726,11 @@ i32.shr_u i32.const 15 i32.and - local.set $6 + i32.const 4 + i32.shl + i32.const 5184 + i32.add + local.set $4 local.get $1 local.get $3 i32.const -8388608 @@ -1742,12 +1738,7 @@ i32.sub f32.reinterpret_i32 f64.promote_f32 - local.get $6 - i32.const 4 - i32.shl - i32.const 5184 - i32.add - local.tee $1 + local.get $4 f64.load f64.mul f64.const 1 @@ -1755,19 +1746,19 @@ local.tee $2 local.get $2 f64.mul - local.set $4 + local.set $5 local.get $2 f64.const 0.333456765744066 f64.mul f64.const -0.4999997485802103 f64.add - local.get $4 + local.get $5 f64.const -0.25089342214237154 f64.mul f64.add - local.get $4 + local.get $5 f64.mul - local.get $1 + local.get $4 f64.load offset=8 local.get $3 i32.const 23 @@ -2056,94 +2047,60 @@ end local.get $0 ) - (func $std/math/test_asinf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 i32) - (local $4 f32) - (local $5 f64) - block $__inlined_func$~lib/math/NativeMathf.asin - local.get $0 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $3 + (func $~lib/math/NativeMathf.asin (param $0 f32) (result f32) + (local $1 i32) + (local $2 f32) + (local $3 f64) + local.get $0 + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.tee $1 + i32.const 1065353216 + i32.ge_u + if + local.get $1 i32.const 1065353216 - i32.ge_u + i32.eq if - local.get $3 - i32.const 1065353216 - i32.eq - if - local.get $0 - f32.const 1.5707963705062866 - f32.mul - f32.const 7.52316384526264e-37 - f32.add - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.asin - end - f32.const 0 - local.get $0 local.get $0 - f32.sub - f32.div - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.asin + f32.const 1.5707963705062866 + f32.mul + f32.const 7.52316384526264e-37 + f32.add + return end - local.get $3 - i32.const 1056964608 + f32.const 0 + local.get $0 + local.get $0 + f32.sub + f32.div + return + end + local.get $1 + i32.const 1056964608 + i32.lt_u + if + local.get $1 + i32.const 8388608 + i32.ge_u + i32.const 0 + local.get $1 + i32.const 964689920 i32.lt_u + select if - local.get $3 - i32.const 8388608 - i32.ge_u - i32.const 0 - local.get $3 - i32.const 964689920 - i32.lt_u - select - br_if $__inlined_func$~lib/math/NativeMathf.asin - local.get $0 - local.get $0 - local.get $0 - local.get $0 - f32.mul - local.tee $0 - local.get $0 - local.get $0 - f32.const -0.008656363002955914 - f32.mul - f32.const -0.04274342209100723 - f32.add - f32.mul - f32.const 0.16666586697101593 - f32.add - f32.mul local.get $0 - f32.const -0.7066296339035034 - f32.mul - f32.const 1 - f32.add - f32.div - f32.mul - f32.add - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.asin + return end - f64.const 1.5707963705062866 - f32.const 0.5 local.get $0 - f32.abs - f32.const 0.5 + local.get $0 + local.get $0 + local.get $0 f32.mul - f32.sub - local.tee $4 - f64.promote_f32 - f64.sqrt - local.tee $5 - local.get $5 - local.get $4 - local.get $4 - local.get $4 + local.tee $0 + local.get $0 + local.get $0 f32.const -0.008656363002955914 f32.mul f32.const -0.04274342209100723 @@ -2152,50 +2109,77 @@ f32.const 0.16666586697101593 f32.add f32.mul - local.get $4 + local.get $0 f32.const -0.7066296339035034 f32.mul f32.const 1 f32.add f32.div - f64.promote_f32 - f64.mul - f64.add - local.tee $5 - local.get $5 - f64.add - f64.sub - f32.demote_f64 - local.get $0 - f32.copysign - local.set $0 + f32.mul + f32.add + return end + f64.const 1.5707963705062866 + f32.const 0.5 local.get $0 - local.get $1 + f32.abs + f32.const 0.5 + f32.mul + f32.sub + local.tee $2 + f64.promote_f32 + f64.sqrt + local.tee $3 + local.get $3 local.get $2 - call $std/math/check + local.get $2 + local.get $2 + f32.const -0.008656363002955914 + f32.mul + f32.const -0.04274342209100723 + f32.add + f32.mul + f32.const 0.16666586697101593 + f32.add + f32.mul + local.get $2 + f32.const -0.7066296339035034 + f32.mul + f32.const 1 + f32.add + f32.div + f64.promote_f32 + f64.mul + f64.add + f64.const 2 + f64.mul + f64.sub + f32.demote_f64 + local.get $0 + f32.copysign ) (func $std/math/test_asinh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 f64) (local $4 i64) + (local $5 i64) local.get $0 - local.tee $3 i64.reinterpret_f64 - local.tee $4 - i64.const 9223372036854775807 - i64.and - f64.reinterpret_i64 - local.set $0 - local.get $4 + local.tee $5 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $4 + local.set $4 + local.get $5 + i64.const 9223372036854775807 + i64.and + f64.reinterpret_i64 + local.set $3 + local.get $4 i64.const 1049 i64.ge_u if (result f64) - local.get $0 + local.get $3 call $~lib/math/NativeMath.log f64.const 0.6931471805599453 f64.add @@ -2204,17 +2188,17 @@ i64.const 1024 i64.ge_u if (result f64) - local.get $0 - local.get $0 + local.get $3 + local.get $3 f64.add f64.const 1 - local.get $0 - local.get $0 + local.get $3 + local.get $3 f64.mul f64.const 1 f64.add f64.sqrt - local.get $0 + local.get $3 f64.add f64.div f64.add @@ -2224,12 +2208,12 @@ i64.const 997 i64.ge_u if (result f64) - local.get $0 - local.get $0 - local.get $0 + local.get $3 + local.get $3 + local.get $3 f64.mul - local.tee $0 - local.get $0 + local.tee $3 + local.get $3 f64.const 1 f64.add f64.sqrt @@ -2239,17 +2223,17 @@ f64.add call $~lib/math/NativeMath.log1p else - local.get $0 + local.get $3 end end end - local.get $3 + local.get $0 f64.copysign local.get $1 local.get $2 call $std/math/check if (result i32) - local.get $3 + local.get $0 call $~lib/bindings/Math/asinh local.get $1 local.get $2 @@ -2742,10 +2726,9 @@ (local $4 i64) (local $5 f64) local.get $0 - local.tee $3 f64.abs - local.set $0 - local.get $3 + local.set $3 + local.get $0 i64.reinterpret_f64 i64.const 52 i64.shr_u @@ -2759,15 +2742,15 @@ i64.const 991 i64.ge_u if (result f64) - local.get $0 - local.get $0 + local.get $3 + local.get $3 f64.add local.tee $5 local.get $5 - local.get $0 + local.get $3 f64.mul f64.const 1 - local.get $0 + local.get $3 f64.sub f64.div f64.add @@ -2775,28 +2758,27 @@ f64.const 0.5 f64.mul else - local.get $0 + local.get $3 end else - local.get $0 + local.get $3 f64.const 1 - local.get $0 + local.get $3 f64.sub f64.div - local.tee $0 - local.get $0 - f64.add + f64.const 2 + f64.mul call $~lib/math/NativeMath.log1p f64.const 0.5 f64.mul end - local.get $3 + local.get $0 f64.copysign local.get $1 local.get $2 call $std/math/check if (result i32) - local.get $3 + local.get $0 call $~lib/bindings/Math/atanh local.get $1 local.get $2 @@ -2844,9 +2826,8 @@ local.get $3 f32.sub f32.div - local.tee $3 - local.get $3 - f32.add + f32.const 2 + f32.mul call $~lib/math/NativeMathf.log1p f32.const 0.5 f32.mul @@ -2890,19 +2871,20 @@ i64.const 32 i64.shr_u i32.wrap_i64 - local.set $6 + local.set $7 local.get $8 i32.wrap_i64 local.get $4 i64.reinterpret_f64 local.tee $8 - i32.wrap_i64 - local.tee $10 - local.get $8 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $7 + local.set $6 + local.get $8 + i32.wrap_i64 + local.tee $10 + local.get $6 i32.const 1072693248 i32.sub i32.or @@ -2913,24 +2895,24 @@ local.set $1 br $__inlined_func$~lib/math/NativeMath.atan2 end - local.get $7 + local.get $6 i32.const 30 i32.shr_u i32.const 2 i32.and - local.get $6 + local.get $7 i32.const 31 i32.shr_u i32.or local.set $5 - local.get $7 + local.get $6 i32.const 2147483647 i32.and - local.set $7 - local.get $6 + local.set $6 + local.get $7 i32.const 2147483647 i32.and - local.tee $6 + local.tee $7 i32.or i32.eqz if @@ -2958,16 +2940,16 @@ end end block $folding-inner0 - local.get $7 + local.get $6 local.get $10 i32.or i32.eqz br_if $folding-inner0 - local.get $7 + local.get $6 i32.const 2146435072 i32.eq if - local.get $6 + local.get $7 i32.const 2146435072 i32.eq if (result f64) @@ -2996,18 +2978,18 @@ br $__inlined_func$~lib/math/NativeMath.atan2 end i32.const 1 - local.get $6 + local.get $7 i32.const 2146435072 i32.eq - local.get $6 local.get $7 + local.get $6 i32.const 67108864 i32.add i32.gt_u select br_if $folding-inner0 - local.get $7 local.get $6 + local.get $7 i32.const 67108864 i32.add i32.gt_u @@ -3085,11 +3067,12 @@ 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 + block $folding-inner0 i32.const 1 local.get $0 local.get $0 @@ -3102,144 +3085,124 @@ local.get $1 local.get $0 f32.add - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end - local.get $0 - i32.reinterpret_f32 - local.set $5 local.get $1 i32.reinterpret_f32 - local.tee $6 + local.tee $3 i32.const 1065353216 i32.eq if local.get $0 call $~lib/math/NativeMathf.atan - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end - local.get $6 + local.get $3 i32.const 30 i32.shr_u i32.const 2 i32.and - local.get $5 + local.get $0 + i32.reinterpret_f32 + local.tee $5 i32.const 31 i32.shr_u i32.or - local.set $4 - local.get $6 + local.set $2 + local.get $3 i32.const 2147483647 i32.and - local.set $6 + local.set $4 local.get $5 i32.const 2147483647 i32.and - local.tee $5 + local.tee $3 i32.eqz if block $break|0 block $case3|0 block $case2|0 - local.get $4 - i32.eqz - br_if $__inlined_func$~lib/math/NativeMathf.atan2 - block $tablify|0 - local.get $4 - i32.const 1 - i32.sub - br_table $__inlined_func$~lib/math/NativeMathf.atan2 $case2|0 $case3|0 $tablify|0 + block $case1|0 + local.get $2 + i32.eqz + br_if $case1|0 + block $tablify|0 + local.get $2 + i32.const 1 + i32.sub + br_table $case1|0 $case2|0 $case3|0 $tablify|0 + end + br $break|0 end - br $break|0 + local.get $0 + return end f32.const 3.1415927410125732 - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end f32.const -3.1415927410125732 - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end end - local.get $6 + local.get $4 i32.eqz - if - f32.const -1.5707963705062866 - f32.const 1.5707963705062866 - local.get $4 - i32.const 1 - i32.and - select - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.atan2 - end - local.get $6 + br_if $folding-inner0 + local.get $4 i32.const 2139095040 i32.eq if - local.get $5 + local.get $3 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 - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end i32.const 1 - local.get $5 + local.get $3 i32.const 2139095040 i32.eq - local.get $5 - local.get $6 + local.get $3 + local.get $4 i32.const 218103808 i32.add i32.gt_u select - if - f32.const -1.5707963705062866 - f32.const 1.5707963705062866 - local.get $4 - i32.const 1 - i32.and - select - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.atan2 - end - local.get $6 - local.get $5 + br_if $folding-inner0 + local.get $4 + local.get $3 i32.const 218103808 i32.add i32.gt_u i32.const 0 - local.get $4 + local.get $2 i32.const 2 i32.and select @@ -3257,179 +3220,161 @@ block $case3|1 block $case2|1 block $case1|1 - local.get $4 + local.get $2 if - local.get $4 + local.get $2 i32.const 1 i32.sub br_table $case1|1 $case2|1 $case3|1 $break|1 end - br $__inlined_func$~lib/math/NativeMathf.atan2 + local.get $0 + return end local.get $0 f32.neg - local.set $0 - 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 - local.set $0 - 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 - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end unreachable end - local.get $0 + 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) + (func $~lib/math/NativeMath.cbrt (param $0 f64) (result f64) + (local $1 f64) + (local $2 i32) (local $3 f64) - (local $4 f64) - (local $5 i32) - (local $6 f64) - (local $7 i64) - block $__inlined_func$~lib/math/NativeMath.cbrt + (local $4 i64) + local.get $0 + i64.reinterpret_f64 + local.tee $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $2 + i32.const 2146435072 + i32.ge_u + if local.get $0 - local.tee $3 + local.get $0 + f64.add + return + end + local.get $2 + i32.const 1048576 + i32.lt_u + if (result i32) + local.get $0 + f64.const 18014398509481984 + f64.mul i64.reinterpret_f64 - local.tee $7 + local.tee $4 i64.const 32 i64.shr_u i32.wrap_i64 i32.const 2147483647 i32.and - local.tee $5 - i32.const 2146435072 - i32.ge_u + local.tee $2 + i32.eqz if - local.get $3 - local.get $3 - f64.add - local.set $3 - br $__inlined_func$~lib/math/NativeMath.cbrt + local.get $0 + return end - local.get $5 - i32.const 1048576 - i32.lt_u - if (result i32) - local.get $3 - f64.const 18014398509481984 - f64.mul - i64.reinterpret_f64 - local.tee $7 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 2147483647 - i32.and - local.tee $5 - i32.eqz - br_if $__inlined_func$~lib/math/NativeMath.cbrt - local.get $5 - i32.const 3 - i32.div_u - i32.const 696219795 - i32.add - else - local.get $5 - i32.const 3 - i32.div_u - i32.const 715094163 - i32.add - end - local.set $5 - local.get $7 - i64.const -9223372036854775808 - i64.and - local.get $5 - i64.extend_i32_u - i64.const 32 - i64.shl - i64.or - f64.reinterpret_i64 - local.tee $6 - local.get $6 - f64.mul - local.get $6 - local.get $3 - f64.div - f64.mul - local.set $4 - local.get $3 - local.get $6 - local.get $4 - local.get $4 - f64.const 1.6214297201053545 - f64.mul - f64.const -1.8849797954337717 - f64.add - f64.mul - f64.const 1.87595182427177 - f64.add - local.get $4 - local.get $4 - f64.mul - local.get $4 - f64.mul - local.get $4 - f64.const 0.14599619288661245 - f64.mul - f64.const -0.758397934778766 - f64.add - f64.mul - f64.add - f64.mul - i64.reinterpret_f64 - i64.const 2147483648 - i64.add - i64.const -1073741824 - i64.and - f64.reinterpret_i64 - local.tee $3 - local.get $3 - f64.mul - f64.div - local.set $4 - local.get $3 - local.get $3 - local.get $4 - local.get $3 - f64.sub - local.get $3 - local.get $3 - f64.add - local.get $4 - f64.add - f64.div - f64.mul - f64.add - local.set $3 - end - local.get $3 - local.get $1 - local.get $2 - call $std/math/check - if (result i32) - local.get $0 - call $~lib/bindings/Math/cbrt - local.get $1 local.get $2 - call $std/math/check + i32.const 3 + i32.div_u + i32.const 696219795 + i32.add else - i32.const 0 + local.get $2 + i32.const 3 + i32.div_u + i32.const 715094163 + i32.add end + i64.extend_i32_u + i64.const 32 + i64.shl + local.get $4 + i64.const -9223372036854775808 + i64.and + i64.or + f64.reinterpret_i64 + local.tee $3 + local.get $3 + f64.mul + local.get $3 + local.get $0 + f64.div + f64.mul + local.set $1 + local.get $0 + local.get $3 + local.get $1 + local.get $1 + f64.const 1.6214297201053545 + f64.mul + f64.const -1.8849797954337717 + f64.add + f64.mul + f64.const 1.87595182427177 + f64.add + local.get $1 + local.get $1 + f64.mul + local.get $1 + f64.mul + local.get $1 + f64.const 0.14599619288661245 + f64.mul + f64.const -0.758397934778766 + f64.add + f64.mul + f64.add + f64.mul + i64.reinterpret_f64 + i64.const 2147483648 + i64.add + i64.const -1073741824 + i64.and + f64.reinterpret_i64 + local.tee $0 + local.get $0 + f64.mul + f64.div + local.set $1 + local.get $0 + local.get $0 + local.get $1 + local.get $0 + f64.sub + local.get $0 + local.get $0 + f64.add + local.get $1 + f64.add + f64.div + f64.mul + f64.add ) (func $std/math/test_cbrtf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 f64) @@ -3438,7 +3383,10 @@ (local $6 f64) (local $7 i32) (local $8 f64) - block $__inlined_func$~lib/math/NativeMathf.cbrt + block $__inlined_func$~lib/math/NativeMathf.cbrt (result f32) + local.get $0 + local.get $0 + f32.add local.get $0 i32.reinterpret_f32 local.tee $7 @@ -3447,20 +3395,17 @@ local.tee $5 i32.const 2139095040 i32.ge_u - if - local.get $0 - local.get $0 - f32.add - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.cbrt - end + br_if $__inlined_func$~lib/math/NativeMathf.cbrt + drop local.get $5 i32.const 8388608 i32.lt_u if (result i32) + local.get $0 local.get $5 i32.eqz br_if $__inlined_func$~lib/math/NativeMathf.cbrt + drop local.get $0 f32.const 16777216 f32.mul @@ -3525,9 +3470,7 @@ f64.add f64.div f32.demote_f64 - local.set $0 end - local.get $0 local.get $1 local.get $2 call $std/math/check @@ -3540,12 +3483,11 @@ (local $5 i64) (local $6 i64) (local $7 i64) - (local $8 i64) - (local $9 i32) + (local $8 i32) + (local $9 i64) (local $10 i64) (local $11 i64) - (local $12 i64) - (local $13 f64) + (local $12 f64) local.get $0 i64.const 9223372036854775807 i64.and @@ -3553,11 +3495,7 @@ i64.shr_u i64.const 1045 i64.sub - local.tee $2 - i64.const 63 - i64.and - local.set $1 - local.get $2 + local.tee $3 i64.const 6 i64.shr_s i32.wrap_i64 @@ -3565,229 +3503,229 @@ i32.shl i32.const 5440 i32.add - local.tee $9 + local.tee $8 i64.load - local.set $2 - local.get $9 + local.set $5 + local.get $8 i64.load offset=8 - local.set $3 - local.get $9 + local.set $2 + local.get $8 i64.load offset=16 - local.set $4 - local.get $1 + local.set $1 + local.get $3 + i64.const 63 + i64.and + local.tee $3 i64.const 0 i64.ne - if (result i64) - local.get $2 - local.get $1 - i64.shl + if + local.get $5 local.get $3 + i64.shl + local.get $2 i64.const 64 - local.get $1 + local.get $3 i64.sub - local.tee $5 + local.tee $4 i64.shr_u i64.or - local.set $2 + local.set $5 + local.get $2 local.get $3 - local.get $1 i64.shl + local.get $1 local.get $4 - local.get $5 i64.shr_u i64.or - local.set $3 - local.get $4 + local.set $2 local.get $1 + local.get $3 i64.shl - local.get $9 + local.get $8 i64.load offset=24 - local.get $5 + local.get $4 i64.shr_u i64.or - else - local.get $4 + local.set $1 end - i64.const 32 - i64.shr_u + local.get $2 + i64.const 4294967295 + i64.and + local.tee $6 local.get $0 i64.const 4503599627370495 i64.and i64.const 4503599627370496 i64.or - local.tee $6 - i64.const 32 - i64.shr_u - i64.mul - local.set $7 - local.get $3 - i64.const 4294967295 - i64.and - local.tee $4 - local.get $6 + local.tee $3 i64.const 4294967295 i64.and - local.tee $1 + local.tee $7 i64.mul - local.set $8 - local.get $4 - local.get $6 + local.set $4 + local.get $7 + local.get $2 i64.const 32 i64.shr_u - local.tee $4 + local.tee $7 i64.mul - local.get $1 - local.get $3 + local.get $4 i64.const 32 i64.shr_u - local.tee $3 - i64.mul - local.get $8 + i64.add + local.tee $2 i64.const 32 i64.shr_u - i64.add - local.tee $1 + local.get $6 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $6 + i64.mul + local.get $2 i64.const 4294967295 i64.and i64.add - local.set $5 - local.get $3 - local.get $4 + local.set $2 + local.get $6 + local.get $7 i64.mul - local.get $1 + i64.add + local.get $2 i64.const 32 i64.shr_u i64.add + global.set $~lib/math/res128_hi + global.get $~lib/math/res128_hi + local.get $3 local.get $5 + i64.mul + i64.add + local.get $3 + i64.const 32 + i64.shr_s + local.get $1 i64.const 32 i64.shr_u - i64.add - global.set $~lib/math/res128_hi - local.get $7 - local.get $8 + i64.mul + local.tee $1 + local.get $4 i64.const 4294967295 i64.and - local.get $5 + local.get $2 i64.const 32 i64.shl i64.add i64.add - local.tee $1 - local.get $7 + local.tee $5 + local.get $1 i64.lt_u i64.extend_i32_u - global.get $~lib/math/res128_hi - local.get $2 - local.get $6 - i64.mul i64.add - i64.add - local.tee $4 + local.tee $7 i64.const 2 i64.shl - local.get $1 + local.get $5 i64.const 62 i64.shr_u i64.or - local.tee $11 + local.tee $3 i64.const 63 i64.shr_s - local.tee $12 - local.get $1 - i64.const 2 - i64.shl - i64.xor - local.set $6 - i64.const 64 - local.get $11 - local.get $12 + local.tee $1 i64.const 1 i64.shr_s + local.get $3 i64.xor - local.tee $2 + local.tee $4 i64.clz - local.tee $10 - i64.sub - local.set $1 + local.set $2 + local.get $4 local.get $2 - local.get $10 i64.shl - local.get $6 local.get $1 + local.get $5 + i64.const 2 + i64.shl + i64.xor + local.tee $9 + i64.const 64 + local.get $2 + i64.sub i64.shr_u i64.or - local.tee $7 + local.tee $5 i64.const 4294967295 i64.and - local.tee $1 - i64.const 560513588 - i64.mul - local.set $8 - local.get $7 - i64.const 32 - i64.shr_u - local.tee $2 + local.tee $6 i64.const 560513588 i64.mul - local.get $1 + local.set $4 + local.get $6 i64.const 3373259426 i64.mul - local.get $8 + local.get $4 i64.const 32 i64.shr_u i64.add - local.tee $1 + local.tee $6 + i64.const 32 + i64.shr_u + local.get $5 + i64.const 32 + i64.shr_u + local.tee $11 + i64.const 560513588 + i64.mul + local.get $6 i64.const 4294967295 i64.and i64.add - local.set $5 - local.get $2 + local.set $6 + local.get $11 i64.const 3373259426 i64.mul - local.get $1 - i64.const 32 - i64.shr_u i64.add - local.get $5 + local.get $6 i64.const 32 i64.shr_u i64.add global.set $~lib/math/res128_hi - local.get $8 + local.get $4 i64.const 4294967295 i64.and - local.get $5 + local.get $6 i64.const 32 i64.shl i64.add - local.tee $2 - local.get $7 + local.tee $4 + local.get $5 f64.convert_i64_u f64.const 3.753184150245214e-04 f64.mul - local.get $6 - local.get $10 + local.get $9 + local.get $2 i64.shl f64.convert_i64_u f64.const 3.834951969714103e-04 f64.mul f64.add i64.trunc_f64_u - local.tee $1 + local.tee $5 i64.lt_u i64.extend_i32_u global.get $~lib/math/res128_hi - local.tee $3 + local.tee $10 i64.const 11 i64.shr_u i64.add f64.convert_i64_u global.set $~lib/math/rempio2_y0 - local.get $1 - local.get $3 + local.get $5 + local.get $10 i64.const 53 i64.shl - local.get $2 + local.get $4 i64.const 11 i64.shr_u i64.or @@ -3798,83 +3736,88 @@ global.set $~lib/math/rempio2_y1 global.get $~lib/math/rempio2_y0 i64.const 4372995238176751616 - local.get $10 + local.get $2 i64.const 52 i64.shl i64.sub local.get $0 - local.get $11 + local.get $3 i64.xor i64.const -9223372036854775808 i64.and i64.or f64.reinterpret_i64 - local.tee $13 + local.tee $12 f64.mul global.set $~lib/math/rempio2_y0 global.get $~lib/math/rempio2_y1 - local.get $13 + local.get $12 f64.mul global.set $~lib/math/rempio2_y1 - local.get $4 + local.get $7 i64.const 62 i64.shr_s - local.get $12 + local.get $1 i64.sub i32.wrap_i64 ) (func $~lib/math/NativeMath.cos (param $0 f64) (result f64) (local $1 f64) - (local $2 i64) + (local $2 f64) (local $3 f64) - (local $4 f64) + (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 f64) + (local $7 f64) + (local $8 i64) + (local $9 f64) local.get $0 i64.reinterpret_f64 - local.tee $2 + local.tee $8 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $5 + local.tee $4 i32.const 31 i32.shr_u - local.set $6 - local.get $5 + local.set $5 + local.get $4 i32.const 2147483647 i32.and - local.tee $5 + local.tee $4 i32.const 1072243195 i32.le_u if - local.get $5 + local.get $4 i32.const 1044816030 i32.lt_u if f64.const 1 return end - f64.const 1 local.get $0 local.get $0 f64.mul - local.tee $3 + local.tee $1 + local.get $1 + f64.mul + local.set $3 + f64.const 1 + local.get $1 f64.const 0.5 f64.mul - local.tee $4 + local.tee $2 f64.sub - local.tee $1 + local.tee $7 f64.const 1 - local.get $1 + local.get $7 f64.sub - local.get $4 + local.get $2 f64.sub - local.get $3 - local.get $3 - local.get $3 - local.get $3 + local.get $1 + local.get $1 + local.get $1 + local.get $1 f64.const 2.480158728947673e-05 f64.mul f64.const -0.001388888888887411 @@ -3886,11 +3829,8 @@ local.get $3 local.get $3 f64.mul - local.tee $4 - local.get $4 - f64.mul - local.get $3 - local.get $3 + local.get $1 + local.get $1 f64.const -1.1359647557788195e-11 f64.mul f64.const 2.087572321298175e-09 @@ -3909,7 +3849,7 @@ f64.add return end - local.get $5 + local.get $4 i32.const 2146435072 i32.ge_u if @@ -3919,27 +3859,27 @@ return end block $~lib/math/rempio2|inlined.0 (result i32) - local.get $2 + local.get $8 i64.const 32 i64.shr_u i32.wrap_i64 i32.const 2147483647 i32.and - local.tee $7 + local.tee $6 i32.const 1073928572 i32.lt_u if i32.const 1 - local.set $5 - local.get $6 + local.set $4 + local.get $5 if (result f64) local.get $0 f64.const 1.5707963267341256 f64.add local.set $0 i32.const -1 - local.set $5 - local.get $7 + local.set $4 + local.get $6 i32.const 1073291771 i32.ne if (result f64) @@ -3955,11 +3895,11 @@ local.get $0 f64.const 6.077100506303966e-11 f64.add - local.tee $3 + local.tee $1 f64.const 2.0222662487959506e-21 f64.add local.set $0 - local.get $3 + local.get $1 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -3970,7 +3910,7 @@ f64.const 1.5707963267341256 f64.sub local.set $0 - local.get $7 + local.get $6 i32.const 1073291771 i32.ne if (result f64) @@ -3986,11 +3926,11 @@ local.get $0 f64.const 6.077100506303966e-11 f64.sub - local.tee $3 + local.tee $1 f64.const 2.0222662487959506e-21 f64.sub local.set $0 - local.get $3 + local.get $1 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -4000,17 +3940,17 @@ local.get $0 global.set $~lib/math/rempio2_y0 global.set $~lib/math/rempio2_y1 - local.get $5 + local.get $4 br $~lib/math/rempio2|inlined.0 end - local.get $7 + local.get $6 i32.const 1094263291 i32.lt_u if - local.get $7 + local.get $6 i32.const 20 i32.shr_u - local.tee $6 + local.tee $5 local.get $0 local.get $0 f64.const 0.6366197723675814 @@ -4024,7 +3964,7 @@ local.get $3 f64.const 6.077100506506192e-11 f64.mul - local.tee $4 + local.tee $2 f64.sub local.tee $1 i64.reinterpret_f64 @@ -4039,25 +3979,25 @@ i32.const 16 i32.gt_u if - local.get $3 - f64.const 2.0222662487959506e-21 - f64.mul - local.get $0 + local.get $5 local.get $0 + local.tee $1 local.get $3 f64.const 6.077100506303966e-11 f64.mul - local.tee $4 + local.tee $2 f64.sub local.tee $0 + local.get $3 + f64.const 2.0222662487959506e-21 + f64.mul + local.get $1 + local.get $0 f64.sub - local.get $4 + local.get $2 f64.sub f64.sub - local.set $4 - local.get $6 - local.get $0 - local.get $4 + local.tee $2 f64.sub local.tee $1 i64.reinterpret_f64 @@ -4071,37 +4011,35 @@ i32.sub i32.const 49 i32.gt_u - if (result f64) - local.get $3 - f64.const 8.4784276603689e-32 - f64.mul - local.get $0 + if local.get $0 + local.tee $1 local.get $3 f64.const 2.0222662487111665e-21 f64.mul - local.tee $4 + local.tee $2 f64.sub local.tee $0 + local.get $3 + f64.const 8.4784276603689e-32 + f64.mul + local.get $1 + local.get $0 f64.sub - local.get $4 + local.get $2 f64.sub f64.sub - local.set $4 - local.get $0 - local.get $4 + local.tee $2 f64.sub - else - local.get $1 + local.set $1 end - local.set $1 end local.get $1 global.set $~lib/math/rempio2_y0 local.get $0 local.get $1 f64.sub - local.get $4 + local.get $2 f64.sub global.set $~lib/math/rempio2_y1 local.get $3 @@ -4109,36 +4047,36 @@ br $~lib/math/rempio2|inlined.0 end i32.const 0 - local.get $2 + local.get $8 call $~lib/math/pio2_large_quot - local.tee $5 + local.tee $4 i32.sub + local.get $4 local.get $5 - local.get $6 select end - local.set $6 + local.set $5 global.get $~lib/math/rempio2_y0 - local.set $3 + local.set $1 global.get $~lib/math/rempio2_y1 - local.set $4 - local.get $6 + local.set $3 + local.get $5 i32.const 1 i32.and if (result f64) - local.get $3 - local.get $3 + local.get $1 + local.get $1 f64.mul local.tee $0 - local.get $3 + local.get $1 f64.mul - local.set $1 - local.get $3 + local.set $2 + local.get $1 local.get $0 - local.get $4 + local.get $3 f64.const 0.5 f64.mul - local.get $1 + local.get $2 local.get $0 local.get $0 f64.const 2.7557313707070068e-06 @@ -4163,28 +4101,32 @@ f64.mul f64.sub f64.mul - local.get $4 + local.get $3 f64.sub - local.get $1 + local.get $2 f64.const -0.16666666666666632 f64.mul f64.sub f64.sub else - f64.const 1 - local.get $3 - local.get $3 + local.get $1 + local.get $1 f64.mul local.tee $0 + local.get $0 + f64.mul + local.set $2 + f64.const 1 + local.get $0 f64.const 0.5 f64.mul - local.tee $1 + local.tee $7 f64.sub - local.tee $8 + local.tee $9 f64.const 1 - local.get $8 + local.get $9 f64.sub - local.get $1 + local.get $7 f64.sub local.get $0 local.get $0 @@ -4198,11 +4140,8 @@ f64.const 0.0416666666666666 f64.add f64.mul - local.get $0 - local.get $0 - f64.mul - local.tee $1 - local.get $1 + local.get $2 + local.get $2 f64.mul local.get $0 local.get $0 @@ -4216,8 +4155,8 @@ f64.mul f64.add f64.mul + local.get $1 local.get $3 - local.get $4 f64.mul f64.sub f64.add @@ -4226,7 +4165,7 @@ local.tee $0 f64.neg local.get $0 - local.get $6 + local.get $5 i32.const 1 i32.add i32.const 2 @@ -4234,33 +4173,30 @@ select ) (func $~lib/math/NativeMathf.cos (param $0 f32) (result f32) - (local $1 i32) - (local $2 i32) - (local $3 i64) - (local $4 i32) + (local $1 f64) + (local $2 f64) + (local $3 i32) + (local $4 f64) (local $5 i64) - (local $6 i64) - (local $7 i64) + (local $6 i32) + (local $7 i32) (local $8 i64) - (local $9 i32) - (local $10 f64) - (local $11 f64) - (local $12 f64) + (local $9 i64) block $folding-inner0 local.get $0 i32.reinterpret_f32 - local.tee $2 + local.tee $3 i32.const 31 i32.shr_u - local.set $9 - local.get $2 + local.set $6 + local.get $3 i32.const 2147483647 i32.and - local.tee $1 + local.tee $3 i32.const 1061752794 i32.le_u if - local.get $1 + local.get $3 i32.const 964689920 i32.lt_u if @@ -4269,53 +4205,53 @@ end local.get $0 f64.promote_f32 - local.tee $12 - local.get $12 + local.tee $1 + local.get $1 f64.mul - local.tee $11 - local.get $11 + local.tee $1 + local.get $1 f64.mul - local.set $12 + local.set $2 br $folding-inner0 end - local.get $1 + local.get $3 i32.const 1081824209 i32.le_u if - local.get $1 + local.get $3 i32.const 1075235811 i32.gt_u if local.get $0 f64.promote_f32 - local.tee $12 + local.tee $1 f64.const 3.141592653589793 f64.add - local.get $12 + local.get $1 f64.const 3.141592653589793 f64.sub - local.get $9 + local.get $6 select - local.tee $12 - local.get $12 + local.tee $1 + local.get $1 f64.mul - local.tee $11 - local.get $11 + local.tee $1 + local.get $1 f64.mul - local.set $12 - local.get $11 + local.set $2 + local.get $1 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $12 + local.get $2 f64.const 0.04166662332373906 f64.mul f64.add - local.get $12 - local.get $11 + local.get $2 + local.get $1 f64.mul - local.get $11 + local.get $1 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -4326,46 +4262,46 @@ f32.neg return else - local.get $9 + local.get $6 if (result f64) local.get $0 f64.promote_f32 f64.const 1.5707963267948966 f64.add - local.tee $11 - local.get $11 + local.tee $2 + local.get $2 f64.mul - local.tee $10 - local.get $11 + local.tee $1 + local.get $2 f64.mul else f64.const 1.5707963267948966 local.get $0 f64.promote_f32 f64.sub - local.tee $11 - local.get $11 + local.tee $2 + local.get $2 f64.mul - local.tee $10 - local.get $11 + local.tee $1 + local.get $2 f64.mul end - local.set $12 - local.get $11 - local.get $12 - local.get $10 + local.set $4 + local.get $2 + local.get $4 + local.get $1 f64.const 0.008333329385889463 f64.mul f64.const -0.16666666641626524 f64.add f64.mul f64.add - local.get $12 - local.get $10 - local.get $10 + local.get $4 + local.get $1 + local.get $1 f64.mul f64.mul - local.get $10 + local.get $1 f64.const 2.718311493989822e-06 f64.mul f64.const -1.9839334836096632e-04 @@ -4377,74 +4313,74 @@ end unreachable end - local.get $1 + local.get $3 i32.const 1088565717 i32.le_u if - local.get $1 + local.get $3 i32.const 1085271519 i32.gt_u if local.get $0 f64.promote_f32 - local.tee $12 + local.tee $1 f64.const 6.283185307179586 f64.add - local.get $12 + local.get $1 f64.const 6.283185307179586 f64.sub - local.get $9 + local.get $6 select - local.tee $12 - local.get $12 + local.tee $1 + local.get $1 f64.mul - local.tee $11 - local.get $11 + local.tee $1 + local.get $1 f64.mul - local.set $12 + local.set $2 br $folding-inner0 else - local.get $9 + local.get $6 if (result f64) local.get $0 f32.neg f64.promote_f32 f64.const 4.71238898038469 f64.sub - local.tee $11 - local.get $11 + local.tee $2 + local.get $2 f64.mul - local.tee $10 - local.get $11 + local.tee $1 + local.get $2 f64.mul else local.get $0 f64.promote_f32 f64.const 4.71238898038469 f64.sub - local.tee $11 - local.get $11 + local.tee $2 + local.get $2 f64.mul - local.tee $10 - local.get $11 + local.tee $1 + local.get $2 f64.mul end - local.set $12 - local.get $11 - local.get $12 - local.get $10 + local.set $4 + local.get $2 + local.get $4 + local.get $1 f64.const 0.008333329385889463 f64.mul f64.const -0.16666666641626524 f64.add f64.mul f64.add - local.get $12 - local.get $10 - local.get $10 + local.get $4 + local.get $1 + local.get $1 f64.mul f64.mul - local.get $10 + local.get $1 f64.const 2.718311493989822e-06 f64.mul f64.const -1.9839334836096632e-04 @@ -4456,7 +4392,7 @@ end unreachable end - local.get $1 + local.get $3 i32.const 2139095040 i32.ge_u if @@ -4466,155 +4402,150 @@ return end block $~lib/math/rempio2f|inlined.0 (result i32) - local.get $1 - local.tee $2 + local.get $3 i32.const 1305022427 i32.lt_u if local.get $0 f64.promote_f32 - local.tee $12 + local.tee $2 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $11 - local.get $12 - local.get $11 + local.set $1 + local.get $2 + local.get $1 f64.const 1.5707963109016418 f64.mul f64.sub - local.get $11 + local.get $1 f64.const 1.5893254773528196e-08 f64.mul f64.sub global.set $~lib/math/rempio2f_y - local.get $11 + local.get $1 i32.trunc_f64_s br $~lib/math/rempio2f|inlined.0 end - local.get $2 + local.get $3 i32.const 23 i32.shr_s i32.const 152 i32.sub - local.tee $2 + local.tee $7 + i32.const 63 + i32.and + i64.extend_i32_s + local.set $5 + f64.const 8.515303950216386e-20 + local.get $0 + f64.promote_f32 + f64.copysign + local.get $3 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.tee $9 + local.get $7 i32.const 6 i32.shr_s i32.const 3 i32.shl i32.const 5632 i32.add - local.tee $4 + local.tee $7 i64.load - local.set $7 - local.get $4 + local.get $5 + i64.shl + local.get $7 i64.load offset=8 - local.set $6 - local.get $2 - i32.const 63 - i32.and - i64.extend_i32_s local.tee $8 + i64.const 64 + local.get $5 + i64.sub + i64.shr_u + i64.or + i64.mul + local.get $5 i64.const 32 i64.gt_u if (result i64) - local.get $6 local.get $8 + local.get $5 i64.const 32 i64.sub i64.shl - local.get $4 + local.get $7 i64.load offset=16 i64.const 96 - local.get $8 + local.get $5 i64.sub i64.shr_u i64.or else - local.get $6 - i64.const 32 local.get $8 + i64.const 32 + local.get $5 i64.sub i64.shr_u end - local.set $3 - f64.const 8.515303950216386e-20 - local.get $0 - f64.promote_f32 - f64.copysign - local.get $1 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.tee $5 - local.get $7 - local.get $8 - i64.shl - local.get $6 - i64.const 64 - local.get $8 - i64.sub - i64.shr_u - i64.or - i64.mul - local.get $3 - local.get $5 + local.get $9 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $7 + local.tee $5 i64.const 2 i64.shl - local.tee $5 + local.tee $8 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y i32.const 0 - local.get $7 + local.get $5 i64.const 62 i64.shr_u - local.get $5 + local.get $8 i64.const 63 i64.shr_u i64.add i32.wrap_i64 - local.tee $2 + local.tee $3 i32.sub - local.get $2 - local.get $9 + local.get $3 + local.get $6 select end - local.set $2 + local.set $3 global.get $~lib/math/rempio2f_y - local.set $12 - local.get $2 + local.set $1 + local.get $3 i32.const 1 i32.and if (result f32) - local.get $12 - local.get $12 - local.get $12 + local.get $1 + local.get $1 + local.get $1 f64.mul - local.tee $11 - local.get $12 + local.tee $2 + local.get $1 f64.mul - local.tee $12 - local.get $11 + local.tee $1 + local.get $2 f64.const 0.008333329385889463 f64.mul f64.const -0.16666666641626524 f64.add f64.mul f64.add - local.get $12 - local.get $11 - local.get $11 + local.get $1 + local.get $2 + local.get $2 f64.mul f64.mul - local.get $11 + local.get $2 f64.const 2.718311493989822e-06 f64.mul f64.const -1.9839334836096632e-04 @@ -4623,26 +4554,26 @@ f64.add f32.demote_f64 else - local.get $12 - local.get $12 + local.get $1 + local.get $1 f64.mul - local.tee $11 - local.get $11 + local.tee $1 + local.get $1 f64.mul - local.set $12 - local.get $11 + local.set $2 + local.get $1 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $12 + local.get $2 f64.const 0.04166662332373906 f64.mul f64.add - local.get $12 - local.get $11 + local.get $2 + local.get $1 f64.mul - local.get $11 + local.get $1 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -4654,7 +4585,7 @@ local.tee $0 f32.neg local.get $0 - local.get $2 + local.get $3 i32.const 1 i32.add i32.const 2 @@ -4662,19 +4593,19 @@ select return end - local.get $11 + local.get $1 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $12 + local.get $2 f64.const 0.04166662332373906 f64.mul f64.add - local.get $12 - local.get $11 + local.get $2 + local.get $1 f64.mul - local.get $11 + local.get $1 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -4695,17 +4626,18 @@ local.get $0 i64.reinterpret_f64 local.tee $8 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.set $7 - local.get $8 i64.const 32 i64.shr_u i64.const 2147483647 i64.and i32.wrap_i64 - local.tee $6 + local.set $6 + local.get $8 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.set $7 + local.get $6 i32.const 1078159482 i32.ge_u if @@ -4884,9 +4816,8 @@ local.get $0 local.get $3 f64.sub - local.tee $0 - local.get $0 - f64.add + f64.const 2 + f64.mul f64.const 1 f64.add return @@ -5023,11 +4954,7 @@ f64.mul f64.const 6755399441055744 f64.add - local.tee $4 - f64.const 6755399441055744 - f64.sub - local.set $0 - local.get $4 + local.tee $0 i64.reinterpret_f64 local.tee $5 i64.const 127 @@ -5048,6 +4975,9 @@ local.set $3 local.get $2 local.get $0 + f64.const 6755399441055744 + f64.sub + local.tee $0 f64.const -0.005415212348111709 f64.mul f64.add @@ -5258,14 +5188,15 @@ (local $7 f32) local.get $0 i32.reinterpret_f32 - local.tee $4 + local.tee $6 + i32.const 2147483647 + i32.and + local.set $4 + local.get $6 i32.const 31 i32.shr_u local.set $6 local.get $4 - i32.const 2147483647 - i32.and - local.tee $4 i32.const 1100331076 i32.ge_u if @@ -5428,9 +5359,8 @@ local.get $0 local.get $1 f32.sub - local.tee $0 - local.get $0 - f32.add + f32.const 2 + f32.mul f32.const 1 f32.add return @@ -5499,10 +5429,10 @@ ) (func $~lib/math/NativeMathf.exp (param $0 f32) (result f32) (local $1 f64) - (local $2 f64) + (local $2 i64) (local $3 i32) (local $4 i32) - (local $5 i64) + (local $5 f64) block $~lib/util/math/expf_lut|inlined.0 (result f32) local.get $0 f64.promote_f32 @@ -5551,9 +5481,11 @@ local.tee $1 f64.const 6755399441055744 f64.add + local.tee $5 + i64.reinterpret_f64 local.set $2 local.get $1 - local.get $2 + local.get $5 f64.const 6755399441055744 f64.sub f64.sub @@ -5573,8 +5505,6 @@ f64.mul f64.add local.get $2 - i64.reinterpret_f64 - local.tee $5 i32.wrap_i64 i32.const 31 i32.and @@ -5583,7 +5513,7 @@ i32.const 7712 i32.add i64.load - local.get $5 + local.get $2 i64.const 47 i64.shl i64.add @@ -5872,29 +5802,26 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.exp2 (param $0 f32) (result f32) - (local $1 f64) - (local $2 i32) - (local $3 i32) + (func $std/math/test_exp2f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (local $3 f64) (local $4 f64) (local $5 i64) + (local $6 i32) + (local $7 i32) block $~lib/util/math/exp2f_lut|inlined.0 (result f32) - local.get $0 - f64.promote_f32 - local.set $1 local.get $0 i32.reinterpret_f32 - local.tee $2 + local.tee $6 i32.const 20 i32.shr_u i32.const 2047 i32.and - local.tee $3 + local.tee $7 i32.const 1072 i32.ge_u if f32.const 0 - local.get $2 + local.get $6 i32.const -8388608 i32.eq br_if $~lib/util/math/exp2f_lut|inlined.0 @@ -5902,7 +5829,7 @@ local.get $0 local.get $0 f32.add - local.get $3 + local.get $7 i32.const 2040 i32.ge_u br_if $~lib/util/math/exp2f_lut|inlined.0 @@ -5922,32 +5849,35 @@ br_if $~lib/util/math/exp2f_lut|inlined.0 drop end - local.get $1 - local.get $1 + local.get $0 + f64.promote_f32 + local.tee $4 f64.const 211106232532992 f64.add - local.tee $4 + local.tee $3 + i64.reinterpret_f64 + local.set $5 + local.get $4 + local.get $3 f64.const 211106232532992 f64.sub f64.sub - local.tee $1 + local.tee $3 f64.const 0.6931471806916203 f64.mul f64.const 1 f64.add - local.get $1 + local.get $3 f64.const 0.05550361559341535 f64.mul f64.const 0.2402284522445722 f64.add - local.get $1 - local.get $1 + local.get $3 + local.get $3 f64.mul f64.mul f64.add - local.get $4 - i64.reinterpret_f64 - local.tee $5 + local.get $5 i32.wrap_i64 i32.const 31 i32.and @@ -5964,178 +5894,178 @@ f64.mul f32.demote_f64 end + local.get $1 + local.get $2 + call $std/math/check ) - (func $std/math/test_hypot (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $~lib/math/NativeMath.hypot (param $0 f64) (param $1 f64) (result f64) + (local $2 i64) + (local $3 i64) (local $4 i64) - (local $5 i64) - (local $6 i64) + (local $5 f64) + (local $6 i32) (local $7 f64) - (local $8 f64) - (local $9 i32) + (local $8 i32) + (local $9 f64) (local $10 f64) - (local $11 i32) - (local $12 f64) - (local $13 f64) + (local $11 f64) local.get $1 i64.reinterpret_f64 i64.const 9223372036854775807 i64.and - local.tee $4 + local.tee $2 local.get $0 i64.reinterpret_f64 i64.const 9223372036854775807 i64.and - local.tee $5 + local.tee $3 i64.gt_u if - local.get $5 - local.get $4 - local.set $5 - local.set $4 + local.get $3 + local.get $2 + local.set $3 + local.set $2 end - local.get $5 + local.get $2 + f64.reinterpret_i64 + local.set $1 + local.get $2 i64.const 52 i64.shr_u i32.wrap_i64 - local.set $11 - local.get $4 - f64.reinterpret_i64 - local.set $1 - block $__inlined_func$~lib/math/NativeMath.hypot (result f64) + local.tee $6 + i32.const 2047 + i32.eq + if local.get $1 - local.get $4 - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $9 - i32.const 2047 - i32.eq - br_if $__inlined_func$~lib/math/NativeMath.hypot - drop - local.get $5 - f64.reinterpret_i64 - local.tee $0 - i64.const 0 - local.get $4 - local.get $11 - i32.const 2047 - i32.eq - select - i64.eqz - br_if $__inlined_func$~lib/math/NativeMath.hypot - drop + return + end + local.get $3 + f64.reinterpret_i64 + local.set $0 + i64.const 0 + local.get $2 + local.get $3 + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $8 + i32.const 2047 + i32.eq + select + i64.eqz + if + local.get $0 + return + end + local.get $8 + local.get $6 + i32.sub + i32.const 64 + i32.gt_s + if local.get $0 local.get $1 f64.add - local.get $11 - local.get $9 - i32.sub - i32.const 64 - i32.gt_s - br_if $__inlined_func$~lib/math/NativeMath.hypot - drop - f64.const 1 - local.set $10 - local.get $11 - i32.const 1533 - i32.gt_u - if (result f64) - f64.const 5260135901548373507240989e186 - local.set $10 - local.get $1 + return + end + f64.const 1 + local.set $7 + local.get $8 + i32.const 1533 + i32.gt_u + if (result f64) + f64.const 5260135901548373507240989e186 + local.set $7 + local.get $1 + f64.const 1.90109156629516e-211 + f64.mul + local.set $1 + local.get $0 + f64.const 1.90109156629516e-211 + f64.mul + else + local.get $6 + i32.const 573 + i32.lt_u + if (result f64) f64.const 1.90109156629516e-211 + local.set $7 + local.get $1 + f64.const 5260135901548373507240989e186 f64.mul local.set $1 local.get $0 - f64.const 1.90109156629516e-211 + f64.const 5260135901548373507240989e186 f64.mul else - local.get $9 - i32.const 573 - i32.lt_u - if (result f64) - f64.const 1.90109156629516e-211 - local.set $10 - local.get $1 - f64.const 5260135901548373507240989e186 - f64.mul - local.set $1 - local.get $0 - f64.const 5260135901548373507240989e186 - f64.mul - else - local.get $0 - end + local.get $0 end - local.set $0 - local.get $1 - local.get $1 - local.get $1 - f64.const 134217729 - f64.mul - local.tee $13 - f64.sub - local.get $13 - f64.add - local.tee $13 - f64.sub - local.set $8 - local.get $0 - local.get $0 - local.get $0 - f64.const 134217729 - f64.mul - local.tee $12 - f64.sub - local.get $12 - f64.add - local.tee $12 - f64.sub - local.set $7 - local.get $10 - local.get $13 - local.get $13 - f64.mul - local.get $1 - local.get $1 - f64.mul - local.tee $1 - f64.sub - local.get $13 - local.get $13 - f64.add - local.get $8 - f64.add - local.get $8 - f64.mul - f64.add - local.get $12 - local.get $12 - f64.mul - local.get $0 - local.get $0 - f64.mul - local.tee $0 - f64.sub - local.get $12 - local.get $12 - f64.add - local.get $7 - f64.add - local.get $7 - f64.mul - f64.add - f64.add - local.get $1 - f64.add - local.get $0 - f64.add - f64.sqrt - f64.mul end - local.get $2 - local.get $3 - call $std/math/check + local.tee $0 + local.get $0 + local.get $0 + f64.const 134217729 + f64.mul + local.tee $11 + f64.sub + local.get $11 + f64.add + local.tee $10 + f64.sub + local.set $5 + local.get $1 + local.get $1 + local.get $1 + f64.const 134217729 + f64.mul + local.tee $11 + f64.sub + local.get $11 + f64.add + local.tee $9 + f64.sub + local.set $11 + local.get $7 + local.get $9 + local.get $9 + f64.mul + local.get $1 + local.get $1 + f64.mul + local.tee $1 + f64.sub + local.get $9 + local.get $9 + f64.add + local.get $11 + f64.add + local.get $11 + f64.mul + f64.add + local.get $10 + local.get $10 + f64.mul + local.get $0 + local.get $0 + f64.mul + local.tee $0 + f64.sub + local.get $10 + local.get $10 + f64.add + local.get $5 + f64.add + local.get $5 + f64.mul + f64.add + f64.add + local.get $1 + f64.add + local.get $0 + f64.add + f64.sqrt + f64.mul ) (func $std/math/test_hypotf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) (local $4 i32) @@ -6143,27 +6073,27 @@ (local $6 i32) (local $7 f64) (local $8 f32) - local.get $1 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $4 - local.get $0 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $5 - i32.gt_u - if - local.get $5 - local.get $4 - local.set $5 - local.set $4 - end - local.get $5 - f32.reinterpret_i32 - local.set $0 block $__inlined_func$~lib/math/NativeMathf.hypot (result f32) + local.get $1 + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.tee $4 + local.get $0 + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.tee $5 + i32.gt_u + if + local.get $5 + local.get $4 + local.set $5 + local.set $4 + end + local.get $5 + f32.reinterpret_i32 + local.set $0 local.get $4 f32.reinterpret_i32 local.tee $1 @@ -6244,405 +6174,375 @@ local.get $3 call $std/math/check ) - (func $std/math/test_log10 (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $~lib/math/NativeMath.log10 (param $0 f64) (result f64) + (local $1 i32) + (local $2 f64) (local $3 f64) - (local $4 i32) + (local $4 i64) (local $5 f64) - (local $6 i64) + (local $6 f64) (local $7 i32) (local $8 f64) - (local $9 f64) - (local $10 f64) - (local $11 f64) - (local $12 f64) - (local $13 f64) - (local $14 f64) - (local $15 f64) - block $__inlined_func$~lib/math/NativeMath.log10 - i32.const 1 + i32.const 1 + local.get $0 + i64.reinterpret_f64 + local.tee $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 1048576 + i32.lt_u + select + if + local.get $4 + i64.const 1 + i64.shl + i64.eqz + if + f64.const -1 + local.get $0 + local.get $0 + f64.mul + f64.div + return + end + local.get $1 + i32.const 31 + i32.shr_u + if + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.div + return + end + i32.const -54 + local.set $7 local.get $0 - local.tee $3 + f64.const 18014398509481984 + f64.mul i64.reinterpret_f64 - local.tee $6 + local.tee $4 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $4 - i32.const 31 - i32.shr_u - local.get $4 - i32.const 1048576 - i32.lt_u - select + local.set $1 + else + local.get $1 + i32.const 2146435072 + i32.ge_u if - local.get $6 - i64.const 1 + local.get $0 + return + else + local.get $4 + i64.const 32 i64.shl + i64.const 1 + local.get $1 + i32.const 1072693248 + i32.eq + select i64.eqz if - f64.const -1 - local.get $3 - local.get $3 - f64.mul - f64.div - local.set $3 - br $__inlined_func$~lib/math/NativeMath.log10 - end - local.get $4 - i32.const 31 - i32.shr_u - if - local.get $3 - local.get $3 - f64.sub f64.const 0 - f64.div - local.set $3 - br $__inlined_func$~lib/math/NativeMath.log10 - end - i32.const -54 - local.set $7 - local.get $3 - f64.const 18014398509481984 - f64.mul - i64.reinterpret_f64 - local.tee $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.set $4 - else - local.get $4 - i32.const 2146435072 - i32.ge_u - if - br $__inlined_func$~lib/math/NativeMath.log10 - else - local.get $6 - i64.const 32 - i64.shl - i64.const 1 - local.get $4 - i32.const 1072693248 - i32.eq - select - i64.eqz - if - f64.const 0 - local.set $3 - br $__inlined_func$~lib/math/NativeMath.log10 - end + return end end - local.get $6 - i64.const 4294967295 - i64.and - local.get $4 - i32.const 614242 - i32.add - local.tee $4 - i32.const 1048575 - i32.and - i32.const 1072079006 - i32.add - i64.extend_i32_u - i64.const 32 - i64.shl - i64.or - f64.reinterpret_i64 - f64.const 1 - f64.sub - local.tee $5 - local.get $5 - f64.const 2 - f64.add - f64.div - local.tee $8 - local.get $8 - f64.mul - local.tee $9 - local.get $9 - f64.mul - local.set $3 - local.get $7 - local.get $4 - i32.const 20 - i32.shr_u - i32.const 1023 - i32.sub - i32.add - f64.convert_i32_s - local.tee $13 - f64.const 0.30102999566361177 - f64.mul - local.tee $14 - local.get $5 - local.get $5 - f64.const 0.5 - f64.mul - local.get $5 - f64.mul - local.tee $10 - f64.sub - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $11 - f64.const 0.4342944818781689 - f64.mul - local.tee $15 - f64.add - local.set $12 - local.get $13 - f64.const 3.694239077158931e-13 - f64.mul - local.get $5 - local.get $11 - f64.sub - local.get $10 - f64.sub - local.get $8 - local.get $10 - local.get $9 - local.get $3 - local.get $3 - local.get $3 - f64.const 0.14798198605116586 - f64.mul - f64.const 0.1818357216161805 - f64.add - f64.mul - f64.const 0.2857142874366239 - f64.add - f64.mul - f64.const 0.6666666666666735 - f64.add - f64.mul - local.get $3 - local.get $3 - local.get $3 - f64.const 0.15313837699209373 - f64.mul - f64.const 0.22222198432149784 - f64.add - f64.mul - f64.const 0.3999999999940942 - f64.add - f64.mul - f64.add - f64.add - f64.mul - f64.add - local.tee $3 - local.get $11 - f64.add - f64.const 2.5082946711645275e-11 - f64.mul - f64.add - local.get $3 - f64.const 0.4342944818781689 - f64.mul - f64.add - local.get $14 - local.get $12 - f64.sub - local.get $15 - f64.add - f64.add - local.get $12 - f64.add - local.set $3 end + local.get $4 + i64.const 4294967295 + i64.and + local.get $1 + i32.const 614242 + i32.add + local.tee $1 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + f64.reinterpret_i64 + f64.const 1 + f64.sub + local.tee $2 + f64.const 0.5 + f64.mul + local.get $2 + f64.mul + local.set $3 + local.get $2 + local.get $2 + f64.const 2 + f64.add + f64.div + local.tee $5 + local.get $5 + f64.mul + local.tee $6 + local.get $6 + f64.mul + local.set $0 + local.get $2 + local.get $2 + local.get $3 + f64.sub + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.tee $2 + f64.sub local.get $3 + f64.sub + local.get $5 + local.get $3 + local.get $6 + local.get $0 + local.get $0 + local.get $0 + f64.const 0.14798198605116586 + f64.mul + f64.const 0.1818357216161805 + f64.add + f64.mul + f64.const 0.2857142874366239 + f64.add + f64.mul + f64.const 0.6666666666666735 + f64.add + f64.mul + local.get $0 + local.get $0 + local.get $0 + f64.const 0.15313837699209373 + f64.mul + f64.const 0.22222198432149784 + f64.add + f64.mul + f64.const 0.3999999999940942 + f64.add + f64.mul + f64.add + f64.add + f64.mul + f64.add + local.set $0 local.get $1 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + local.get $7 + i32.add + f64.convert_i32_s + local.tee $5 + f64.const 0.30102999566361177 + f64.mul + local.tee $6 local.get $2 - call $std/math/check - if (result i32) - local.get $0 - call $~lib/bindings/Math/log10 - local.get $1 - local.get $2 - call $std/math/check - else - i32.const 0 - end + f64.const 0.4342944818781689 + f64.mul + local.tee $8 + f64.add + local.set $3 + local.get $5 + f64.const 3.694239077158931e-13 + f64.mul + local.get $0 + local.get $2 + f64.add + f64.const 2.5082946711645275e-11 + f64.mul + f64.add + local.get $0 + f64.const 0.4342944818781689 + f64.mul + f64.add + local.get $6 + local.get $3 + f64.sub + local.get $8 + f64.add + f64.add + local.get $3 + f64.add ) - (func $std/math/test_log10f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 i32) + (func $~lib/math/NativeMathf.log10 (param $0 f32) (result f32) + (local $1 i32) + (local $2 f32) + (local $3 f32) (local $4 f32) - (local $5 i32) - (local $6 f32) + (local $5 f32) + (local $6 i32) (local $7 f32) - (local $8 f32) - (local $9 f32) - block $__inlined_func$~lib/math/NativeMathf.log10 + i32.const 1 + local.get $0 + i32.reinterpret_f32 + local.tee $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 8388608 + i32.lt_u + select + if + local.get $1 i32.const 1 - local.get $0 - i32.reinterpret_f32 - local.tee $3 - i32.const 31 - i32.shr_u - local.get $3 - i32.const 8388608 - i32.lt_u - select + i32.shl + i32.eqz if - local.get $3 - i32.const 1 - i32.shl - i32.eqz - if - f32.const -1 - local.get $0 - local.get $0 - f32.mul - f32.div - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.log10 - end - local.get $3 - i32.const 31 - i32.shr_u - if - local.get $0 - local.get $0 - f32.sub - f32.const 0 - f32.div - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.log10 - end - i32.const -25 - local.set $5 + f32.const -1 + local.get $0 local.get $0 - f32.const 33554432 f32.mul - i32.reinterpret_f32 - local.set $3 - else - local.get $3 - i32.const 2139095040 - i32.ge_u - if - br $__inlined_func$~lib/math/NativeMathf.log10 - else - local.get $3 - i32.const 1065353216 - i32.eq - if - f32.const 0 - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.log10 - end - end + f32.div + return end - local.get $3 - i32.const 4913933 - i32.add - local.tee $3 - i32.const 8388607 - i32.and - i32.const 1060439283 - i32.add - f32.reinterpret_i32 - f32.const 1 - f32.sub - local.tee $0 - local.get $0 - f32.const 2 - f32.add - f32.div - local.tee $6 - local.get $6 - f32.mul - local.tee $7 - local.get $7 - f32.mul - local.set $4 - local.get $5 - local.get $3 - i32.const 23 + local.get $1 + i32.const 31 i32.shr_u - i32.const 127 - i32.sub - i32.add - f32.convert_i32_s - local.tee $9 - f32.const 7.903415166765626e-07 - f32.mul - local.get $0 - local.get $0 - local.get $0 - f32.const 0.5 - f32.mul + if + local.get $0 + local.get $0 + f32.sub + f32.const 0 + f32.div + return + end + i32.const -25 + local.set $6 local.get $0 + f32.const 33554432 f32.mul - local.tee $0 - f32.sub i32.reinterpret_f32 - i32.const -4096 - i32.and - f32.reinterpret_i32 - local.tee $8 - f32.sub - local.get $0 - f32.sub - local.get $6 - local.get $0 - local.get $7 - local.get $4 - f32.const 0.2849878668785095 - f32.mul - f32.const 0.6666666269302368 - f32.add - f32.mul - local.get $4 - local.get $4 - f32.const 0.24279078841209412 - f32.mul - f32.const 0.40000972151756287 - f32.add - f32.mul - f32.add - f32.add - f32.mul - f32.add - local.tee $0 - local.get $8 - f32.add - f32.const -3.168997136526741e-05 - f32.mul - f32.add - local.get $0 - f32.const 0.434326171875 - f32.mul - f32.add - local.get $8 - f32.const 0.434326171875 - f32.mul - f32.add - local.get $9 - f32.const 0.3010292053222656 - f32.mul - f32.add - local.set $0 + local.set $1 + else + local.get $1 + i32.const 2139095040 + i32.ge_u + if + local.get $0 + return + else + local.get $1 + i32.const 1065353216 + i32.eq + if + f32.const 0 + return + end + end end + local.get $1 + i32.const 4913933 + i32.add + local.tee $1 + i32.const 8388607 + i32.and + i32.const 1060439283 + i32.add + f32.reinterpret_i32 + f32.const 1 + f32.sub + local.tee $0 local.get $0 + f32.const 2 + f32.add + f32.div + local.tee $3 + local.get $3 + f32.mul + local.tee $4 + local.get $4 + f32.mul + local.set $2 local.get $1 + i32.const 23 + i32.shr_u + i32.const 127 + i32.sub + local.get $6 + i32.add + f32.convert_i32_s + local.tee $7 + f32.const 7.903415166765626e-07 + f32.mul + local.get $0 + local.get $0 + local.get $0 + f32.const 0.5 + f32.mul + local.get $0 + f32.mul + local.tee $0 + f32.sub + i32.reinterpret_f32 + i32.const -4096 + i32.and + f32.reinterpret_i32 + local.tee $5 + f32.sub + local.get $0 + f32.sub + local.get $3 + local.get $0 + local.get $4 local.get $2 - call $std/math/check + f32.const 0.2849878668785095 + f32.mul + f32.const 0.6666666269302368 + f32.add + f32.mul + local.get $2 + local.get $2 + f32.const 0.24279078841209412 + f32.mul + f32.const 0.40000972151756287 + f32.add + f32.mul + f32.add + f32.add + f32.mul + f32.add + local.tee $0 + local.get $5 + f32.add + f32.const -3.168997136526741e-05 + f32.mul + f32.add + local.get $0 + f32.const 0.434326171875 + f32.mul + f32.add + local.get $5 + f32.const 0.434326171875 + f32.mul + f32.add + local.get $7 + f32.const 0.3010292053222656 + f32.mul + f32.add ) (func $~lib/math/NativeMath.log2 (param $0 f64) (result f64) (local $1 i64) (local $2 f64) - (local $3 i32) - (local $4 f64) + (local $3 f64) + (local $4 i32) (local $5 f64) (local $6 f64) - (local $7 i64) - (local $8 f64) - (local $9 i32) + (local $7 i32) + (local $8 i64) + (local $9 f64) + (local $10 f64) block $~lib/util/math/log2_lut|inlined.0 (result f64) local.get $0 i64.reinterpret_f64 @@ -6660,25 +6560,30 @@ i64.const -4294967296 i64.and f64.reinterpret_i64 - local.tee $4 + local.tee $6 f64.const 1.4426950407214463 f64.mul - local.tee $5 + local.set $3 local.get $0 local.get $0 f64.mul local.tee $2 + local.get $2 + f64.mul + local.set $5 + local.get $3 + local.get $2 local.get $0 f64.const 0.48089834696298744 f64.mul f64.const -0.7213475204444817 f64.add f64.mul - local.tee $6 + local.tee $9 f64.add - local.tee $8 + local.tee $10 local.get $0 - local.get $4 + local.get $6 f64.sub f64.const 1.4426950407214463 f64.mul @@ -6686,16 +6591,13 @@ f64.const 1.6751713164886512e-10 f64.mul f64.add - local.get $5 - local.get $8 + local.get $3 + local.get $10 f64.sub - local.get $6 + local.get $9 f64.add f64.add - local.get $2 - local.get $2 - f64.mul - local.tee $4 + local.get $5 local.get $0 f64.const 0.2885390081805197 f64.mul @@ -6709,7 +6611,7 @@ f64.add f64.mul f64.add - local.get $4 + local.get $5 local.get $0 f64.const 0.1603032746063156 f64.mul @@ -6734,7 +6636,7 @@ i64.const 48 i64.shr_u i32.wrap_i64 - local.tee $3 + local.tee $4 i32.const 16 i32.sub i32.const 32736 @@ -6764,12 +6666,12 @@ local.get $2 f64.div i32.const 1 - local.get $3 + local.get $4 i32.const 32752 i32.and i32.const 32752 i32.eq - local.get $3 + local.get $4 i32.const 32768 i32.and select @@ -6786,7 +6688,7 @@ local.get $1 i64.const 4604367669032910848 i64.sub - local.tee $7 + local.tee $8 i64.const 46 i64.shr_u i64.const 63 @@ -6794,26 +6696,34 @@ i32.wrap_i64 i32.const 4 i32.shl - local.tee $9 - i32.const 8992 + local.tee $7 + i32.const 7968 i32.add - local.set $3 + local.set $4 + local.get $8 + i64.const 52 + i64.shr_s + f64.convert_i64_s + local.get $4 + f64.load offset=8 + f64.add + local.tee $2 local.get $1 - local.get $7 + local.get $8 i64.const -4503599627370496 i64.and i64.sub f64.reinterpret_i64 - local.get $3 + local.get $7 + i32.const 8992 + i32.add + local.tee $7 f64.load f64.sub - local.get $3 + local.get $7 f64.load offset=8 f64.sub - local.get $9 - i32.const 7968 - i32.add - local.tee $3 + local.get $4 f64.load f64.mul local.tee $0 @@ -6821,28 +6731,19 @@ i64.const -4294967296 i64.and f64.reinterpret_i64 - local.set $2 - local.get $7 - i64.const 52 - i64.shr_s - f64.convert_i64_s - local.get $3 - f64.load offset=8 - f64.add local.tee $5 - local.get $2 f64.const 1.4426950407214463 f64.mul local.tee $6 f64.add - local.set $4 - local.get $5 - local.get $4 + local.set $3 + local.get $2 + local.get $3 f64.sub local.get $6 f64.add local.get $0 - local.get $2 + local.get $5 f64.sub f64.const 1.4426950407214463 f64.mul @@ -6880,7 +6781,7 @@ f64.add f64.mul f64.add - local.get $4 + local.get $3 f64.add end ) @@ -7261,7 +7162,6 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) local.get $1 f32.abs f32.const 1 @@ -7283,17 +7183,13 @@ i32.const 255 i32.and local.set $5 - local.get $0 - i32.reinterpret_f32 - local.tee $2 - i32.const -2147483648 - i32.and - local.set $7 i32.const 1 local.get $1 local.get $1 f32.ne - local.get $2 + local.get $0 + i32.reinterpret_f32 + local.tee $2 i32.const 23 i32.shr_u i32.const 255 @@ -7321,17 +7217,21 @@ local.get $2 i32.const 1 i32.shl - local.tee $8 + local.tee $7 i32.ge_u if local.get $0 local.get $6 - local.get $8 + local.get $7 i32.ne f32.convert_i32_u f32.mul return end + local.get $2 + i32.const -2147483648 + i32.and + local.set $6 local.get $4 if (result i32) local.get $2 @@ -7404,6 +7304,7 @@ br $while-continue|0 end end + local.get $4 local.get $2 local.get $3 i32.ge_u @@ -7418,17 +7319,17 @@ local.set $2 end local.get $2 - local.get $2 i32.const 8 i32.shl i32.clz local.tee $3 + i32.sub + local.set $4 + local.get $2 + local.get $3 i32.shl local.set $2 local.get $4 - local.get $3 - i32.sub - local.tee $4 i32.const 0 i32.gt_s if (result i32) @@ -7446,7 +7347,7 @@ i32.sub i32.shr_u end - local.get $7 + local.get $6 i32.or f32.reinterpret_i32 return @@ -7458,17 +7359,17 @@ (func $~lib/math/NativeMath.pow (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i32) - (local $4 f64) + (local $4 i64) (local $5 f64) (local $6 i64) - (local $7 i64) + (local $7 f64) (local $8 i64) - (local $9 f64) - (local $10 i32) + (local $9 i32) + (local $10 f64) (local $11 f64) - (local $12 i32) - (local $13 f64) - (local $14 i64) + (local $12 f64) + (local $13 i64) + (local $14 f64) (local $15 f64) (local $16 f64) (local $17 f64) @@ -7524,16 +7425,14 @@ return end end - local.get $1 - local.tee $5 - i64.reinterpret_f64 - local.tee $7 - i64.const 52 - i64.shr_u - local.set $14 - block $~lib/util/math/pow_lut|inlined.0 + block $~lib/util/math/pow_lut|inlined.0 (result f64) + local.get $1 + i64.reinterpret_f64 + local.tee $6 + i64.const 52 + i64.shr_u + local.set $13 local.get $0 - local.tee $4 i64.reinterpret_f64 local.tee $2 i64.const 52 @@ -7546,7 +7445,7 @@ if (result i32) i32.const 1 else - local.get $14 + local.get $13 i64.const 2047 i64.and i64.const 958 @@ -7555,7 +7454,7 @@ i64.ge_u end if - local.get $7 + local.get $6 i64.const 1 i64.shl i64.const 1 @@ -7564,24 +7463,23 @@ i64.ge_u if f64.const 1 - local.set $0 - local.get $7 + local.get $6 i64.const 1 i64.shl i64.eqz br_if $~lib/util/math/pow_lut|inlined.0 + drop f64.const nan:0x8000000000000 - local.set $0 local.get $2 i64.const 4607182418800017408 i64.eq br_if $~lib/util/math/pow_lut|inlined.0 - local.get $4 - local.get $5 + drop + local.get $0 + local.get $1 f64.add - local.set $0 i32.const 1 - local.get $7 + local.get $6 i64.const 1 i64.shl i64.const -9007199254740992 @@ -7593,17 +7491,17 @@ i64.gt_u select br_if $~lib/util/math/pow_lut|inlined.0 + drop f64.const nan:0x8000000000000 - local.set $0 local.get $2 i64.const 1 i64.shl i64.const 9214364837600034816 i64.eq br_if $~lib/util/math/pow_lut|inlined.0 + drop f64.const 0 - local.set $0 - local.get $7 + local.get $6 i64.const 63 i64.shr_u i64.eqz @@ -7614,10 +7512,10 @@ i64.lt_u i32.eq br_if $~lib/util/math/pow_lut|inlined.0 - local.get $5 - local.get $5 + drop + local.get $1 + local.get $1 f64.mul - local.set $0 br $~lib/util/math/pow_lut|inlined.0 end local.get $2 @@ -7629,8 +7527,8 @@ i64.ge_u if f64.const 1 - local.get $4 - local.get $4 + local.get $0 + local.get $0 f64.mul local.tee $0 f64.neg @@ -7642,40 +7540,40 @@ if (result i32) block $~lib/util/math/checkint|inlined.0 (result i32) i32.const 0 - local.get $7 + local.get $6 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $6 + local.tee $4 i64.const 1023 i64.lt_u br_if $~lib/util/math/checkint|inlined.0 drop i32.const 2 - local.get $6 + local.get $4 i64.const 1075 i64.gt_u br_if $~lib/util/math/checkint|inlined.0 drop i32.const 0 - local.get $7 i64.const 1 i64.const 1075 - local.get $6 + local.get $4 i64.sub i64.shl - local.tee $6 + local.tee $4 i64.const 1 i64.sub + local.get $6 i64.and i64.const 0 i64.ne br_if $~lib/util/math/checkint|inlined.0 drop i32.const 1 + local.get $4 local.get $6 - local.get $7 i64.and i64.const 0 i64.ne @@ -7692,12 +7590,11 @@ local.tee $0 f64.div local.get $0 - local.get $7 + local.get $6 i64.const 63 i64.shr_u i32.wrap_i64 select - local.set $0 br $~lib/util/math/pow_lut|inlined.0 end local.get $2 @@ -7705,49 +7602,48 @@ i64.shr_u i32.wrap_i64 if - local.get $4 - local.get $4 - f64.sub - local.tee $0 local.get $0 + local.get $0 + f64.sub + local.tee $7 + local.get $7 f64.div - local.set $0 block $~lib/util/math/checkint|inlined.1 (result i32) i32.const 0 - local.get $7 + local.get $6 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $6 + local.tee $4 i64.const 1023 i64.lt_u br_if $~lib/util/math/checkint|inlined.1 drop i32.const 2 - local.get $6 + local.get $4 i64.const 1075 i64.gt_u br_if $~lib/util/math/checkint|inlined.1 drop i32.const 0 - local.get $7 i64.const 1 i64.const 1075 - local.get $6 + local.get $4 i64.sub i64.shl - local.tee $6 + local.tee $4 i64.const 1 i64.sub + local.get $6 i64.and i64.const 0 i64.ne br_if $~lib/util/math/checkint|inlined.1 drop i32.const 1 + local.get $4 local.get $6 - local.get $7 i64.and i64.const 0 i64.ne @@ -7755,26 +7651,27 @@ drop i32.const 2 end - local.tee $10 + local.tee $3 i32.eqz br_if $~lib/util/math/pow_lut|inlined.0 + drop local.get $8 i64.const 2047 i64.and local.set $8 i32.const 262144 i32.const 0 - local.get $10 + local.get $3 i32.const 1 i32.eq select - local.set $12 + local.set $9 local.get $2 i64.const 9223372036854775807 i64.and local.set $2 end - local.get $14 + local.get $13 i64.const 2047 i64.and i64.const 958 @@ -7783,20 +7680,22 @@ i64.ge_u if f64.const 1 - local.set $0 local.get $2 i64.const 4607182418800017408 i64.eq br_if $~lib/util/math/pow_lut|inlined.0 - local.get $14 + drop + f64.const 1 + local.get $13 i64.const 2047 i64.and i64.const 958 i64.lt_u br_if $~lib/util/math/pow_lut|inlined.0 + drop f64.const inf f64.const 0 - local.get $14 + local.get $13 i64.const 2048 i64.lt_u local.get $2 @@ -7804,13 +7703,12 @@ i64.gt_u i32.eq select - local.set $0 br $~lib/util/math/pow_lut|inlined.0 end local.get $8 i64.eqz if (result i64) - local.get $4 + local.get $0 f64.const 4503599627370496 f64.mul i64.reinterpret_f64 @@ -7824,117 +7722,117 @@ local.set $2 end local.get $2 + local.get $2 i64.const 4604531861337669632 i64.sub local.tee $8 - i64.const 45 - i64.shr_u - i64.const 127 - i64.and - i32.wrap_i64 - local.set $10 - local.get $2 - local.get $8 i64.const -4503599627370496 i64.and i64.sub - local.tee $6 + local.tee $4 i64.const 2147483648 i64.add i64.const -4294967296 i64.and f64.reinterpret_i64 - local.tee $1 - local.get $10 + local.tee $7 + local.get $8 + i64.const 45 + i64.shr_u + i64.const 127 + i64.and + i32.wrap_i64 i32.const 5 i32.shl i32.const 10272 i32.add - local.tee $10 + local.tee $3 f64.load local.tee $0 f64.mul f64.const 1 f64.sub - local.tee $13 - local.get $6 - f64.reinterpret_i64 - local.get $1 - f64.sub - local.get $0 - f64.mul - local.tee $17 - f64.add - local.tee $11 - f64.const -0.5 - f64.mul - local.set $15 + local.set $12 local.get $8 i64.const 52 i64.shr_s f64.convert_i64_s - local.tee $9 + local.tee $16 f64.const 0.6931471805598903 f64.mul - local.get $10 + local.get $3 f64.load offset=16 f64.add - local.tee $4 - local.get $11 + local.tee $17 + local.get $12 + local.get $4 + f64.reinterpret_i64 + local.get $7 + f64.sub + local.get $0 + f64.mul + local.tee $5 f64.add - local.tee $16 - local.get $13 - local.get $13 + local.tee $11 + f64.add + local.set $14 + local.get $11 + local.get $11 f64.const -0.5 f64.mul - local.tee $1 + local.tee $10 + f64.mul + local.set $15 + local.get $14 + local.get $12 + local.get $12 + f64.const -0.5 + f64.mul + local.tee $7 f64.mul local.tee $0 f64.add - local.tee $13 - local.get $13 - local.get $9 + local.tee $12 + local.get $12 + local.get $16 f64.const 5.497923018708371e-14 f64.mul - local.get $10 + local.get $3 f64.load offset=24 f64.add - local.get $4 - local.get $16 + local.get $17 + local.get $14 f64.sub local.get $11 f64.add f64.add - local.get $17 - local.get $15 - local.get $1 + local.get $5 + local.get $10 + local.get $7 f64.add f64.mul f64.add - local.get $16 - local.get $13 + local.get $14 + local.get $12 f64.sub local.get $0 f64.add f64.add local.get $11 - local.get $11 local.get $15 f64.mul - local.tee $0 - f64.mul local.get $11 f64.const 0.5000000000000007 f64.mul f64.const -0.6666666666666679 f64.add - local.get $0 + local.get $15 local.get $11 f64.const -0.6666666663487739 f64.mul f64.const 0.7999999995323976 f64.add - local.get $0 + local.get $15 local.get $11 f64.const 1.0000415263675542 f64.mul @@ -7948,41 +7846,42 @@ f64.add local.tee $0 f64.add - local.tee $1 + local.tee $10 f64.sub local.get $0 f64.add global.set $~lib/util/math/log_tail block $~lib/util/math/exp_inline|inlined.0 (result f64) - local.get $5 - local.get $7 + local.get $6 i64.const -134217728 i64.and f64.reinterpret_i64 local.tee $0 - f64.sub - local.get $1 + local.get $10 i64.reinterpret_f64 i64.const -134217728 i64.and f64.reinterpret_i64 - local.tee $4 + local.tee $7 f64.mul - local.get $5 + local.set $5 local.get $1 - local.get $4 + local.get $0 + f64.sub + local.get $7 + f64.mul + local.get $1 + local.get $10 + local.get $7 f64.sub global.get $~lib/util/math/log_tail f64.add f64.mul f64.add local.set $1 - local.get $0 - local.get $4 - f64.mul - local.tee $4 + local.get $5 i64.reinterpret_f64 - local.tee $6 + local.tee $4 i64.const 52 i64.shr_u i32.wrap_i64 @@ -7996,7 +7895,7 @@ if f64.const -1 f64.const 1 - local.get $12 + local.get $9 select local.get $3 i32.const 969 @@ -8005,21 +7904,21 @@ i32.ge_u br_if $~lib/util/math/exp_inline|inlined.0 drop - local.get $6 + local.get $4 i64.const 63 i64.shr_u i32.wrap_i64 if (result f64) f64.const -1.2882297539194267e-231 f64.const 1.2882297539194267e-231 - local.get $12 + local.get $9 select f64.const 1.2882297539194267e-231 f64.mul else f64.const -3105036184601417870297958e207 f64.const 3105036184601417870297958e207 - local.get $12 + local.get $9 select f64.const 3105036184601417870297958e207 f64.mul @@ -8032,18 +7931,20 @@ i32.const 0 local.set $3 end - local.get $4 + local.get $5 f64.const 184.6649652337873 f64.mul f64.const 6755399441055744 f64.add local.tee $0 - f64.const 6755399441055744 - f64.sub - local.set $5 - local.get $0 i64.reinterpret_f64 local.tee $8 + local.get $9 + i64.extend_i32_u + i64.add + i64.const 45 + i64.shl + local.get $8 i64.const 127 i64.and i64.const 1 @@ -8053,22 +7954,19 @@ i32.shl i32.const 5664 i32.add - local.tee $10 + local.tee $9 i64.load offset=8 - local.get $8 - local.get $12 - i64.extend_i32_u i64.add - i64.const 45 - i64.shl - i64.add - local.set $6 - local.get $4 + local.set $4 local.get $5 + local.get $0 + f64.const 6755399441055744 + f64.sub + local.tee $0 f64.const -0.005415212348111709 f64.mul f64.add - local.get $5 + local.get $0 f64.const -1.2864023111638346e-14 f64.mul f64.add @@ -8078,7 +7976,7 @@ local.get $1 f64.mul local.set $0 - local.get $10 + local.get $9 f64.load local.get $1 f64.add @@ -8110,7 +8008,7 @@ i64.and i64.eqz if - local.get $6 + local.get $4 i64.const 4544132024016830464 i64.sub f64.reinterpret_i64 @@ -8123,64 +8021,64 @@ f64.mul br $~lib/util/math/specialcase|inlined.1 end - local.get $6 + local.get $4 i64.const 4602678819172646912 i64.add - local.tee $6 - f64.reinterpret_i64 local.tee $4 - local.get $4 + f64.reinterpret_i64 + local.tee $10 + local.get $10 local.get $0 f64.mul f64.add - local.tee $9 + local.tee $5 f64.abs f64.const 1 f64.lt if (result f64) f64.const 1 - local.get $9 + local.get $5 f64.copysign - local.tee $5 - local.get $9 + local.tee $7 + local.get $5 f64.add local.tee $1 - local.get $5 + local.get $7 local.get $1 f64.sub - local.get $9 + local.get $5 f64.add - local.get $4 - local.get $9 + local.get $10 + local.get $5 f64.sub - local.get $4 + local.get $10 local.get $0 f64.mul f64.add f64.add f64.add - local.get $5 + local.get $7 f64.sub - local.tee $9 + local.tee $5 f64.const 0 f64.eq if (result f64) - local.get $6 + local.get $4 i64.const -9223372036854775808 i64.and f64.reinterpret_i64 else - local.get $9 + local.get $5 end else - local.get $9 + local.get $5 end f64.const 2.2250738585072014e-308 f64.mul end br $~lib/util/math/exp_inline|inlined.0 end - local.get $6 + local.get $4 f64.reinterpret_i64 local.tee $1 local.get $1 @@ -8188,9 +8086,7 @@ f64.mul f64.add end - local.set $0 end - local.get $0 ) (func $std/math/test_pow (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 @@ -8212,10 +8108,10 @@ ) (func $~lib/math/NativeMathf.pow (param $0 f32) (param $1 f32) (result f32) (local $2 i32) - (local $3 i32) + (local $3 f32) (local $4 i32) - (local $5 f32) - (local $6 f64) + (local $5 f64) + (local $6 i32) (local $7 f64) (local $8 i32) (local $9 i64) @@ -8273,17 +8169,18 @@ end block $~lib/util/math/powf_lut|inlined.0 local.get $1 - i32.reinterpret_f32 local.tee $3 + i32.reinterpret_f32 + local.tee $4 i32.const 1 i32.shl i32.const 1 i32.sub i32.const -16777217 i32.ge_u - local.tee $4 + local.tee $6 local.get $0 - local.tee $5 + local.tee $1 i32.reinterpret_f32 local.tee $2 i32.const 8388608 @@ -8292,11 +8189,11 @@ i32.ge_u i32.or if - local.get $4 + local.get $6 if f32.const 1 local.set $0 - local.get $3 + local.get $4 i32.const 1 i32.shl i32.eqz @@ -8307,12 +8204,12 @@ i32.const 1065353216 i32.eq br_if $~lib/util/math/powf_lut|inlined.0 - local.get $5 local.get $1 + local.get $3 f32.add local.set $0 i32.const 1 - local.get $3 + local.get $4 i32.const 1 i32.shl i32.const -16777216 @@ -8334,7 +8231,7 @@ br_if $~lib/util/math/powf_lut|inlined.0 f32.const 0 local.set $0 - local.get $3 + local.get $4 i32.const 31 i32.shr_u i32.eqz @@ -8345,8 +8242,8 @@ i32.lt_u i32.eq br_if $~lib/util/math/powf_lut|inlined.0 - local.get $1 - local.get $1 + local.get $3 + local.get $3 f32.mul local.set $0 br $~lib/util/math/powf_lut|inlined.0 @@ -8360,8 +8257,8 @@ i32.ge_u if f32.const 1 - local.get $5 - local.get $5 + local.get $1 + local.get $1 f32.mul local.tee $0 f32.neg @@ -8372,37 +8269,37 @@ if (result i32) block $~lib/util/math/checkintf|inlined.0 (result i32) i32.const 0 - local.get $3 + local.get $4 i32.const 23 i32.shr_u i32.const 255 i32.and - local.tee $4 + local.tee $2 i32.const 127 i32.lt_u br_if $~lib/util/math/checkintf|inlined.0 drop i32.const 2 - local.get $4 + local.get $2 i32.const 150 i32.gt_u br_if $~lib/util/math/checkintf|inlined.0 drop i32.const 0 - local.get $3 i32.const 1 i32.const 150 - local.get $4 + local.get $2 i32.sub i32.shl - local.tee $4 + local.tee $2 i32.const 1 i32.sub + local.get $4 i32.and br_if $~lib/util/math/checkintf|inlined.0 drop i32.const 1 - local.get $3 + local.get $2 local.get $4 i32.and br_if $~lib/util/math/checkintf|inlined.0 @@ -8418,7 +8315,7 @@ local.tee $0 f32.div local.get $0 - local.get $3 + local.get $4 i32.const 31 i32.shr_u select @@ -8429,8 +8326,8 @@ i32.const 31 i32.shr_u if - local.get $5 - local.get $5 + local.get $1 + local.get $1 f32.sub local.tee $0 local.get $0 @@ -8438,50 +8335,49 @@ local.set $0 block $~lib/util/math/checkintf|inlined.1 (result i32) i32.const 0 - local.get $3 - local.tee $4 + local.get $4 i32.const 23 i32.shr_u i32.const 255 i32.and - local.tee $3 + local.tee $6 i32.const 127 i32.lt_u br_if $~lib/util/math/checkintf|inlined.1 drop i32.const 2 - local.get $3 + local.get $6 i32.const 150 i32.gt_u br_if $~lib/util/math/checkintf|inlined.1 drop i32.const 0 - local.get $4 i32.const 1 i32.const 150 - local.get $3 + local.get $6 i32.sub i32.shl - local.tee $3 + local.tee $6 i32.const 1 i32.sub + local.get $4 i32.and br_if $~lib/util/math/checkintf|inlined.1 drop i32.const 1 - local.get $3 local.get $4 + local.get $6 i32.and br_if $~lib/util/math/checkintf|inlined.1 drop i32.const 2 end - local.tee $4 + local.tee $6 i32.eqz br_if $~lib/util/math/powf_lut|inlined.0 i32.const 65536 i32.const 0 - local.get $4 + local.get $6 i32.const 1 i32.eq select @@ -8495,7 +8391,7 @@ i32.const 8388608 i32.lt_u if (result i32) - local.get $5 + local.get $1 f32.const 8388608 f32.mul i32.reinterpret_f32 @@ -8512,14 +8408,14 @@ local.get $2 i32.const 1060306944 i32.sub - local.tee $3 + local.tee $4 i32.const -8388608 i32.and - local.tee $4 + local.tee $6 i32.sub f32.reinterpret_i32 f64.promote_f32 - local.get $3 + local.get $4 i32.const 19 i32.shr_u i32.const 15 @@ -8528,18 +8424,18 @@ i32.shl i32.const 10016 i32.add - local.tee $3 + local.tee $4 f64.load f64.mul f64.const 1 f64.sub - local.tee $6 - local.get $6 + local.tee $5 + local.get $5 f64.mul local.set $7 - local.get $1 + local.get $3 f64.promote_f32 - local.get $6 + local.get $5 f64.const 0.288457581109214 f64.mul f64.const -0.36092606229713164 @@ -8548,18 +8444,18 @@ local.get $7 f64.mul f64.mul - local.get $6 + local.get $5 f64.const 1.4426950408774342 f64.mul - local.get $3 - f64.load offset=8 local.get $4 + f64.load offset=8 + local.get $6 i32.const 23 i32.shr_s f64.convert_i32_s f64.add f64.add - local.get $6 + local.get $5 f64.const 0.480898481472577 f64.mul f64.const -0.7213474675006291 @@ -8569,7 +8465,7 @@ f64.add f64.add f64.mul - local.tee $6 + local.tee $5 i64.reinterpret_f64 i64.const 47 i64.shr_u @@ -8578,7 +8474,7 @@ i64.const 32959 i64.ge_u if - local.get $6 + local.get $5 f64.const 127.99999995700433 f64.gt if @@ -8591,7 +8487,7 @@ local.set $0 br $~lib/util/math/powf_lut|inlined.0 end - local.get $6 + local.get $5 f64.const -150 f64.le if @@ -8605,32 +8501,33 @@ br $~lib/util/math/powf_lut|inlined.0 end end - local.get $6 - local.get $6 + local.get $5 f64.const 211106232532992 f64.add local.tee $7 + i64.reinterpret_f64 + local.set $9 + local.get $5 + local.get $7 f64.const 211106232532992 f64.sub f64.sub - local.tee $6 + local.tee $5 f64.const 0.6931471806916203 f64.mul f64.const 1 f64.add - local.get $6 + local.get $5 f64.const 0.05550361559341535 f64.mul f64.const 0.2402284522445722 f64.add - local.get $6 - local.get $6 + local.get $5 + local.get $5 f64.mul f64.mul f64.add - local.get $7 - i64.reinterpret_f64 - local.tee $9 + local.get $9 i32.wrap_i64 i32.const 31 i32.and @@ -8639,9 +8536,9 @@ i32.const 7712 i32.add i64.load - local.get $9 local.get $8 i64.extend_i32_u + local.get $9 i64.add i64.const 47 i64.shl @@ -8659,46 +8556,46 @@ i32.const 1 global.set $~lib/math/random_seeded local.get $0 - local.get $0 i64.const 33 i64.shr_u + local.get $0 i64.xor i64.const -49064778989728563 i64.mul local.tee $2 - local.get $2 i64.const 33 i64.shr_u + local.get $2 i64.xor i64.const -4265267296055464877 i64.mul local.tee $2 - local.get $2 i64.const 33 i64.shr_u + local.get $2 i64.xor global.set $~lib/math/random_state0_64 global.get $~lib/math/random_state0_64 i64.const -1 i64.xor local.tee $2 - local.get $2 i64.const 33 i64.shr_u + local.get $2 i64.xor i64.const -49064778989728563 i64.mul local.tee $2 - local.get $2 i64.const 33 i64.shr_u + local.get $2 i64.xor i64.const -4265267296055464877 i64.mul local.tee $2 - local.get $2 i64.const 33 i64.shr_u + local.get $2 i64.xor global.set $~lib/math/random_state1_64 local.get $0 @@ -8706,62 +8603,62 @@ i32.const 1831565813 i32.add local.tee $1 + i32.const 1 + i32.or local.get $1 i32.const 15 i32.shr_u - i32.xor local.get $1 - i32.const 1 - i32.or + i32.xor i32.mul local.tee $1 - local.get $1 - local.get $1 i32.const 61 i32.or local.get $1 - local.get $1 i32.const 7 i32.shr_u + local.get $1 i32.xor i32.mul + local.get $1 i32.add + local.get $1 i32.xor local.tee $1 - local.get $1 i32.const 14 i32.shr_u + local.get $1 i32.xor global.set $~lib/math/random_state0_32 global.get $~lib/math/random_state0_32 i32.const 1831565813 i32.add local.tee $1 + i32.const 1 + i32.or local.get $1 i32.const 15 i32.shr_u - i32.xor local.get $1 - i32.const 1 - i32.or + i32.xor i32.mul local.tee $1 - local.get $1 - local.get $1 i32.const 61 i32.or local.get $1 - local.get $1 i32.const 7 i32.shr_u + local.get $1 i32.xor i32.mul + local.get $1 i32.add + local.get $1 i32.xor local.tee $1 - local.get $1 i32.const 14 i32.shr_u + local.get $1 i32.xor global.set $~lib/math/random_state1_32 global.get $~lib/math/random_state1_32 @@ -8792,19 +8689,16 @@ ) (func $std/math/test_round (param $0 f64) (param $1 f64) (result i32) (local $2 f64) - (local $3 f64) local.get $0 f64.ceil local.tee $2 - f64.const 0.5 - f64.sub - local.set $3 - local.get $2 local.get $2 f64.const 1 f64.sub local.get $0 - local.get $3 + local.get $2 + f64.const 0.5 + f64.sub f64.ge select local.get $1 @@ -8813,19 +8707,16 @@ ) (func $std/math/test_roundf (param $0 f32) (param $1 f32) (result i32) (local $2 f32) - (local $3 f32) local.get $0 f32.ceil local.tee $2 - f32.const 0.5 - f32.sub - local.set $3 - local.get $2 local.get $2 f32.const 1 f32.sub local.get $0 - local.get $3 + local.get $2 + f32.const 0.5 + f32.sub f32.ge select local.get $1 @@ -8889,19 +8780,14 @@ i64.const 2047 i64.and local.set $5 - local.get $0 - i64.reinterpret_f64 - local.tee $2 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.set $8 i32.const 1 local.get $1 local.get $1 f64.ne i32.const 1 - local.get $2 + local.get $0 + i64.reinterpret_f64 + local.tee $2 i64.const 52 i64.shr_u i64.const 2047 @@ -8932,6 +8818,11 @@ local.get $0 return end + local.get $2 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.set $8 local.get $3 i64.eqz if (result i64) @@ -9138,17 +9029,13 @@ i32.const 255 i32.and local.set $5 - local.get $0 - i32.reinterpret_f32 - local.tee $2 - i32.const 31 - i32.shr_u - local.set $8 i32.const 1 local.get $1 local.get $1 f32.ne - local.get $2 + local.get $0 + i32.reinterpret_f32 + local.tee $2 i32.const 23 i32.shr_u i32.const 255 @@ -9179,6 +9066,10 @@ local.get $0 return end + local.get $2 + i32.const 31 + i32.shr_u + local.set $8 local.get $3 if (result i32) local.get $2 @@ -9368,31 +9259,32 @@ ) (func $~lib/math/NativeMath.sin (param $0 f64) (result f64) (local $1 f64) - (local $2 i64) + (local $2 f64) (local $3 f64) - (local $4 f64) + (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) + (local $7 i64) (local $8 f64) + (local $9 f64) local.get $0 i64.reinterpret_f64 - local.tee $2 + local.tee $7 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $5 + local.tee $4 i32.const 31 i32.shr_u - local.set $6 - local.get $5 + local.set $5 + local.get $4 i32.const 2147483647 i32.and - local.tee $5 + local.tee $4 i32.const 1072243195 i32.le_u if - local.get $5 + local.get $4 i32.const 1045430272 i32.lt_u if @@ -9403,12 +9295,12 @@ local.get $0 local.get $0 f64.mul - local.tee $3 + local.tee $1 local.get $0 f64.mul - local.get $3 - local.get $3 - local.get $3 + local.get $1 + local.get $1 + local.get $1 f64.const 2.7557313707070068e-06 f64.mul f64.const -1.984126982985795e-04 @@ -9416,12 +9308,12 @@ f64.mul f64.const 0.00833333333332249 f64.add - local.get $3 - local.get $3 - local.get $3 + local.get $1 + local.get $1 + local.get $1 f64.mul f64.mul - local.get $3 + local.get $1 f64.const 1.58969099521155e-10 f64.mul f64.const -2.5050760253406863e-08 @@ -9435,7 +9327,7 @@ f64.add return end - local.get $5 + local.get $4 i32.const 2146435072 i32.ge_u if @@ -9445,27 +9337,27 @@ return end block $~lib/math/rempio2|inlined.1 (result i32) - local.get $2 + local.get $7 i64.const 32 i64.shr_u i32.wrap_i64 i32.const 2147483647 i32.and - local.tee $7 + local.tee $6 i32.const 1073928572 i32.lt_u if i32.const 1 - local.set $5 - local.get $6 + local.set $4 + local.get $5 if (result f64) local.get $0 f64.const 1.5707963267341256 f64.add local.set $0 i32.const -1 - local.set $5 - local.get $7 + local.set $4 + local.get $6 i32.const 1073291771 i32.ne if (result f64) @@ -9481,11 +9373,11 @@ local.get $0 f64.const 6.077100506303966e-11 f64.add - local.tee $3 + local.tee $1 f64.const 2.0222662487959506e-21 f64.add local.set $0 - local.get $3 + local.get $1 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -9496,7 +9388,7 @@ f64.const 1.5707963267341256 f64.sub local.set $0 - local.get $7 + local.get $6 i32.const 1073291771 i32.ne if (result f64) @@ -9512,11 +9404,11 @@ local.get $0 f64.const 6.077100506303966e-11 f64.sub - local.tee $3 + local.tee $1 f64.const 2.0222662487959506e-21 f64.sub local.set $0 - local.get $3 + local.get $1 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -9526,17 +9418,17 @@ local.get $0 global.set $~lib/math/rempio2_y0 global.set $~lib/math/rempio2_y1 - local.get $5 + local.get $4 br $~lib/math/rempio2|inlined.1 end - local.get $7 + local.get $6 i32.const 1094263291 i32.lt_u if - local.get $7 + local.get $6 i32.const 20 i32.shr_u - local.tee $6 + local.tee $5 local.get $0 local.get $0 f64.const 0.6366197723675814 @@ -9550,7 +9442,7 @@ local.get $3 f64.const 6.077100506506192e-11 f64.mul - local.tee $4 + local.tee $2 f64.sub local.tee $1 i64.reinterpret_f64 @@ -9565,25 +9457,25 @@ i32.const 16 i32.gt_u if - local.get $3 - f64.const 2.0222662487959506e-21 - f64.mul - local.get $0 + local.get $5 local.get $0 + local.tee $1 local.get $3 f64.const 6.077100506303966e-11 f64.mul - local.tee $4 + local.tee $2 f64.sub local.tee $0 - f64.sub - local.get $4 - f64.sub - f64.sub - local.set $4 - local.get $6 + local.get $3 + f64.const 2.0222662487959506e-21 + f64.mul + local.get $1 local.get $0 - local.get $4 + f64.sub + local.get $2 + f64.sub + f64.sub + local.tee $2 f64.sub local.tee $1 i64.reinterpret_f64 @@ -9597,37 +9489,35 @@ i32.sub i32.const 49 i32.gt_u - if (result f64) - local.get $3 - f64.const 8.4784276603689e-32 - f64.mul - local.get $0 + if local.get $0 + local.tee $1 local.get $3 f64.const 2.0222662487111665e-21 f64.mul - local.tee $4 + local.tee $2 f64.sub local.tee $0 + local.get $3 + f64.const 8.4784276603689e-32 + f64.mul + local.get $1 + local.get $0 f64.sub - local.get $4 + local.get $2 f64.sub f64.sub - local.set $4 - local.get $0 - local.get $4 + local.tee $2 f64.sub - else - local.get $1 + local.set $1 end - local.set $1 end local.get $1 global.set $~lib/math/rempio2_y0 local.get $0 local.get $1 f64.sub - local.get $4 + local.get $2 f64.sub global.set $~lib/math/rempio2_y1 local.get $3 @@ -9635,37 +9525,41 @@ br $~lib/math/rempio2|inlined.1 end i32.const 0 - local.get $2 + local.get $7 call $~lib/math/pio2_large_quot - local.tee $5 + local.tee $4 i32.sub + local.get $4 local.get $5 - local.get $6 select end - local.set $6 + local.set $5 global.get $~lib/math/rempio2_y0 - local.set $3 + local.set $1 global.get $~lib/math/rempio2_y1 - local.set $4 - local.get $6 + local.set $3 + local.get $5 i32.const 1 i32.and if (result f64) - f64.const 1 - local.get $3 - local.get $3 + local.get $1 + local.get $1 f64.mul local.tee $0 + local.get $0 + f64.mul + local.set $2 + f64.const 1 + local.get $0 f64.const 0.5 f64.mul - local.tee $1 - f64.sub local.tee $8 + f64.sub + local.tee $9 f64.const 1 - local.get $8 + local.get $9 f64.sub - local.get $1 + local.get $8 f64.sub local.get $0 local.get $0 @@ -9679,11 +9573,8 @@ f64.const 0.0416666666666666 f64.add f64.mul - local.get $0 - local.get $0 - f64.mul - local.tee $1 - local.get $1 + local.get $2 + local.get $2 f64.mul local.get $0 local.get $0 @@ -9697,26 +9588,26 @@ f64.mul f64.add f64.mul + local.get $1 local.get $3 - local.get $4 f64.mul f64.sub f64.add f64.add else - local.get $3 - local.get $3 + local.get $1 + local.get $1 f64.mul local.tee $0 - local.get $3 + local.get $1 f64.mul - local.set $1 - local.get $3 + local.set $2 + local.get $1 local.get $0 - local.get $4 + local.get $3 f64.const 0.5 f64.mul - local.get $1 + local.get $2 local.get $0 local.get $0 f64.const 2.7557313707070068e-06 @@ -9741,9 +9632,9 @@ f64.mul f64.sub f64.mul - local.get $4 + local.get $3 f64.sub - local.get $1 + local.get $2 f64.const -0.16666666666666632 f64.mul f64.sub @@ -9752,39 +9643,36 @@ local.tee $0 f64.neg local.get $0 - local.get $6 + local.get $5 i32.const 2 i32.and select ) (func $~lib/math/NativeMathf.sin (param $0 f32) (result f32) - (local $1 i32) - (local $2 i32) - (local $3 i64) - (local $4 i32) + (local $1 f64) + (local $2 f64) + (local $3 i32) + (local $4 f64) (local $5 i64) - (local $6 i64) - (local $7 i64) + (local $6 i32) + (local $7 i32) (local $8 i64) - (local $9 i32) - (local $10 f64) - (local $11 f64) - (local $12 f64) + (local $9 i64) block $folding-inner0 local.get $0 i32.reinterpret_f32 - local.tee $2 + local.tee $3 i32.const 31 i32.shr_u - local.set $9 - local.get $2 + local.set $6 + local.get $3 i32.const 2147483647 i32.and - local.tee $1 + local.tee $3 i32.const 1061752794 i32.le_u if - local.get $1 + local.get $3 i32.const 964689920 i32.lt_u if @@ -9793,49 +9681,49 @@ end local.get $0 f64.promote_f32 - local.tee $11 - local.get $11 + local.tee $2 + local.get $2 f64.mul - local.tee $10 - local.get $11 + local.tee $1 + local.get $2 f64.mul - local.set $12 + local.set $4 br $folding-inner0 end - local.get $1 + local.get $3 i32.const 1081824209 i32.le_u if - local.get $1 + local.get $3 i32.const 1075235811 i32.le_u if - local.get $9 + local.get $6 if (result f32) local.get $0 f64.promote_f32 f64.const 1.5707963267948966 f64.add - local.tee $12 - local.get $12 + local.tee $1 + local.get $1 f64.mul - local.tee $11 - local.get $11 + local.tee $1 + local.get $1 f64.mul - local.set $12 - local.get $11 + local.set $2 + local.get $1 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $12 + local.get $2 f64.const 0.04166662332373906 f64.mul f64.add - local.get $12 - local.get $11 + local.get $2 + local.get $1 f64.mul - local.get $11 + local.get $1 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -9849,26 +9737,26 @@ f64.promote_f32 f64.const 1.5707963267948966 f64.sub - local.tee $12 - local.get $12 + local.tee $1 + local.get $1 f64.mul - local.tee $11 - local.get $11 + local.tee $1 + local.get $1 f64.mul - local.set $12 - local.get $11 + local.set $2 + local.get $1 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $12 + local.get $2 f64.const 0.04166662332373906 f64.mul f64.add - local.get $12 - local.get $11 + local.get $2 + local.get $1 f64.mul - local.get $11 + local.get $1 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -9881,58 +9769,58 @@ end local.get $0 f64.promote_f32 - local.tee $12 + local.tee $1 f64.const 3.141592653589793 f64.add - local.get $12 + local.get $1 f64.const 3.141592653589793 f64.sub - local.get $9 + local.get $6 select f64.neg - local.tee $11 - local.get $11 + local.tee $2 + local.get $2 f64.mul - local.tee $10 - local.get $11 + local.tee $1 + local.get $2 f64.mul - local.set $12 + local.set $4 br $folding-inner0 end - local.get $1 + local.get $3 i32.const 1088565717 i32.le_u if - local.get $1 + local.get $3 i32.const 1085271519 i32.le_u if - local.get $9 + local.get $6 if (result f32) local.get $0 f64.promote_f32 f64.const 4.71238898038469 f64.add - local.tee $12 - local.get $12 + local.tee $1 + local.get $1 f64.mul - local.tee $11 - local.get $11 + local.tee $1 + local.get $1 f64.mul - local.set $12 - local.get $11 + local.set $2 + local.get $1 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $12 + local.get $2 f64.const 0.04166662332373906 f64.mul f64.add - local.get $12 - local.get $11 + local.get $2 + local.get $1 f64.mul - local.get $11 + local.get $1 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -9945,26 +9833,26 @@ f64.promote_f32 f64.const 4.71238898038469 f64.sub - local.tee $12 - local.get $12 + local.tee $1 + local.get $1 f64.mul - local.tee $11 - local.get $11 + local.tee $1 + local.get $1 f64.mul - local.set $12 - local.get $11 + local.set $2 + local.get $1 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $12 + local.get $2 f64.const 0.04166662332373906 f64.mul f64.add - local.get $12 - local.get $11 + local.get $2 + local.get $1 f64.mul - local.get $11 + local.get $1 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -9978,24 +9866,24 @@ end local.get $0 f64.promote_f32 - local.tee $12 + local.tee $1 f64.const 6.283185307179586 f64.add - local.get $12 + local.get $1 f64.const 6.283185307179586 f64.sub - local.get $9 + local.get $6 select - local.tee $11 - local.get $11 + local.tee $2 + local.get $2 f64.mul - local.tee $10 - local.get $11 + local.tee $1 + local.get $2 f64.mul - local.set $12 + local.set $4 br $folding-inner0 end - local.get $1 + local.get $3 i32.const 2139095040 i32.ge_u if @@ -10005,154 +9893,149 @@ return end block $~lib/math/rempio2f|inlined.1 (result i32) - local.get $1 - local.tee $2 + local.get $3 i32.const 1305022427 i32.lt_u if local.get $0 f64.promote_f32 - local.tee $12 + local.tee $2 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $11 - local.get $12 - local.get $11 + local.set $1 + local.get $2 + local.get $1 f64.const 1.5707963109016418 f64.mul f64.sub - local.get $11 + local.get $1 f64.const 1.5893254773528196e-08 f64.mul f64.sub global.set $~lib/math/rempio2f_y - local.get $11 + local.get $1 i32.trunc_f64_s br $~lib/math/rempio2f|inlined.1 end - local.get $2 + local.get $3 i32.const 23 i32.shr_s i32.const 152 i32.sub - local.tee $2 - i32.const 6 - i32.shr_s - i32.const 3 - i32.shl - i32.const 5632 - i32.add - local.tee $4 - i64.load - local.set $7 - local.get $4 - i64.load offset=8 - local.set $6 - local.get $2 + local.tee $7 i32.const 63 i32.and i64.extend_i32_s - local.tee $8 - i64.const 32 - i64.gt_u - if (result i64) - local.get $6 - local.get $8 - i64.const 32 - i64.sub - i64.shl - local.get $4 - i64.load offset=16 - i64.const 96 - local.get $8 - i64.sub - i64.shr_u - i64.or - else - local.get $6 - i64.const 32 - local.get $8 - i64.sub - i64.shr_u - end - local.set $3 + local.set $5 f64.const 8.515303950216386e-20 local.get $0 f64.promote_f32 f64.copysign - local.get $1 + local.get $3 i32.const 8388607 i32.and i32.const 8388608 i32.or i64.extend_i32_s - local.tee $5 + local.tee $9 local.get $7 - local.get $8 + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.const 5632 + i32.add + local.tee $7 + i64.load + local.get $5 i64.shl - local.get $6 + local.get $7 + i64.load offset=8 + local.tee $8 i64.const 64 - local.get $8 + local.get $5 i64.sub i64.shr_u i64.or i64.mul - local.get $3 local.get $5 + i64.const 32 + i64.gt_u + if (result i64) + local.get $8 + local.get $5 + i64.const 32 + i64.sub + i64.shl + local.get $7 + i64.load offset=16 + i64.const 96 + local.get $5 + i64.sub + i64.shr_u + i64.or + else + local.get $8 + i64.const 32 + local.get $5 + i64.sub + i64.shr_u + end + local.get $9 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $7 + local.tee $5 i64.const 2 i64.shl - local.tee $5 + local.tee $8 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y i32.const 0 - local.get $7 + local.get $5 i64.const 62 i64.shr_u - local.get $5 + local.get $8 i64.const 63 i64.shr_u i64.add i32.wrap_i64 - local.tee $2 + local.tee $3 i32.sub - local.get $2 - local.get $9 + local.get $3 + local.get $6 select end - local.set $2 + local.set $3 global.get $~lib/math/rempio2f_y - local.set $12 - local.get $2 + local.set $1 + local.get $3 i32.const 1 i32.and if (result f32) - local.get $12 - local.get $12 + local.get $1 + local.get $1 f64.mul - local.tee $11 - local.get $11 + local.tee $1 + local.get $1 f64.mul - local.set $12 - local.get $11 + local.set $2 + local.get $1 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $12 + local.get $2 f64.const 0.04166662332373906 f64.mul f64.add - local.get $12 - local.get $11 + local.get $2 + local.get $1 f64.mul - local.get $11 + local.get $1 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -10161,27 +10044,27 @@ f64.add f32.demote_f64 else - local.get $12 - local.get $12 - local.get $12 + local.get $1 + local.get $1 + local.get $1 f64.mul - local.tee $11 - local.get $12 + local.tee $2 + local.get $1 f64.mul - local.tee $12 - local.get $11 + local.tee $1 + local.get $2 f64.const 0.008333329385889463 f64.mul f64.const -0.16666666641626524 f64.add f64.mul f64.add - local.get $12 - local.get $11 - local.get $11 + local.get $1 + local.get $2 + local.get $2 f64.mul f64.mul - local.get $11 + local.get $2 f64.const 2.718311493989822e-06 f64.mul f64.const -1.9839334836096632e-04 @@ -10193,27 +10076,27 @@ local.tee $0 f32.neg local.get $0 - local.get $2 + local.get $3 i32.const 2 i32.and select return end - local.get $11 - local.get $12 - local.get $10 + local.get $2 + local.get $4 + local.get $1 f64.const 0.008333329385889463 f64.mul f64.const -0.16666666641626524 f64.add f64.mul f64.add - local.get $12 - local.get $10 - local.get $10 + local.get $4 + local.get $1 + local.get $1 f64.mul f64.mul - local.get $10 + local.get $1 f64.const 2.718311493989822e-06 f64.mul f64.const -1.9839334836096632e-04 @@ -10316,18 +10199,18 @@ (local $3 f32) (local $4 f32) (local $5 i32) - local.get $0 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $5 - f32.reinterpret_i32 - local.set $3 - f32.const 0.5 - local.get $0 - f32.copysign - local.set $4 - block $__inlined_func$~lib/math/NativeMathf.sinh + block $__inlined_func$~lib/math/NativeMathf.sinh (result f32) + local.get $0 + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.tee $5 + f32.reinterpret_i32 + local.set $3 + f32.const 0.5 + local.get $0 + f32.copysign + local.set $4 local.get $5 i32.const 1118925335 i32.lt_u @@ -10339,10 +10222,12 @@ i32.const 1065353216 i32.lt_u if + local.get $0 local.get $5 i32.const 964689920 i32.lt_u br_if $__inlined_func$~lib/math/NativeMathf.sinh + drop local.get $4 local.get $3 local.get $3 @@ -10356,7 +10241,6 @@ f32.div f32.sub f32.mul - local.set $0 br $__inlined_func$~lib/math/NativeMathf.sinh end local.get $4 @@ -10368,7 +10252,6 @@ f32.div f32.add f32.mul - local.set $0 br $__inlined_func$~lib/math/NativeMathf.sinh end local.get $3 @@ -10383,9 +10266,7 @@ f32.mul f32.const 1661534994731144841129758e11 f32.mul - local.set $0 end - local.get $0 local.get $1 local.get $2 call $std/math/check @@ -10434,17 +10315,17 @@ local.get $0 f64.mul local.tee $4 - local.get $0 + local.get $4 f64.mul - local.set $5 + local.set $3 local.get $0 local.get $1 local.get $4 - local.get $5 - local.get $4 local.get $4 + local.get $0 f64.mul - local.tee $3 + local.tee $5 + local.get $3 local.get $3 local.get $3 local.get $3 @@ -10525,9 +10406,8 @@ local.get $3 f64.sub f64.sub - local.tee $0 - local.get $0 - f64.add + f64.const 2 + f64.mul f64.sub f64.mul return @@ -10572,32 +10452,31 @@ ) (func $~lib/math/NativeMath.tan (param $0 f64) (result f64) (local $1 f64) - (local $2 i64) - (local $3 f64) + (local $2 f64) + (local $3 i32) (local $4 i32) - (local $5 f64) + (local $5 i64) (local $6 i32) - (local $7 i32) + (local $7 f64) local.get $0 i64.reinterpret_f64 - local.tee $2 + local.tee $5 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $4 + local.tee $3 i32.const 31 i32.shr_u - local.set $6 - local.get $4 + local.get $3 i32.const 2147483647 i32.and - local.tee $4 + local.tee $3 i32.const 1072243195 i32.le_u if - local.get $4 + local.get $3 i32.const 1044381696 - i32.lt_s + i32.lt_u if local.get $0 return @@ -10608,29 +10487,30 @@ call $~lib/math/tan_kern return end - local.get $4 + local.get $3 i32.const 2146435072 - i32.ge_s + i32.ge_u if local.get $0 local.get $0 f64.sub return end - block $~lib/math/rempio2|inlined.2 (result i32) - local.get $2 + local.set $3 + block $~lib/math/rempio2|inlined.2 + local.get $5 i64.const 32 i64.shr_u i32.wrap_i64 i32.const 2147483647 i32.and - local.tee $7 + local.tee $6 i32.const 1073928572 i32.lt_u if i32.const 1 local.set $4 - local.get $6 + local.get $3 if (result f64) local.get $0 f64.const 1.5707963267341256 @@ -10638,7 +10518,7 @@ local.set $0 i32.const -1 local.set $4 - local.get $7 + local.get $6 i32.const 1073291771 i32.ne if (result f64) @@ -10654,11 +10534,11 @@ local.get $0 f64.const 6.077100506303966e-11 f64.add - local.tee $3 + local.tee $1 f64.const 2.0222662487959506e-21 f64.add local.set $0 - local.get $3 + local.get $1 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -10669,7 +10549,7 @@ f64.const 1.5707963267341256 f64.sub local.set $0 - local.get $7 + local.get $6 i32.const 1073291771 i32.ne if (result f64) @@ -10685,11 +10565,11 @@ local.get $0 f64.const 6.077100506303966e-11 f64.sub - local.tee $3 + local.tee $1 f64.const 2.0222662487959506e-21 f64.sub local.set $0 - local.get $3 + local.get $1 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -10699,33 +10579,32 @@ local.get $0 global.set $~lib/math/rempio2_y0 global.set $~lib/math/rempio2_y1 - local.get $4 br $~lib/math/rempio2|inlined.2 end - local.get $7 + local.get $6 i32.const 1094263291 i32.lt_u if - local.get $7 + local.get $6 i32.const 20 i32.shr_u - local.tee $6 + local.tee $4 local.get $0 local.get $0 f64.const 0.6366197723675814 f64.mul f64.nearest - local.tee $3 + local.tee $7 f64.const 1.5707963267341256 f64.mul f64.sub local.tee $0 - local.get $3 + local.get $7 f64.const 6.077100506506192e-11 f64.mul - local.tee $5 - f64.sub local.tee $1 + f64.sub + local.tee $2 i64.reinterpret_f64 i64.const 32 i64.shr_u @@ -10738,27 +10617,27 @@ i32.const 16 i32.gt_u if - local.get $3 - f64.const 2.0222662487959506e-21 - f64.mul - local.get $0 + local.get $4 local.get $0 - local.get $3 + local.tee $1 + local.get $7 f64.const 6.077100506303966e-11 f64.mul - local.tee $5 + local.tee $2 f64.sub local.tee $0 + local.get $7 + f64.const 2.0222662487959506e-21 + f64.mul + local.get $1 + local.get $0 f64.sub - local.get $5 - f64.sub + local.get $2 f64.sub - local.set $5 - local.get $6 - local.get $0 - local.get $5 f64.sub local.tee $1 + f64.sub + local.tee $2 i64.reinterpret_f64 i64.const 32 i64.shr_u @@ -10770,57 +10649,56 @@ i32.sub i32.const 49 i32.gt_u - if (result f64) - local.get $3 - f64.const 8.4784276603689e-32 - f64.mul - local.get $0 + if local.get $0 - local.get $3 + local.tee $1 + local.get $7 f64.const 2.0222662487111665e-21 f64.mul - local.tee $5 + local.tee $2 f64.sub local.tee $0 + local.get $7 + f64.const 8.4784276603689e-32 + f64.mul + local.get $1 + local.get $0 f64.sub - local.get $5 + local.get $2 f64.sub f64.sub - local.set $5 - local.get $0 - local.get $5 + local.tee $1 f64.sub - else - local.get $1 + local.set $2 end - local.set $1 end - local.get $1 + local.get $2 global.set $~lib/math/rempio2_y0 local.get $0 - local.get $1 + local.get $2 f64.sub - local.get $5 + local.get $1 f64.sub global.set $~lib/math/rempio2_y1 - local.get $3 + local.get $7 i32.trunc_f64_s + local.set $4 br $~lib/math/rempio2|inlined.2 end i32.const 0 - local.get $2 + local.get $5 call $~lib/math/pio2_large_quot local.tee $4 i32.sub local.get $4 - local.get $6 + local.get $3 select + local.set $4 end - local.set $6 global.get $~lib/math/rempio2_y0 global.get $~lib/math/rempio2_y1 i32.const 1 - local.get $6 + local.get $4 i32.const 1 i32.and i32.const 1 @@ -10829,34 +10707,31 @@ call $~lib/math/tan_kern ) (func $~lib/math/NativeMathf.tan (param $0 f32) (result f32) - (local $1 i32) - (local $2 i32) - (local $3 i64) + (local $1 f64) + (local $2 f64) + (local $3 f64) (local $4 i32) (local $5 i64) - (local $6 i64) - (local $7 i64) - (local $8 i64) - (local $9 i32) - (local $10 f64) - (local $11 f64) - (local $12 f64) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) block $folding-inner1 block $folding-inner0 local.get $0 i32.reinterpret_f32 - local.tee $1 + local.tee $4 i32.const 31 i32.shr_u - local.set $9 - local.get $1 + local.set $6 + local.get $4 i32.const 2147483647 i32.and - local.tee $2 + local.tee $4 i32.const 1061752794 i32.le_u if - local.get $2 + local.get $4 i32.const 964689920 i32.lt_u if @@ -10865,112 +10740,112 @@ end local.get $0 f64.promote_f32 - local.tee $10 - local.get $10 + local.tee $2 + local.get $2 f64.mul - local.tee $11 - local.get $10 + local.tee $1 + local.get $1 f64.mul - local.set $12 + local.set $3 br $folding-inner0 end - local.get $2 + local.get $4 i32.const 1081824209 i32.le_u if - local.get $2 + local.get $4 i32.const 1075235811 i32.le_u if local.get $0 f64.promote_f32 - local.tee $12 + local.tee $1 f64.const 1.5707963267948966 f64.add - local.get $12 + local.get $1 f64.const 1.5707963267948966 f64.sub - local.get $9 + local.get $6 select - local.tee $10 - local.get $10 + local.tee $2 + local.get $2 f64.mul - local.tee $11 - local.get $10 + local.tee $1 + local.get $1 f64.mul - local.set $12 + local.set $3 br $folding-inner1 else local.get $0 f64.promote_f32 - local.tee $12 + local.tee $1 f64.const 3.141592653589793 f64.add - local.get $12 + local.get $1 f64.const 3.141592653589793 f64.sub - local.get $9 + local.get $6 select - local.tee $10 - local.get $10 + local.tee $2 + local.get $2 f64.mul - local.tee $11 - local.get $10 + local.tee $1 + local.get $1 f64.mul - local.set $12 + local.set $3 br $folding-inner0 end unreachable end - local.get $2 + local.get $4 i32.const 1088565717 i32.le_u if - local.get $2 + local.get $4 i32.const 1085271519 i32.le_u if local.get $0 f64.promote_f32 - local.tee $12 + local.tee $1 f64.const 4.71238898038469 f64.add - local.get $12 + local.get $1 f64.const 4.71238898038469 f64.sub - local.get $9 + local.get $6 select - local.tee $10 - local.get $10 + local.tee $2 + local.get $2 f64.mul - local.tee $11 - local.get $10 + local.tee $1 + local.get $1 f64.mul - local.set $12 + local.set $3 br $folding-inner1 else local.get $0 f64.promote_f32 - local.tee $12 + local.tee $1 f64.const 6.283185307179586 f64.add - local.get $12 + local.get $1 f64.const 6.283185307179586 f64.sub - local.get $9 + local.get $6 select - local.tee $10 - local.get $10 + local.tee $2 + local.get $2 f64.mul - local.tee $11 - local.get $10 + local.tee $1 + local.get $1 f64.mul - local.set $12 + local.set $3 br $folding-inner0 end unreachable end - local.get $2 + local.get $4 i32.const 2139095040 i32.ge_u if @@ -10980,159 +10855,154 @@ return end block $~lib/math/rempio2f|inlined.2 (result i32) - local.get $2 - local.tee $1 + local.get $4 i32.const 1305022427 i32.lt_u if local.get $0 f64.promote_f32 - local.tee $12 + local.tee $2 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $10 - local.get $12 - local.get $10 + local.set $1 + local.get $2 + local.get $1 f64.const 1.5707963109016418 f64.mul f64.sub - local.get $10 + local.get $1 f64.const 1.5893254773528196e-08 f64.mul f64.sub global.set $~lib/math/rempio2f_y - local.get $10 + local.get $1 i32.trunc_f64_s br $~lib/math/rempio2f|inlined.2 end - local.get $1 + local.get $4 i32.const 23 i32.shr_s i32.const 152 i32.sub - local.tee $1 + local.tee $7 + i32.const 63 + i32.and + i64.extend_i32_s + local.set $5 + f64.const 8.515303950216386e-20 + local.get $0 + f64.promote_f32 + f64.copysign + local.get $4 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.tee $9 + local.get $7 i32.const 6 i32.shr_s i32.const 3 i32.shl i32.const 5632 i32.add - local.tee $4 + local.tee $7 i64.load - local.set $7 - local.get $4 + local.get $5 + i64.shl + local.get $7 i64.load offset=8 - local.set $6 - local.get $1 - i32.const 63 - i32.and - i64.extend_i32_s local.tee $8 + i64.const 64 + local.get $5 + i64.sub + i64.shr_u + i64.or + i64.mul + local.get $5 i64.const 32 i64.gt_u if (result i64) - local.get $6 local.get $8 + local.get $5 i64.const 32 i64.sub i64.shl - local.get $4 + local.get $7 i64.load offset=16 i64.const 96 - local.get $8 + local.get $5 i64.sub i64.shr_u i64.or else - local.get $6 - i64.const 32 local.get $8 + i64.const 32 + local.get $5 i64.sub i64.shr_u end - local.set $3 - f64.const 8.515303950216386e-20 - local.get $0 - f64.promote_f32 - f64.copysign - local.get $2 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.tee $5 - local.get $7 - local.get $8 - i64.shl - local.get $6 - i64.const 64 - local.get $8 - i64.sub - i64.shr_u - i64.or - i64.mul - local.get $3 - local.get $5 + local.get $9 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $7 + local.tee $5 i64.const 2 i64.shl - local.tee $5 + local.tee $8 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y i32.const 0 - local.get $7 + local.get $5 i64.const 62 i64.shr_u - local.get $5 + local.get $8 i64.const 63 i64.shr_u i64.add i32.wrap_i64 - local.tee $1 + local.tee $4 i32.sub - local.get $1 - local.get $9 + local.get $4 + local.get $6 select end - local.set $1 + local.set $4 global.get $~lib/math/rempio2f_y - local.tee $10 - local.get $10 + local.tee $2 + local.get $2 f64.mul - local.tee $11 - local.get $10 + local.tee $1 + local.get $1 f64.mul - local.set $12 + local.set $3 f64.const -1 - local.get $10 - local.get $12 - local.get $11 + local.get $2 + local.get $1 + local.get $2 + f64.mul + local.tee $2 + local.get $1 f64.const 0.13339200271297674 f64.mul f64.const 0.3333313950307914 f64.add f64.mul f64.add - local.get $12 - local.get $11 - local.get $11 - f64.mul - local.tee $12 + local.get $2 + local.get $3 f64.mul - local.get $11 + local.get $1 f64.const 0.024528318116654728 f64.mul f64.const 0.05338123784456704 f64.add - local.get $12 - local.get $11 + local.get $3 + local.get $1 f64.const 0.009465647849436732 f64.mul f64.const 0.002974357433599673 @@ -11141,38 +11011,38 @@ f64.add f64.mul f64.add - local.tee $12 + local.tee $1 f64.div - local.get $12 local.get $1 + local.get $4 i32.const 1 i32.and select f32.demote_f64 return end - local.get $10 - local.get $12 - local.get $11 + local.get $2 + local.get $1 + local.get $2 + f64.mul + local.tee $2 + local.get $1 f64.const 0.13339200271297674 f64.mul f64.const 0.3333313950307914 f64.add f64.mul f64.add - local.get $12 - local.get $11 - local.get $11 - f64.mul - local.tee $12 + local.get $2 + local.get $3 f64.mul - local.get $11 + local.get $1 f64.const 0.024528318116654728 f64.mul f64.const 0.05338123784456704 f64.add - local.get $12 - local.get $11 + local.get $3 + local.get $1 f64.const 0.009465647849436732 f64.mul f64.const 0.002974357433599673 @@ -11185,28 +11055,28 @@ return end f64.const -1 - local.get $10 - local.get $12 - local.get $11 + local.get $2 + local.get $1 + local.get $2 + f64.mul + local.tee $2 + local.get $1 f64.const 0.13339200271297674 f64.mul f64.const 0.3333313950307914 f64.add f64.mul f64.add - local.get $12 - local.get $11 - local.get $11 - f64.mul - local.tee $12 + local.get $2 + local.get $3 f64.mul - local.get $11 + local.get $1 f64.const 0.024528318116654728 f64.mul f64.const 0.05338123784456704 f64.add - local.get $12 - local.get $11 + local.get $3 + local.get $1 f64.const 0.009465647849436732 f64.mul f64.const 0.002974357433599673 @@ -11223,13 +11093,12 @@ (local $4 i32) (local $5 i64) local.get $0 - local.tee $3 i64.reinterpret_f64 i64.const 9223372036854775807 i64.and local.tee $5 f64.reinterpret_i64 - local.set $0 + local.set $3 local.get $5 i64.const 32 i64.shr_u @@ -11244,14 +11113,14 @@ if (result f64) f64.const 1 f64.const 0 - local.get $0 + local.get $3 f64.div f64.sub else f64.const 1 f64.const 2 - local.get $0 - local.get $0 + local.get $3 + local.get $3 f64.add call $~lib/math/NativeMath.expm1 f64.const 2 @@ -11264,12 +11133,12 @@ i32.const 1070618798 i32.gt_u if (result f64) - local.get $0 - local.get $0 + local.get $3 + local.get $3 f64.add call $~lib/math/NativeMath.expm1 - local.tee $0 - local.get $0 + local.tee $3 + local.get $3 f64.const 2 f64.add f64.div @@ -11278,28 +11147,28 @@ i32.const 1048576 i32.ge_u if (result f64) - local.get $0 + local.get $3 f64.const -2 f64.mul call $~lib/math/NativeMath.expm1 - local.tee $0 + local.tee $3 f64.neg - local.get $0 + local.get $3 f64.const 2 f64.add f64.div else - local.get $0 + local.get $3 end end end - local.get $3 + local.get $0 f64.copysign local.get $1 local.get $2 call $std/math/check if (result i32) - local.get $3 + local.get $0 call $~lib/bindings/Math/tanh local.get $1 local.get $2 @@ -11386,33 +11255,32 @@ (func $~lib/math/NativeMath.sincos (param $0 f64) (local $1 f64) (local $2 f64) - (local $3 i64) - (local $4 f64) - (local $5 i32) - (local $6 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 f64) (local $7 f64) (local $8 i32) (local $9 f64) (local $10 f64) - (local $11 f64) + (local $11 i64) local.get $0 i64.reinterpret_f64 - local.tee $3 + local.tee $11 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $5 + local.tee $4 i32.const 31 i32.shr_u - local.set $6 - local.get $5 + local.get $4 i32.const 2147483647 i32.and - local.tee $5 + local.tee $4 i32.const 1072243195 i32.le_u if - local.get $5 + local.get $4 i32.const 1044816030 i32.lt_u if @@ -11424,14 +11292,18 @@ end local.get $0 local.get $0 - local.get $0 f64.mul - local.tee $2 + local.tee $5 + local.get $5 + f64.mul + local.set $7 + local.get $0 + local.get $5 local.get $0 f64.mul - local.get $2 - local.get $2 - local.get $2 + local.get $5 + local.get $5 + local.get $5 f64.const 2.7557313707070068e-06 f64.mul f64.const -1.984126982985795e-04 @@ -11439,13 +11311,10 @@ f64.mul f64.const 0.00833333333332249 f64.add - local.get $2 - local.get $2 - local.get $2 - f64.mul - local.tee $4 + local.get $5 + local.get $7 f64.mul - local.get $2 + local.get $5 f64.const 1.58969099521155e-10 f64.mul f64.const -2.5050760253406863e-08 @@ -11459,21 +11328,21 @@ f64.add global.set $~lib/math/NativeMath.sincos_sin f64.const 1 - local.get $2 + local.get $5 f64.const 0.5 f64.mul - local.tee $1 + local.tee $2 f64.sub - local.tee $7 + local.tee $1 f64.const 1 - local.get $7 - f64.sub local.get $1 f64.sub local.get $2 - local.get $2 - local.get $2 - local.get $2 + f64.sub + local.get $5 + local.get $5 + local.get $5 + local.get $5 f64.const 2.480158728947673e-05 f64.mul f64.const -0.001388888888887411 @@ -11482,11 +11351,11 @@ f64.const 0.0416666666666666 f64.add f64.mul - local.get $4 - local.get $4 + local.get $7 + local.get $7 f64.mul - local.get $2 - local.get $2 + local.get $5 + local.get $5 f64.const -1.1359647557788195e-11 f64.mul f64.const 2.087572321298175e-09 @@ -11506,7 +11375,7 @@ global.set $~lib/math/NativeMath.sincos_cos return end - local.get $5 + local.get $4 i32.const 2139095040 i32.ge_u if @@ -11519,8 +11388,9 @@ global.set $~lib/math/NativeMath.sincos_cos return end - block $~lib/math/rempio2|inlined.3 (result i32) - local.get $3 + local.set $4 + block $~lib/math/rempio2|inlined.3 + local.get $11 i64.const 32 i64.shr_u i32.wrap_i64 @@ -11531,15 +11401,15 @@ i32.lt_u if i32.const 1 - local.set $5 - local.get $6 + local.set $3 + local.get $4 if (result f64) local.get $0 f64.const 1.5707963267341256 f64.add local.set $0 i32.const -1 - local.set $5 + local.set $3 local.get $8 i32.const 1073291771 i32.ne @@ -11556,11 +11426,11 @@ local.get $0 f64.const 6.077100506303966e-11 f64.add - local.tee $2 + local.tee $1 f64.const 2.0222662487959506e-21 f64.add local.set $0 - local.get $2 + local.get $1 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -11587,11 +11457,11 @@ local.get $0 f64.const 6.077100506303966e-11 f64.sub - local.tee $2 + local.tee $1 f64.const 2.0222662487959506e-21 f64.sub local.set $0 - local.get $2 + local.get $1 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -11601,7 +11471,6 @@ local.get $0 global.set $~lib/math/rempio2_y0 global.set $~lib/math/rempio2_y1 - local.get $5 br $~lib/math/rempio2|inlined.3 end local.get $8 @@ -11611,23 +11480,23 @@ local.get $8 i32.const 20 i32.shr_u - local.tee $6 + local.tee $3 local.get $0 local.get $0 f64.const 0.6366197723675814 f64.mul f64.nearest - local.tee $2 + local.tee $7 f64.const 1.5707963267341256 f64.mul f64.sub local.tee $0 - local.get $2 + local.get $7 f64.const 6.077100506506192e-11 f64.mul - local.tee $4 - f64.sub local.tee $1 + f64.sub + local.tee $2 i64.reinterpret_f64 i64.const 32 i64.shr_u @@ -11640,27 +11509,27 @@ i32.const 16 i32.gt_u if - local.get $2 - f64.const 2.0222662487959506e-21 - f64.mul - local.get $0 + local.get $3 local.get $0 - local.get $2 + local.tee $1 + local.get $7 f64.const 6.077100506303966e-11 f64.mul - local.tee $4 + local.tee $2 f64.sub local.tee $0 + local.get $7 + f64.const 2.0222662487959506e-21 + f64.mul + local.get $1 + local.get $0 f64.sub - local.get $4 - f64.sub + local.get $2 f64.sub - local.set $4 - local.get $6 - local.get $0 - local.get $4 f64.sub local.tee $1 + f64.sub + local.tee $2 i64.reinterpret_f64 i64.const 32 i64.shr_u @@ -11672,70 +11541,72 @@ i32.sub i32.const 49 i32.gt_u - if (result f64) - local.get $2 - f64.const 8.4784276603689e-32 - f64.mul - local.get $0 + if local.get $0 - local.get $2 + local.tee $1 + local.get $7 f64.const 2.0222662487111665e-21 f64.mul - local.tee $4 + local.tee $2 f64.sub local.tee $0 + local.get $7 + f64.const 8.4784276603689e-32 + f64.mul + local.get $1 + local.get $0 f64.sub - local.get $4 + local.get $2 f64.sub f64.sub - local.set $4 - local.get $0 - local.get $4 + local.tee $1 f64.sub - else - local.get $1 + local.set $2 end - local.set $1 end - local.get $1 + local.get $2 global.set $~lib/math/rempio2_y0 local.get $0 - local.get $1 + local.get $2 f64.sub - local.get $4 + local.get $1 f64.sub global.set $~lib/math/rempio2_y1 - local.get $2 + local.get $7 i32.trunc_f64_s + local.set $3 br $~lib/math/rempio2|inlined.3 end i32.const 0 - local.get $3 + local.get $11 call $~lib/math/pio2_large_quot - local.tee $5 + local.tee $3 i32.sub - local.get $5 - local.get $6 + local.get $3 + local.get $4 select + local.set $3 end - local.set $6 global.get $~lib/math/rempio2_y0 - local.tee $4 - local.get $4 + local.tee $9 + local.get $9 f64.mul - local.tee $0 - local.get $4 + local.tee $6 + local.get $6 f64.mul - local.set $2 - local.get $4 - local.get $0 + local.set $10 + local.get $9 + local.get $6 global.get $~lib/math/rempio2_y1 - local.tee $1 + local.tee $5 f64.const 0.5 f64.mul - local.get $2 - local.get $0 - local.get $0 + local.get $6 + local.get $9 + f64.mul + local.tee $0 + local.get $6 + local.get $6 f64.const 2.7557313707070068e-06 f64.mul f64.const -1.984126982985795e-04 @@ -11743,13 +11614,10 @@ f64.mul f64.const 0.00833333333332249 f64.add - local.get $0 - local.get $0 - local.get $0 - f64.mul - local.tee $7 + local.get $6 + local.get $10 f64.mul - local.get $0 + local.get $6 f64.const 1.58969099521155e-10 f64.mul f64.const -2.5050760253406863e-08 @@ -11759,31 +11627,31 @@ f64.mul f64.sub f64.mul - local.get $1 + local.get $5 f64.sub - local.get $2 + local.get $0 f64.const -0.16666666666666632 f64.mul f64.sub f64.sub - local.tee $9 - local.set $2 + local.tee $7 + local.set $0 f64.const 1 - local.get $0 + local.get $6 f64.const 0.5 f64.mul - local.tee $10 + local.tee $2 f64.sub - local.tee $11 + local.tee $1 f64.const 1 - local.get $11 + local.get $1 f64.sub - local.get $10 + local.get $2 f64.sub - local.get $0 - local.get $0 - local.get $0 - local.get $0 + local.get $6 + local.get $6 + local.get $6 + local.get $6 f64.const 2.480158728947673e-05 f64.mul f64.const -0.001388888888887411 @@ -11792,11 +11660,11 @@ f64.const 0.0416666666666666 f64.add f64.mul - local.get $7 - local.get $7 + local.get $10 + local.get $10 f64.mul - local.get $0 - local.get $0 + local.get $6 + local.get $6 f64.const -1.1359647557788195e-11 f64.mul f64.const 2.087572321298175e-09 @@ -11807,37 +11675,37 @@ f64.mul f64.add f64.mul - local.get $4 - local.get $1 + local.get $9 + local.get $5 f64.mul f64.sub f64.add f64.add - local.set $0 - local.get $6 + local.set $1 + local.get $3 i32.const 1 i32.and if - local.get $0 - local.set $2 - local.get $9 - f64.neg + local.get $1 local.set $0 + local.get $7 + f64.neg + local.set $1 end - local.get $6 + local.get $3 i32.const 2 - i32.and - if - local.get $2 + i32.and + if (result f64) + local.get $1 f64.neg - local.set $2 + local.set $1 local.get $0 f64.neg - local.set $0 + else + local.get $0 end - local.get $2 global.set $~lib/math/NativeMath.sincos_sin - local.get $0 + local.get $1 global.set $~lib/math/NativeMath.sincos_cos ) (func $std/math/test_sincos (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) @@ -14439,9 +14307,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14452,9 +14321,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14465,9 +14335,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14478,9 +14349,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14491,9 +14363,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14504,9 +14377,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.acos f32.const 0.8473311066627502 f32.const -0.13588131964206696 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14517,9 +14391,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.acos f32.const 1.989530086517334 f32.const 0.03764917701482773 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14530,9 +14405,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.acos f32.const 0.9742849469184875 f32.const 0.18443739414215088 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14543,9 +14419,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.acos f32.const 0.6854215264320374 f32.const -0.29158344864845276 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14556,9 +14433,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.acos f32.const 2.3168740272521973 f32.const -0.3795364499092102 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14569,9 +14447,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.acos f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14582,9 +14461,10 @@ unreachable end f32.const -1 + call $~lib/math/NativeMathf.acos f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14595,9 +14475,10 @@ unreachable end f32.const 1 + call $~lib/math/NativeMathf.acos f32.const 0 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14608,9 +14489,10 @@ unreachable end f32.const 1.0000001192092896 + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14621,9 +14503,10 @@ unreachable end f32.const -1.0000001192092896 + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14634,9 +14517,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14647,9 +14531,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14660,9 +14545,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14673,9 +14559,10 @@ unreachable end f32.const 0.49965065717697144 + call $~lib/math/NativeMathf.acos f32.const 1.0476008653640747 f32.const -0.21161814033985138 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14686,9 +14573,10 @@ unreachable end f32.const -0.5051405429840088 + call $~lib/math/NativeMathf.acos f32.const 2.1003410816192627 f32.const -0.20852705836296082 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -14699,9 +14587,10 @@ unreachable end f32.const -0.5189794898033142 + call $~lib/math/NativeMathf.acos f32.const 2.116452932357788 f32.const -0.14600826799869537 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -15679,9 +15568,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15692,9 +15582,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15705,9 +15596,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15718,9 +15610,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15731,9 +15624,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15744,9 +15638,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.asin f32.const 0.7234652042388916 f32.const -0.1307632476091385 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15757,9 +15652,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.asin f32.const -0.41873374581336975 f32.const 0.3161141574382782 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15770,9 +15666,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.asin f32.const 0.5965113639831543 f32.const -0.4510819613933563 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15783,9 +15680,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.asin f32.const 0.8853747844696045 f32.const 0.02493886835873127 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15796,9 +15694,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.asin f32.const -0.7460777759552002 f32.const 0.2515012323856354 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15809,9 +15708,10 @@ unreachable end f32.const 1 + call $~lib/math/NativeMathf.asin f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15822,9 +15722,10 @@ unreachable end f32.const -1 + call $~lib/math/NativeMathf.asin f32.const -1.5707963705062866 f32.const -0.3666777014732361 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15835,9 +15736,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.asin f32.const 0 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15848,9 +15750,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.asin f32.const -0 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15861,9 +15764,10 @@ unreachable end f32.const 1.0000001192092896 + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15874,9 +15778,10 @@ unreachable end f32.const -1.0000001192092896 + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15887,9 +15792,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15900,9 +15806,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15913,9 +15820,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -15926,9 +15834,10 @@ unreachable end f32.const 0.5004770159721375 + call $~lib/math/NativeMathf.asin f32.const 0.5241496562957764 f32.const -0.29427099227905273 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -18166,9 +18075,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 @@ -18180,9 +18090,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 @@ -18194,9 +18105,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 @@ -18208,9 +18120,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 @@ -18222,9 +18135,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 @@ -18236,9 +18150,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 @@ -18250,9 +18165,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 @@ -18264,9 +18180,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 @@ -18278,9 +18195,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 @@ -18292,9 +18210,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 @@ -18306,9 +18225,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 @@ -18320,9 +18240,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 @@ -18334,9 +18255,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 @@ -18348,9 +18270,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 @@ -18362,9 +18285,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 @@ -18376,9 +18300,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 @@ -18390,9 +18315,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 @@ -18404,9 +18330,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 @@ -18418,9 +18345,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 @@ -18432,9 +18360,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 @@ -18446,9 +18375,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 @@ -18460,9 +18390,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 @@ -18474,9 +18405,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 @@ -18488,9 +18420,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 @@ -18502,9 +18435,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 @@ -18516,9 +18450,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 @@ -18530,9 +18465,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 @@ -18544,9 +18480,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 @@ -18558,9 +18495,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 @@ -18572,9 +18510,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 @@ -18586,9 +18525,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 @@ -18600,9 +18540,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 @@ -18614,9 +18555,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 @@ -18628,9 +18570,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 @@ -18642,9 +18585,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 @@ -18656,9 +18600,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 @@ -18670,9 +18615,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 @@ -18684,9 +18630,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 @@ -18697,9 +18644,19 @@ unreachable end f64.const -8.06684839057968 + call $~lib/math/NativeMath.cbrt f64.const -2.0055552545020245 f64.const 0.46667951345443726 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -8.06684839057968 + call $~lib/bindings/Math/cbrt + f64.const -2.0055552545020245 + f64.const 0.46667951345443726 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18710,9 +18667,19 @@ unreachable end f64.const 4.345239849338305 + call $~lib/math/NativeMath.cbrt f64.const 1.6318162410515635 f64.const -0.08160271495580673 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 4.345239849338305 + call $~lib/bindings/Math/cbrt + f64.const 1.6318162410515635 + f64.const -0.08160271495580673 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18723,9 +18690,19 @@ unreachable end f64.const -8.38143342755525 + call $~lib/math/NativeMath.cbrt f64.const -2.031293910673361 f64.const -0.048101816326379776 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -8.38143342755525 + call $~lib/bindings/Math/cbrt + f64.const -2.031293910673361 + f64.const -0.048101816326379776 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18736,9 +18713,19 @@ unreachable end f64.const -6.531673581913484 + call $~lib/math/NativeMath.cbrt f64.const -1.8692820012204925 f64.const 0.08624018728733063 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -6.531673581913484 + call $~lib/bindings/Math/cbrt + f64.const -1.8692820012204925 + f64.const 0.08624018728733063 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18749,9 +18736,19 @@ unreachable end f64.const 9.267056966972586 + call $~lib/math/NativeMath.cbrt f64.const 2.100457720859702 f64.const -0.2722989022731781 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 9.267056966972586 + call $~lib/bindings/Math/cbrt + f64.const 2.100457720859702 + f64.const -0.2722989022731781 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18762,9 +18759,19 @@ unreachable end f64.const 0.6619858980995045 + call $~lib/math/NativeMath.cbrt f64.const 0.8715311470455973 f64.const 0.4414918124675751 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 0.6619858980995045 + call $~lib/bindings/Math/cbrt + f64.const 0.8715311470455973 + f64.const 0.4414918124675751 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18775,9 +18782,19 @@ unreachable end f64.const -0.4066039223853553 + call $~lib/math/NativeMath.cbrt f64.const -0.740839030300223 f64.const 0.016453813761472702 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -0.4066039223853553 + call $~lib/bindings/Math/cbrt + f64.const -0.740839030300223 + f64.const 0.016453813761472702 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18788,9 +18805,19 @@ unreachable end f64.const 0.5617597462207241 + call $~lib/math/NativeMath.cbrt f64.const 0.8251195400559286 f64.const 0.30680638551712036 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 0.5617597462207241 + call $~lib/bindings/Math/cbrt + f64.const 0.8251195400559286 + f64.const 0.30680638551712036 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18801,9 +18828,19 @@ unreachable end f64.const 0.7741522965913037 + call $~lib/math/NativeMath.cbrt f64.const 0.9182102478959914 f64.const 0.06543998420238495 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 0.7741522965913037 + call $~lib/bindings/Math/cbrt + f64.const 0.9182102478959914 + f64.const 0.06543998420238495 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18814,9 +18851,19 @@ unreachable end f64.const -0.6787637026394024 + call $~lib/math/NativeMath.cbrt f64.const -0.8788326906580094 f64.const -0.2016713172197342 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -0.6787637026394024 + call $~lib/bindings/Math/cbrt + f64.const -0.8788326906580094 + f64.const -0.2016713172197342 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18827,9 +18874,19 @@ unreachable end f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.cbrt f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const nan:0x8000000000000 + call $~lib/bindings/Math/cbrt + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18840,9 +18897,19 @@ unreachable end f64.const inf + call $~lib/math/NativeMath.cbrt f64.const inf f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const inf + call $~lib/bindings/Math/cbrt + f64.const inf + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18853,9 +18920,19 @@ unreachable end f64.const -inf + call $~lib/math/NativeMath.cbrt f64.const -inf f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -inf + call $~lib/bindings/Math/cbrt + f64.const -inf + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18866,9 +18943,19 @@ unreachable end f64.const 0 + call $~lib/math/NativeMath.cbrt f64.const 0 f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 0 + call $~lib/bindings/Math/cbrt + f64.const 0 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18879,9 +18966,19 @@ unreachable end f64.const -0 + call $~lib/math/NativeMath.cbrt f64.const -0 f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -0 + call $~lib/bindings/Math/cbrt + f64.const -0 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18892,9 +18989,19 @@ unreachable end f64.const 9.313225746154785e-10 + call $~lib/math/NativeMath.cbrt f64.const 0.0009765625 f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 9.313225746154785e-10 + call $~lib/bindings/Math/cbrt + f64.const 0.0009765625 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18905,22 +19012,42 @@ unreachable end f64.const -9.313225746154785e-10 + call $~lib/math/NativeMath.cbrt f64.const -0.0009765625 f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -9.313225746154785e-10 + call $~lib/bindings/Math/cbrt + f64.const -0.0009765625 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 - i32.const 1056 - i32.const 800 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 1056 + i32.const 800 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + call $~lib/math/NativeMath.cbrt + f64.const 1 + f64.const 0 + call $std/math/check + if (result i32) + f64.const 1 + call $~lib/bindings/Math/cbrt + f64.const 1 + f64.const 0 + call $std/math/check + else + i32.const 0 end - f64.const 1 - f64.const 1 - f64.const 0 - call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -18931,9 +19058,19 @@ unreachable end f64.const -1 + call $~lib/math/NativeMath.cbrt f64.const -1 f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -1 + call $~lib/bindings/Math/cbrt + f64.const -1 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18944,9 +19081,19 @@ unreachable end f64.const 8 + call $~lib/math/NativeMath.cbrt f64.const 2 f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 8 + call $~lib/bindings/Math/cbrt + f64.const 2 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -28078,10 +28225,9 @@ unreachable end f32.const -8.066848754882812 - call $~lib/math/NativeMathf.exp2 f32.const 3.7293792702257633e-03 f32.const -0.0674908235669136 - call $std/math/check + call $std/math/test_exp2f i32.eqz if i32.const 0 @@ -28092,10 +28238,9 @@ unreachable end f32.const 4.345239639282227 - call $~lib/math/NativeMathf.exp2 f32.const 20.32579231262207 f32.const 0.34121403098106384 - call $std/math/check + call $std/math/test_exp2f i32.eqz if i32.const 0 @@ -28106,10 +28251,9 @@ unreachable end f32.const -8.381433486938477 - call $~lib/math/NativeMathf.exp2 f32.const 2.9987283051013947e-03 f32.const 0.15504619479179382 - call $std/math/check + call $std/math/test_exp2f i32.eqz if i32.const 0 @@ -28120,10 +28264,9 @@ unreachable end f32.const -6.531673431396484 - call $~lib/math/NativeMathf.exp2 f32.const 0.010808623395860195 f32.const 0.2603940963745117 - call $std/math/check + call $std/math/test_exp2f i32.eqz if i32.const 0 @@ -28134,10 +28277,9 @@ unreachable end f32.const 9.267057418823242 - call $~lib/math/NativeMathf.exp2 f32.const 616.1156616210938 f32.const -0.1379322111606598 - call $std/math/check + call $std/math/test_exp2f i32.eqz if i32.const 0 @@ -28148,10 +28290,9 @@ unreachable end f32.const 0.6619858741760254 - call $~lib/math/NativeMathf.exp2 f32.const 1.5822590589523315 f32.const -0.427890807390213 - call $std/math/check + call $std/math/test_exp2f i32.eqz if i32.const 0 @@ -28162,10 +28303,9 @@ unreachable end f32.const -0.40660393238067627 - call $~lib/math/NativeMathf.exp2 f32.const 0.7543970942497253 f32.const -0.38062313199043274 - call $std/math/check + call $std/math/test_exp2f i32.eqz if i32.const 0 @@ -28176,10 +28316,9 @@ unreachable end f32.const 0.5617597699165344 - call $~lib/math/NativeMathf.exp2 f32.const 1.4760686159133911 f32.const 0.1507442593574524 - call $std/math/check + call $std/math/test_exp2f i32.eqz if i32.const 0 @@ -28190,10 +28329,9 @@ unreachable end f32.const 0.7741522789001465 - call $~lib/math/NativeMathf.exp2 f32.const 1.7101848125457764 f32.const -0.39102980494499207 - call $std/math/check + call $std/math/test_exp2f i32.eqz if i32.const 0 @@ -28204,10 +28342,9 @@ unreachable end f32.const -0.6787636876106262 - call $~lib/math/NativeMathf.exp2 f32.const 0.6247003674507141 f32.const -0.20904375612735748 - call $std/math/check + call $std/math/test_exp2f i32.eqz if i32.const 0 @@ -29094,9 +29231,10 @@ end f64.const -8.06684839057968 f64.const 4.535662560676869 + call $~lib/math/NativeMath.hypot f64.const 9.25452742288464 f64.const -0.31188681721687317 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29108,9 +29246,10 @@ end f64.const 4.345239849338305 f64.const -8.88799136300345 + call $~lib/math/NativeMath.hypot f64.const 9.893305808328252 f64.const 0.4593673348426819 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29122,9 +29261,10 @@ end f64.const -8.38143342755525 f64.const -2.763607337379588 + call $~lib/math/NativeMath.hypot f64.const 8.825301797432132 f64.const -0.1701754331588745 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29136,9 +29276,10 @@ end f64.const -6.531673581913484 f64.const 4.567535276842744 + call $~lib/math/NativeMath.hypot f64.const 7.970265885519092 f64.const -0.3176782727241516 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29150,9 +29291,10 @@ end f64.const 9.267056966972586 f64.const 4.811392084359796 + call $~lib/math/NativeMath.hypot f64.const 10.441639651824575 f64.const -0.2693633437156677 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29164,9 +29306,10 @@ end f64.const -6.450045556060236 f64.const 0.6620717923376739 + call $~lib/math/NativeMath.hypot f64.const 6.483936052542593 f64.const 0.35618898272514343 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29178,9 +29321,10 @@ end f64.const 7.858890253041697 f64.const 0.05215452675006225 + call $~lib/math/NativeMath.hypot f64.const 7.859063309581766 f64.const 0.08044655621051788 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29192,9 +29336,10 @@ end f64.const -0.792054511984896 f64.const 7.67640268511754 + call $~lib/math/NativeMath.hypot f64.const 7.717156764899584 f64.const 0.05178084969520569 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29206,9 +29351,10 @@ end f64.const 0.615702673197924 f64.const 2.0119025790324803 + call $~lib/math/NativeMath.hypot f64.const 2.104006123874314 f64.const -0.0918039008975029 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29220,9 +29366,10 @@ end f64.const -0.5587586823609152 f64.const 0.03223983060263804 + call $~lib/math/NativeMath.hypot f64.const 0.5596880129062913 f64.const 0.1383407711982727 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29234,9 +29381,10 @@ end f64.const 3 f64.const 4 + call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29248,9 +29396,10 @@ end f64.const -3 f64.const 4 + call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29262,9 +29411,10 @@ end f64.const 4 f64.const 3 + call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29276,9 +29426,10 @@ end f64.const 4 f64.const -3 + call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29290,9 +29441,10 @@ end f64.const -3 f64.const -4 + call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29304,9 +29456,10 @@ end f64.const 1797693134862315708145274e284 f64.const 0 + call $~lib/math/NativeMath.hypot f64.const 1797693134862315708145274e284 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29318,9 +29471,10 @@ end f64.const 1797693134862315708145274e284 f64.const -0 + call $~lib/math/NativeMath.hypot f64.const 1797693134862315708145274e284 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29332,9 +29486,10 @@ end f64.const 5e-324 f64.const 0 + call $~lib/math/NativeMath.hypot f64.const 5e-324 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29346,9 +29501,10 @@ end f64.const 5e-324 f64.const -0 + call $~lib/math/NativeMath.hypot f64.const 5e-324 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29360,9 +29516,10 @@ end f64.const inf f64.const 1 + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29374,9 +29531,10 @@ end f64.const 1 f64.const inf + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29388,9 +29546,10 @@ end f64.const inf f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29402,9 +29561,10 @@ end f64.const nan:0x8000000000000 f64.const inf + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29416,9 +29576,10 @@ end f64.const -inf f64.const 1 + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29430,9 +29591,10 @@ end f64.const 1 f64.const -inf + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29444,9 +29606,10 @@ end f64.const -inf f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29458,9 +29621,10 @@ end f64.const nan:0x8000000000000 f64.const -inf + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29472,9 +29636,10 @@ end f64.const nan:0x8000000000000 f64.const 1 + call $~lib/math/NativeMath.hypot f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29486,9 +29651,10 @@ end f64.const 1 f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.hypot f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29500,9 +29666,10 @@ end f64.const nan:0x8000000000000 f64.const 0 + call $~lib/math/NativeMath.hypot f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29514,9 +29681,10 @@ end f64.const 0 f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.hypot f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -30571,9 +30739,19 @@ unreachable end f64.const -8.06684839057968 + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -8.06684839057968 + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30584,9 +30762,19 @@ unreachable end f64.const 4.345239849338305 + call $~lib/math/NativeMath.log10 f64.const 0.6380137537120029 f64.const -0.2088824063539505 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const 4.345239849338305 + call $~lib/bindings/Math/log10 + f64.const 0.6380137537120029 + f64.const -0.2088824063539505 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30597,9 +30785,19 @@ unreachable end f64.const -8.38143342755525 + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -8.38143342755525 + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30610,9 +30808,19 @@ unreachable end f64.const -6.531673581913484 + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -6.531673581913484 + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30623,9 +30831,19 @@ unreachable end f64.const 9.267056966972586 + call $~lib/math/NativeMath.log10 f64.const 0.9669418327487274 f64.const -0.06120431795716286 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const 9.267056966972586 + call $~lib/bindings/Math/log10 + f64.const 0.9669418327487274 + f64.const -0.06120431795716286 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30636,9 +30854,19 @@ unreachable end f64.const 0.6619858980995045 + call $~lib/math/NativeMath.log10 f64.const -0.17915126198447093 f64.const 0.39090874791145325 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const 0.6619858980995045 + call $~lib/bindings/Math/log10 + f64.const -0.17915126198447093 + f64.const 0.39090874791145325 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30649,9 +30877,19 @@ unreachable end f64.const -0.4066039223853553 + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -0.4066039223853553 + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30662,9 +30900,19 @@ unreachable end f64.const 0.5617597462207241 + call $~lib/math/NativeMath.log10 f64.const -0.25044938407454437 f64.const -0.3046841621398926 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const 0.5617597462207241 + call $~lib/bindings/Math/log10 + f64.const -0.25044938407454437 + f64.const -0.3046841621398926 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30675,9 +30923,19 @@ unreachable end f64.const 0.7741522965913037 + call $~lib/math/NativeMath.log10 f64.const -0.11117359349943837 f64.const -0.31503361463546753 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const 0.7741522965913037 + call $~lib/bindings/Math/log10 + f64.const -0.11117359349943837 + f64.const -0.31503361463546753 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30688,9 +30946,19 @@ unreachable end f64.const -0.6787637026394024 + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -0.6787637026394024 + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30701,9 +30969,19 @@ unreachable end f64.const 0 + call $~lib/math/NativeMath.log10 f64.const -inf f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const 0 + call $~lib/bindings/Math/log10 + f64.const -inf + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30714,9 +30992,19 @@ unreachable end f64.const -0 + call $~lib/math/NativeMath.log10 f64.const -inf f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -0 + call $~lib/bindings/Math/log10 + f64.const -inf + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30727,9 +31015,19 @@ unreachable end f64.const -7.888609052210118e-31 + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -7.888609052210118e-31 + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30740,9 +31038,19 @@ unreachable end f64.const 1 + call $~lib/math/NativeMath.log10 f64.const 0 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const 1 + call $~lib/bindings/Math/log10 + f64.const 0 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30753,9 +31061,19 @@ unreachable end f64.const -1 + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -1 + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30766,9 +31084,19 @@ unreachable end f64.const inf + call $~lib/math/NativeMath.log10 f64.const inf f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const inf + call $~lib/bindings/Math/log10 + f64.const inf + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30779,9 +31107,19 @@ unreachable end f64.const -inf + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -inf + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30792,9 +31130,19 @@ unreachable end f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const nan:0x8000000000000 + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30805,9 +31153,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30818,9 +31167,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.log10 f32.const 0.6380137205123901 f32.const -0.20476758480072021 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30831,9 +31181,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30844,9 +31195,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30857,9 +31209,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.log10 f32.const 0.9669418334960938 f32.const -0.34273025393486023 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30870,9 +31223,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.log10 f32.const -0.1791512817144394 f32.const -0.27078554034233093 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30883,9 +31237,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30896,9 +31251,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.log10 f32.const -0.25044935941696167 f32.const 0.2126826047897339 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30909,9 +31265,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.log10 f32.const -0.1111735999584198 f32.const 0.46515095233917236 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30922,9 +31279,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30935,9 +31293,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.log10 f32.const -inf f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30948,9 +31307,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.log10 f32.const -inf f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30961,9 +31321,10 @@ unreachable end f32.const -7.888609052210118e-31 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30974,9 +31335,10 @@ unreachable end f32.const 1 + call $~lib/math/NativeMathf.log10 f32.const 0 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30987,9 +31349,10 @@ unreachable end f32.const -1 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -31000,9 +31363,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.log10 f32.const inf f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -31013,9 +31377,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -31026,9 +31391,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 diff --git a/tests/compiler/std/new.optimized.wat b/tests/compiler/std/new.optimized.wat index fafaa04430..602ee00633 100644 --- a/tests/compiler/std/new.optimized.wat +++ b/tests/compiler/std/new.optimized.wat @@ -2,9 +2,9 @@ (type $none_=>_none (func)) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (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))) (type $i32_=>_i32 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -174,16 +174,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1440 i32.load i32.gt_u @@ -195,7 +195,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1444 @@ -211,26 +211,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -339,8 +339,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -348,11 +346,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -360,25 +359,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -587,7 +587,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -595,6 +594,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -610,7 +610,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -618,6 +617,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -672,11 +672,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -700,11 +700,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -864,17 +864,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -934,15 +934,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1070,12 +1070,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1157,11 +1155,63 @@ end end ) - (func $~lib/rt/itcms/__new (result i32) + (func $start:std/new (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + memory.size + i32.const 16 + i32.shl + i32.const 17860 + 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 1476 + i32.lt_s + if + i32.const 17888 + i32.const 17936 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + i32.const 0 + i32.store global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1213,20 +1263,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz if - i32.const 4 memory.size - local.tee $0 + local.tee $1 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $1 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1235,18 +1286,16 @@ i32.and i32.const 16 i32.shr_u - local.set $2 - local.get $0 - local.get $2 + local.tee $0 local.get $0 - local.get $2 - i32.gt_s + local.get $1 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $0 memory.grow i32.const 0 i32.lt_s @@ -1254,15 +1303,15 @@ unreachable end end + local.get $2 local.get $1 - local.get $0 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $1 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1289,12 +1338,12 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load - local.tee $2 + local.tee $1 i32.const -4 i32.and i32.const 28 @@ -1304,7 +1353,7 @@ i32.ge_u if local.get $0 - local.get $2 + local.get $1 i32.const 2 i32.and i32.const 28 @@ -1313,19 +1362,19 @@ local.get $0 i32.const 32 i32.add - local.tee $2 + local.tee $1 local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $1 local.get $2 + local.get $1 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $2 + local.get $1 i32.const -2 i32.and i32.store @@ -1356,26 +1405,26 @@ 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 $1 + local.set $3 local.get $0 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 local.get $0 - local.get $1 + local.get $3 i32.load offset=4 i32.const 3 i32.and 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 @@ -1390,42 +1439,65 @@ local.get $0 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 $0 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $0 i32.const 4 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $4 + local.get $1 + i32.store + local.get $1 + i32.const 1 + i32.store + local.get $1 + f32.const 2 + f32.store offset=4 + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.add + i32.store + local.get $1 + f32.const 3 + f32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + global.set $std/new/aClass ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -1457,82 +1529,6 @@ unreachable ) (func $~start - (local $0 i32) - memory.size - i32.const 16 - i32.shl - i32.const 17860 - 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 1476 - i32.lt_s - if - i32.const 17888 - i32.const 17936 - 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 - i32.store - local.get $0 - i32.const 1 - i32.store - local.get $0 - f32.const 2 - f32.store offset=4 - local.get $0 - local.get $0 - i32.load - i32.const 1 - i32.add - i32.store - local.get $0 - f32.const 3 - f32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $std/new/aClass + call $start:std/new ) ) diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index 0d9c09882a..29ab86ae8c 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -233,16 +233,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1520 i32.load i32.gt_u @@ -254,7 +254,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1524 @@ -270,26 +270,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -398,8 +398,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -407,11 +405,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -419,25 +418,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -646,7 +646,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -654,6 +653,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -669,7 +669,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -677,6 +676,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -731,11 +731,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -759,11 +759,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -923,17 +923,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -993,15 +993,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1129,12 +1129,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1272,20 +1270,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if - i32.const 4 memory.size - local.tee $1 + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1294,18 +1293,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1313,15 +1310,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1348,12 +1345,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1363,7 +1360,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1372,19 +1369,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1415,26 +1412,26 @@ i32.const 8 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 + local.get $2 local.get $1 - local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1449,42 +1446,42 @@ local.get $1 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 $0 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $0 i32.const 4 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 ) (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2136,23 +2133,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/a2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/a1 local.tee $1 + global.get $std/operator-overloading/a1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/a2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.add local.get $1 - i32.load offset=4 + i32.load + i32.add local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.add call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/a @@ -2186,23 +2183,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/s2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/s1 local.tee $1 + global.get $std/operator-overloading/s1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/s2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.sub local.get $1 - i32.load offset=4 + i32.load + i32.sub local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.sub call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/s @@ -2234,23 +2231,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/m2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/m1 local.tee $1 + global.get $std/operator-overloading/m1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/m2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.mul local.get $1 - i32.load offset=4 + i32.load + i32.mul local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.mul call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/m @@ -2284,23 +2281,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/d2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/d1 local.tee $1 + global.get $std/operator-overloading/d1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/d2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.div_s local.get $1 - i32.load offset=4 + i32.load + i32.div_s local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.div_s call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/d @@ -2334,23 +2331,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/f2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/f1 local.tee $1 + global.get $std/operator-overloading/f1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/f2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.rem_s local.get $1 - i32.load offset=4 + i32.load + i32.rem_s local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.rem_s call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/f @@ -2381,23 +2378,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/p2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/p1 local.tee $1 + global.get $std/operator-overloading/p1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/p2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - call $~lib/math/ipow32 local.get $1 - i32.load offset=4 + i32.load + call $~lib/math/ipow32 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 call $~lib/math/ipow32 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/p @@ -2431,23 +2428,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/n2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/n1 local.tee $1 + global.get $std/operator-overloading/n1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/n2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.and local.get $1 - i32.load offset=4 + i32.load + i32.and local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.and call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/n @@ -2481,23 +2478,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/o2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/o1 local.tee $1 + global.get $std/operator-overloading/o1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/o2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.or local.get $1 - i32.load offset=4 + i32.load + i32.or local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.or call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/o @@ -2531,23 +2528,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/x2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/x1 local.tee $1 + global.get $std/operator-overloading/x1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/x2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.xor local.get $1 - i32.load offset=4 + i32.load + i32.xor local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.xor call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/x @@ -2581,24 +2578,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/eq1 local.tee $1 + global.get $std/operator-overloading/eq1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/eq2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load + local.get $1 + i32.load i32.eq if (result i32) - local.get $1 - i32.load offset=4 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.eq else i32.const 0 @@ -2624,24 +2621,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq4 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/eq3 local.tee $1 + global.get $std/operator-overloading/eq3 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/eq4 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load + local.get $1 + i32.load i32.eq if (result i32) - local.get $1 - i32.load offset=4 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.eq else i32.const 0 @@ -2657,24 +2654,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/eq1 local.tee $1 + global.get $std/operator-overloading/eq1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/eq2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load + local.get $1 + i32.load i32.ne if (result i32) - local.get $1 - i32.load offset=4 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.ne else i32.const 0 @@ -2690,24 +2687,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/eq3 local.tee $1 + global.get $std/operator-overloading/eq3 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/eq4 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load + local.get $1 + i32.load i32.ne if (result i32) - local.get $1 - i32.load offset=4 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.ne else i32.const 0 @@ -2733,24 +2730,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gt2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/gt1 local.tee $1 + global.get $std/operator-overloading/gt1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/gt2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load + local.get $1 + i32.load i32.gt_s if (result i32) - local.get $1 - i32.load offset=4 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.gt_s else i32.const 0 @@ -2776,24 +2773,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gte2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/gte1 local.tee $1 + global.get $std/operator-overloading/gte1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/gte2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load + local.get $1 + i32.load i32.ge_s if (result i32) - local.get $1 - i32.load offset=4 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.ge_s else i32.const 0 @@ -2819,24 +2816,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/le2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/le1 local.tee $1 + global.get $std/operator-overloading/le1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/le2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load + local.get $1 + i32.load i32.lt_s if (result i32) - local.get $1 - i32.load offset=4 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.lt_s else i32.const 0 @@ -2862,24 +2859,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/leq2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/leq1 local.tee $1 + global.get $std/operator-overloading/leq1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/leq2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load + local.get $1 + i32.load i32.le_s if (result i32) - local.get $1 - i32.load offset=4 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.le_s else i32.const 0 @@ -3389,18 +3386,18 @@ call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais1 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/ais1 local.tee $1 + global.get $std/operator-overloading/ais1 + local.tee $0 i32.store - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 i32.load i32.const 1 i32.add - local.get $1 + local.get $0 i32.load offset=4 i32.const 1 i32.add @@ -3411,23 +3408,23 @@ call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/ais1 local.tee $1 + global.get $std/operator-overloading/ais1 + local.tee $0 i32.store offset=12 - local.get $0 + local.get $1 global.get $std/operator-overloading/ais2 - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $1 - i32.load local.get $0 i32.load - i32.add local.get $1 - i32.load offset=4 + i32.load + i32.add local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais @@ -3475,23 +3472,23 @@ call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/aii1 local.tee $1 + global.get $std/operator-overloading/aii1 + local.tee $0 i32.store offset=8 - local.get $0 + local.get $1 global.get $std/operator-overloading/aii2 - local.tee $0 + local.tee $1 i32.store offset=12 - local.get $1 - i32.load local.get $0 i32.load - i32.add local.get $1 - i32.load offset=4 + i32.load + i32.add local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii diff --git a/tests/compiler/std/pointer.optimized.wat b/tests/compiler/std/pointer.optimized.wat index 227db9c1ae..e440a71518 100644 --- a/tests/compiler/std/pointer.optimized.wat +++ b/tests/compiler/std/pointer.optimized.wat @@ -180,29 +180,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $3 i32.const 2 i32.add + local.tee $2 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $2 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 local.get $4 i32.const 3 i32.sub @@ -460,143 +458,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $3 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $3 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $3 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $3 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $3 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $3 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $3 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -623,63 +607,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $3 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $3 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $3 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -706,23 +684,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $2 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $3 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -861,8 +837,8 @@ global.get $std/pointer/one local.tee $0 global.set $std/pointer/nextOne - local.get $0 global.get $std/pointer/nextOne + local.get $0 i32.ne if i32.const 0 @@ -938,9 +914,9 @@ unreachable end global.get $std/pointer/one - local.set $0 + local.set $1 global.get $std/pointer/two - local.tee $1 + local.tee $0 if block $~lib/util/memory/memmove|inlined.0 i32.const 8 @@ -949,33 +925,33 @@ local.get $1 i32.eq br_if $~lib/util/memory/memmove|inlined.0 - local.get $1 local.get $0 + local.get $1 i32.sub i32.const 8 i32.sub i32.const -16 i32.le_u if - local.get $0 local.get $1 + local.get $0 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end local.get $0 local.get $1 - i32.lt_u + i32.gt_u if - local.get $1 + local.get $0 i32.const 7 i32.and - local.get $0 + local.get $1 i32.const 7 i32.and i32.eq if loop $while-continue|0 - local.get $0 + local.get $1 i32.const 7 i32.and if @@ -986,18 +962,18 @@ i32.const 1 i32.sub local.set $4 - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 local.get $1 local.tee $2 i32.const 1 i32.add local.set $1 - local.get $3 + 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 @@ -1008,22 +984,22 @@ i32.const 8 i32.ge_u if - local.get $0 local.get $1 + local.get $0 i64.load i64.store local.get $4 i32.const 8 i32.sub local.set $4 - local.get $0 - i32.const 8 - i32.add - local.set $0 local.get $1 i32.const 8 i32.add local.set $1 + local.get $0 + i32.const 8 + i32.add + local.set $0 br $while-continue|1 end end @@ -1031,18 +1007,18 @@ loop $while-continue|2 local.get $4 if - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 local.get $1 local.tee $2 i32.const 1 i32.add local.set $1 - local.get $3 + 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 @@ -1053,16 +1029,16 @@ end end else - local.get $1 + local.get $0 i32.const 7 i32.and - local.get $0 + local.get $1 i32.const 7 i32.and i32.eq if loop $while-continue|3 - local.get $0 + local.get $1 local.get $4 i32.add i32.const 7 @@ -1077,11 +1053,9 @@ local.tee $4 local.get $1 i32.add - local.set $2 local.get $0 local.get $4 i32.add - local.get $2 i32.load8_u i32.store8 br $while-continue|3 @@ -1098,11 +1072,9 @@ local.tee $4 local.get $1 i32.add - local.set $2 local.get $0 local.get $4 i32.add - local.get $2 i64.load i64.store br $while-continue|4 @@ -1118,11 +1090,9 @@ local.tee $4 local.get $1 i32.add - local.set $2 local.get $0 local.get $4 i32.add - local.get $2 i32.load8_u i32.store8 br $while-continue|5 @@ -1131,37 +1101,37 @@ end end else - local.get $0 + local.get $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 8 i32.add - local.tee $1 + local.tee $0 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $0 i32.const 4 i32.sub i32.const 0 diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index b1e881f5ad..9dbe779c2d 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -172,16 +172,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1648 i32.load i32.gt_u @@ -193,7 +193,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1652 @@ -209,26 +209,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -356,8 +356,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -365,11 +363,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -377,25 +376,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -604,7 +604,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -612,6 +611,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -627,7 +627,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -635,6 +634,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -689,11 +689,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -717,11 +717,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -881,17 +881,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -951,15 +951,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1087,12 +1087,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1132,13 +1130,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1178,10 +1176,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1190,7 +1188,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1199,6 +1196,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1212,12 +1210,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1230,7 +1228,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1239,6 +1236,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1445,12 +1443,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1466,14 +1464,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1487,14 +1485,15 @@ local.get $0 i32.const 16 i32.add - local.set $6 + 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 $6 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1505,14 +1504,13 @@ call $~lib/builtins/abort unreachable end - local.tee $2 - local.get $6 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $6 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1520,19 +1518,21 @@ i32.const 4 i32.sub end - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if - local.get $3 + memory.size + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl @@ -1540,17 +1540,16 @@ i32.sub i32.add else - local.get $3 + local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1560,18 +1559,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1579,18 +1576,18 @@ unreachable end end - local.get $2 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if i32.const 0 @@ -1601,8 +1598,8 @@ unreachable end end + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1615,13 +1612,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $6 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $6 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1634,54 +1631,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $6 local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $2 local.get $3 - local.get $6 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $6 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $6 + local.get $3 i32.const 4 i32.add - local.tee $3 - local.get $6 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1691,37 +1688,37 @@ i32.and i32.store end - local.get $6 + local.get $3 local.get $1 i32.store offset=12 - local.get $6 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 local.set $1 - local.get $6 local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $6 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $6 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $6 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.load i32.const -4 i32.and @@ -1729,7 +1726,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -2258,29 +2255,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2302,25 +2297,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2393,25 +2388,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2480,27 +2475,27 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl - i32.or - i32.store offset=8 + local.get $4 + i32.const 8 + i32.shr_u + i32.or + i32.store offset=8 local.get $0 local.get $1 i32.load offset=15 @@ -2538,143 +2533,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2701,63 +2682,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2784,23 +2759,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2890,10 +2863,10 @@ select local.get $2 i32.shl - local.set $6 + local.set $2 block $__inlined_func$~lib/rt/itcms/__renew local.get $3 - if + if (result i32) local.get $9 i32.const 1 i32.shl @@ -2904,14 +2877,15 @@ i32.lt_u select local.tee $1 - local.get $6 + local.get $2 local.get $1 - local.get $6 + local.get $2 i32.gt_u select - local.set $6 + else + local.get $2 end - local.get $6 + local.tee $6 local.get $7 local.tee $1 i32.const 20 @@ -3160,10 +3134,10 @@ ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if local.get $1 i32.const 0 @@ -3188,18 +3162,18 @@ local.get $3 i32.store offset=12 end + local.get $1 local.get $0 i32.load offset=4 - local.get $1 i32.add local.get $2 i32.store8 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1248 i32.const 1616 @@ -3208,9 +3182,9 @@ call $~lib/builtins/abort unreachable end + local.get $1 local.get $0 i32.load offset=4 - local.get $1 i32.add i32.load8_s ) @@ -3382,6 +3356,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3787,7 +3762,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $7 i32.const 0 i32.store local.get $2 @@ -3795,8 +3770,9 @@ local.set $10 local.get $2 i32.load offset=16 - local.set $5 - local.get $1 + local.tee $11 + local.set $1 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3829,7 +3805,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -3841,72 +3817,73 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.const 8 - local.get $5 + local.get $1 i32.const 8 i32.gt_u select local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $6 + local.get $5 local.get $8 call $~lib/memory/memory.fill local.get $3 - local.get $6 + local.get $5 i32.store local.get $3 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link local.get $3 - local.get $6 + local.get $5 i32.store offset=4 local.get $3 local.get $8 i32.store offset=8 local.get $3 - local.get $5 + 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 $1 + local.get $7 local.get $3 i32.store loop $for-loop|0 - local.get $5 - local.get $7 - i32.gt_s + local.get $6 + local.get $11 + i32.lt_s if local.get $10 - local.get $7 + local.get $6 i32.const 3 i32.shl i32.add - local.tee $1 + local.tee $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $3 - local.get $0 - local.get $1 - i32.load8_s - call $~lib/array/Array#__set local.get $0 + local.tee $1 i32.const 1 i32.add local.set $0 + local.get $3 + local.get $1 + local.get $5 + i32.load8_s + call $~lib/array/Array#__set end - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|0 end end @@ -4829,10 +4806,10 @@ end ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1248 i32.const 1616 @@ -4841,9 +4818,9 @@ call $~lib/builtins/abort unreachable end + local.get $1 local.get $0 i32.load offset=4 - local.get $1 i32.add i32.load8_u ) @@ -4985,6 +4962,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -5396,7 +5374,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $7 i32.const 0 i32.store local.get $2 @@ -5404,8 +5382,9 @@ local.set $10 local.get $2 i32.load offset=16 - local.set $5 - local.get $1 + local.tee $11 + local.set $1 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -5438,7 +5417,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -5450,72 +5429,73 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.const 8 - local.get $5 + local.get $1 i32.const 8 i32.gt_u select local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $6 + local.get $5 local.get $8 call $~lib/memory/memory.fill local.get $3 - local.get $6 + local.get $5 i32.store local.get $3 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link local.get $3 - local.get $6 + local.get $5 i32.store offset=4 local.get $3 local.get $8 i32.store offset=8 local.get $3 - local.get $5 + 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 $1 + local.get $7 local.get $3 i32.store loop $for-loop|0 - local.get $5 - local.get $7 - i32.gt_s + local.get $6 + local.get $11 + i32.lt_s if local.get $10 - local.get $7 + local.get $6 i32.const 3 i32.shl i32.add - local.tee $1 + local.tee $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $3 - local.get $0 - local.get $1 - i32.load8_u - call $~lib/array/Array#__set local.get $0 + local.tee $1 i32.const 1 i32.add local.set $0 + local.get $3 + local.get $1 + local.get $5 + i32.load8_u + call $~lib/array/Array#__set end - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|0 end end @@ -6445,10 +6425,10 @@ ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if local.get $1 i32.const 0 @@ -6483,10 +6463,10 @@ i32.store16 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1248 i32.const 1616 @@ -6640,6 +6620,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -7045,7 +7026,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $7 i32.const 0 i32.store local.get $2 @@ -7053,8 +7034,9 @@ local.set $10 local.get $2 i32.load offset=16 - local.set $5 - local.get $1 + local.tee $11 + local.set $1 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -7087,7 +7069,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 536870910 i32.gt_u if @@ -7099,9 +7081,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.const 8 - local.get $5 + local.get $1 i32.const 8 i32.gt_u select @@ -7110,63 +7092,64 @@ local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $6 + local.get $5 local.get $8 call $~lib/memory/memory.fill local.get $3 - local.get $6 + local.get $5 i32.store local.get $3 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link local.get $3 - local.get $6 + local.get $5 i32.store offset=4 local.get $3 local.get $8 i32.store offset=8 local.get $3 - local.get $5 + 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 $1 + local.get $7 local.get $3 i32.store loop $for-loop|0 - local.get $5 - local.get $7 - i32.gt_s + local.get $6 + local.get $11 + i32.lt_s if local.get $10 - local.get $7 + local.get $6 i32.const 3 i32.shl i32.add - local.tee $1 + local.tee $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $3 - local.get $0 - local.get $1 - i32.load16_s - call $~lib/array/Array#__set local.get $0 + local.tee $1 i32.const 1 i32.add local.set $0 + local.get $3 + local.get $1 + local.get $5 + i32.load16_s + call $~lib/array/Array#__set end - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|0 end end @@ -8089,10 +8072,10 @@ end ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1248 i32.const 1616 @@ -8247,6 +8230,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -8658,7 +8642,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $7 i32.const 0 i32.store local.get $2 @@ -8666,8 +8650,9 @@ local.set $10 local.get $2 i32.load offset=16 - local.set $5 - local.get $1 + local.tee $11 + local.set $1 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -8700,7 +8685,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 536870910 i32.gt_u if @@ -8712,9 +8697,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.const 8 - local.get $5 + local.get $1 i32.const 8 i32.gt_u select @@ -8723,63 +8708,64 @@ local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $6 + local.get $5 local.get $8 call $~lib/memory/memory.fill local.get $3 - local.get $6 + local.get $5 i32.store local.get $3 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link local.get $3 - local.get $6 + local.get $5 i32.store offset=4 local.get $3 local.get $8 i32.store offset=8 local.get $3 - local.get $5 + 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 $1 + local.get $7 local.get $3 i32.store loop $for-loop|0 - local.get $5 - local.get $7 - i32.gt_s + local.get $6 + local.get $11 + i32.lt_s if local.get $10 - local.get $7 + local.get $6 i32.const 3 i32.shl i32.add - local.tee $1 + local.tee $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $3 - local.get $0 - local.get $1 - i32.load16_u - call $~lib/array/Array#__set local.get $0 + local.tee $1 i32.const 1 i32.add local.set $0 + local.get $3 + local.get $1 + local.get $5 + i32.load16_u + call $~lib/array/Array#__set end - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|0 end end @@ -9705,10 +9691,10 @@ ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if local.get $1 i32.const 0 @@ -9743,10 +9729,10 @@ i32.store ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1248 i32.const 1616 @@ -9897,6 +9883,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -10288,7 +10275,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $7 i32.const 0 i32.store local.get $2 @@ -10296,8 +10283,9 @@ local.set $10 local.get $2 i32.load offset=16 - local.set $5 - local.get $1 + local.tee $11 + local.set $1 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -10330,7 +10318,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 268435455 i32.gt_u if @@ -10342,9 +10330,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.const 8 - local.get $5 + local.get $1 i32.const 8 i32.gt_u select @@ -10353,63 +10341,64 @@ local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $6 + local.get $5 local.get $8 call $~lib/memory/memory.fill local.get $3 - local.get $6 + local.get $5 i32.store local.get $3 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link local.get $3 - local.get $6 + local.get $5 i32.store offset=4 local.get $3 local.get $8 i32.store offset=8 local.get $3 - local.get $5 + 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 $1 + local.get $7 local.get $3 i32.store loop $for-loop|01 - local.get $5 - local.get $7 - i32.gt_s + local.get $6 + local.get $11 + i32.lt_s if local.get $10 - local.get $7 + local.get $6 i32.const 3 i32.shl i32.add - local.tee $1 + local.tee $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $3 - local.get $0 - local.get $1 - i32.load - call $~lib/array/Array#__set local.get $0 + local.tee $1 i32.const 1 i32.add local.set $0 + local.get $3 + local.get $1 + local.get $5 + i32.load + call $~lib/array/Array#__set end - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|01 end end @@ -11306,10 +11295,10 @@ end ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1248 i32.const 1616 @@ -11460,6 +11449,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -11851,7 +11841,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $7 i32.const 0 i32.store local.get $2 @@ -11859,8 +11849,9 @@ local.set $10 local.get $2 i32.load offset=16 - local.set $5 - local.get $1 + local.tee $11 + local.set $1 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -11893,7 +11884,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 268435455 i32.gt_u if @@ -11905,9 +11896,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.const 8 - local.get $5 + local.get $1 i32.const 8 i32.gt_u select @@ -11916,63 +11907,64 @@ local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $6 + local.get $5 local.get $8 call $~lib/memory/memory.fill local.get $3 - local.get $6 + local.get $5 i32.store local.get $3 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link local.get $3 - local.get $6 + local.get $5 i32.store offset=4 local.get $3 local.get $8 i32.store offset=8 local.get $3 - local.get $5 + 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 $1 + local.get $7 local.get $3 i32.store loop $for-loop|01 - local.get $5 - local.get $7 - i32.gt_s + local.get $6 + local.get $11 + i32.lt_s if local.get $10 - local.get $7 + local.get $6 i32.const 3 i32.shl i32.add - local.tee $1 + local.tee $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $3 - local.get $0 - local.get $1 - i32.load - call $~lib/array/Array#__set local.get $0 + local.tee $1 i32.const 1 i32.add local.set $0 + local.get $3 + local.get $1 + local.get $5 + i32.load + call $~lib/array/Array#__set end - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|01 end end @@ -12576,6 +12568,12 @@ local.get $0 i32.load offset=4 local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -12585,12 +12583,6 @@ 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 @@ -12734,6 +12726,12 @@ local.get $7 local.get $1 local.get $6 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $6 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -12743,12 +12741,6 @@ i32.rotl i32.const 668265263 i32.mul - local.get $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul i32.add i32.const 17 i32.rotl @@ -12829,6 +12821,12 @@ local.get $0 i32.load local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -12838,12 +12836,6 @@ 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 @@ -12979,10 +12971,10 @@ ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if local.get $1 i32.const 0 @@ -13017,10 +13009,10 @@ i64.store ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1248 i32.const 1616 @@ -13045,6 +13037,12 @@ local.get $0 i32.load offset=4 local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -13054,12 +13052,6 @@ 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 @@ -13205,7 +13197,7 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -13214,6 +13206,7 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -13224,23 +13217,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $10 i64.const 0 i64.store - local.get $1 + local.get $10 i32.const 0 i32.store offset=8 - local.get $1 + local.get $10 call $~lib/set/Set#constructor - local.tee $4 + local.tee $11 i32.store loop $for-loop|0 - local.get $3 + local.get $12 i64.const 100 i64.lt_s if - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has if i32.const 0 @@ -13250,11 +13243,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#add - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has i32.eqz if @@ -13265,14 +13258,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 i64.const 1 i64.add - local.set $3 + local.set $12 br $for-loop|0 end end - local.get $4 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -13285,14 +13278,14 @@ unreachable end i64.const 50 - local.set $3 + local.set $12 loop $for-loop|1 - local.get $3 + local.get $12 i64.const 100 i64.lt_s if - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has i32.eqz if @@ -13303,11 +13296,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#add - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has i32.eqz if @@ -13318,14 +13311,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 i64.const 1 i64.add - local.set $3 + local.set $12 br $for-loop|1 end end - local.get $4 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -13338,7 +13331,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13350,14 +13343,14 @@ local.tee $1 i32.const 0 i32.store - local.get $4 + local.get $11 i32.load offset=8 - local.set $11 - local.get $4 + local.set $3 + local.get $11 i32.load offset=16 - local.set $5 - local.get $1 local.tee $2 + local.set $9 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -13366,31 +13359,31 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $10 i64.const 0 i64.store - local.get $1 + local.get $10 i32.const 16 i32.const 16 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 call $~lib/rt/itcms/__link - 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 $5 + local.get $9 i32.const 134217727 i32.gt_u if @@ -13402,105 +13395,106 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $9 i32.const 8 - local.get $5 + local.get $9 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $9 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $6 - local.get $9 + local.get $7 + local.get $8 call $~lib/memory/memory.fill - local.get $1 - local.get $6 + local.get $10 + local.get $7 i32.store - local.get $1 - local.get $6 + local.get $10 + local.get $7 call $~lib/rt/itcms/__link - local.get $1 - local.get $6 + local.get $10 + local.get $7 i32.store offset=4 - local.get $1 - local.get $9 + local.get $10 + local.get $8 i32.store offset=8 - local.get $1 - local.get $5 + 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 $2 local.get $1 + local.get $10 i32.store loop $for-loop|01 + local.get $2 local.get $5 - local.get $8 i32.gt_s if - local.get $11 - local.get $8 + local.get $3 + local.get $5 i32.const 4 i32.shl i32.add - local.tee $2 + local.tee $8 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $1 - 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 $10 + local.get $1 + local.get $8 + i64.load + call $~lib/array/Array#__set end - local.get $8 + local.get $5 i32.const 1 i32.add - local.set $8 + local.set $5 br $for-loop|01 end end - local.get $1 + local.get $10 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $10 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 local.get $10 - local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $5 + local.tee $1 i32.store offset=8 loop $for-loop|2 - local.get $7 - local.get $1 + local.get $6 + local.get $10 i32.load offset=12 i32.lt_s if - local.get $4 - local.get $1 - local.get $7 + local.get $11 + local.get $10 + local.get $6 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -13512,21 +13506,21 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $1 - local.get $7 + local.get $10 + local.get $6 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|2 end end - local.get $5 + local.get $1 i32.load offset=20 - local.get $4 + local.get $11 i32.load offset=20 i32.ne if @@ -13538,14 +13532,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $12 loop $for-loop|3 - local.get $3 + local.get $12 i64.const 50 i64.lt_s if - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has i32.eqz if @@ -13556,11 +13550,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#delete - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has if i32.const 0 @@ -13570,14 +13564,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 i64.const 1 i64.add - local.set $3 + local.set $12 br $for-loop|3 end end - local.get $4 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -13590,14 +13584,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $12 loop $for-loop|4 - local.get $3 + local.get $12 i64.const 50 i64.lt_s if - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has if i32.const 0 @@ -13607,11 +13601,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#add - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has i32.eqz if @@ -13622,11 +13616,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#delete - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has if i32.const 0 @@ -13636,14 +13630,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 i64.const 1 i64.add - local.set $3 + local.set $12 br $for-loop|4 end end - local.get $4 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -13655,9 +13649,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $11 call $~lib/set/Set#clear - local.get $4 + local.get $11 i32.load offset=20 if i32.const 0 @@ -13687,6 +13681,12 @@ local.get $0 i32.load offset=4 local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -13696,12 +13696,6 @@ 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 @@ -13845,6 +13839,12 @@ local.get $7 local.get $1 local.get $6 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $6 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -13854,12 +13854,6 @@ i32.rotl i32.const 668265263 i32.mul - local.get $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul i32.add i32.const 17 i32.rotl @@ -13940,6 +13934,12 @@ local.get $0 i32.load local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -13949,12 +13949,6 @@ 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 @@ -14089,10 +14083,10 @@ end ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1248 i32.const 1616 @@ -14117,6 +14111,12 @@ local.get $0 i32.load offset=4 local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -14126,12 +14126,6 @@ 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 @@ -14246,7 +14240,7 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -14255,6 +14249,7 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -14265,23 +14260,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $10 i64.const 0 i64.store - local.get $1 + local.get $10 i32.const 0 i32.store offset=8 - local.get $1 + local.get $10 call $~lib/set/Set#constructor - local.tee $4 + local.tee $11 i32.store loop $for-loop|0 - local.get $3 + local.get $12 i64.const 100 i64.lt_u if - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has if i32.const 0 @@ -14291,11 +14286,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#add - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has i32.eqz if @@ -14306,14 +14301,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 i64.const 1 i64.add - local.set $3 + local.set $12 br $for-loop|0 end end - local.get $4 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -14326,14 +14321,14 @@ unreachable end i64.const 50 - local.set $3 + local.set $12 loop $for-loop|1 - local.get $3 + local.get $12 i64.const 100 i64.lt_u if - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has i32.eqz if @@ -14344,11 +14339,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#add - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has i32.eqz if @@ -14359,14 +14354,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 i64.const 1 i64.add - local.set $3 + local.set $12 br $for-loop|1 end end - local.get $4 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -14379,7 +14374,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14391,14 +14386,14 @@ local.tee $1 i32.const 0 i32.store - local.get $4 + local.get $11 i32.load offset=8 - local.set $11 - local.get $4 + local.set $3 + local.get $11 i32.load offset=16 - local.set $5 - local.get $1 local.tee $2 + local.set $9 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14407,31 +14402,31 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $10 i64.const 0 i64.store - local.get $1 + local.get $10 i32.const 16 i32.const 18 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 call $~lib/rt/itcms/__link - 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 $5 + local.get $9 i32.const 134217727 i32.gt_u if @@ -14443,105 +14438,106 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $9 i32.const 8 - local.get $5 + local.get $9 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $9 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $6 - local.get $9 + local.get $7 + local.get $8 call $~lib/memory/memory.fill - local.get $1 - local.get $6 + local.get $10 + local.get $7 i32.store - local.get $1 - local.get $6 + local.get $10 + local.get $7 call $~lib/rt/itcms/__link - local.get $1 - local.get $6 + local.get $10 + local.get $7 i32.store offset=4 - local.get $1 - local.get $9 + local.get $10 + local.get $8 i32.store offset=8 - local.get $1 - local.get $5 + 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 $2 local.get $1 + local.get $10 i32.store loop $for-loop|01 + local.get $2 local.get $5 - local.get $8 i32.gt_s if - local.get $11 - local.get $8 + local.get $3 + local.get $5 i32.const 4 i32.shl i32.add - local.tee $2 + local.tee $8 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $1 - 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 $10 + local.get $1 + local.get $8 + i64.load + call $~lib/array/Array#__set end - local.get $8 + local.get $5 i32.const 1 i32.add - local.set $8 + local.set $5 br $for-loop|01 end end - local.get $1 + local.get $10 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $10 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 local.get $10 - local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $5 + local.tee $1 i32.store offset=8 loop $for-loop|2 - local.get $7 - local.get $1 + local.get $6 + local.get $10 i32.load offset=12 i32.lt_s if - local.get $4 - local.get $1 - local.get $7 + local.get $11 + local.get $10 + local.get $6 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -14553,21 +14549,21 @@ call $~lib/builtins/abort unreachable end - local.get $5 local.get $1 - local.get $7 + local.get $10 + local.get $6 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|2 end end - local.get $5 + local.get $1 i32.load offset=20 - local.get $4 + local.get $11 i32.load offset=20 i32.ne if @@ -14579,14 +14575,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $12 loop $for-loop|3 - local.get $3 + local.get $12 i64.const 50 i64.lt_u if - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has i32.eqz if @@ -14597,11 +14593,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#delete - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has if i32.const 0 @@ -14611,14 +14607,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 i64.const 1 i64.add - local.set $3 + local.set $12 br $for-loop|3 end end - local.get $4 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -14631,14 +14627,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $12 loop $for-loop|4 - local.get $3 + local.get $12 i64.const 50 i64.lt_u if - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has if i32.const 0 @@ -14648,11 +14644,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#add - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has i32.eqz if @@ -14663,11 +14659,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#delete - local.get $4 - local.get $3 + local.get $11 + local.get $12 call $~lib/set/Set#has if i32.const 0 @@ -14677,14 +14673,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 i64.const 1 i64.add - local.set $3 + local.set $12 br $for-loop|4 end end - local.get $4 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -14696,9 +14692,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $11 call $~lib/set/Set#clear - local.get $4 + local.get $11 i32.load offset=20 if i32.const 0 @@ -15024,10 +15020,10 @@ end ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1248 i32.const 1616 @@ -15179,6 +15175,7 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -15572,7 +15569,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $8 i32.const 0 i32.store local.get $3 @@ -15580,8 +15577,9 @@ local.set $11 local.get $3 i32.load offset=16 - local.set $5 - local.get $0 + local.tee $12 + local.set $0 + local.get $8 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -15614,7 +15612,7 @@ local.get $4 i32.const 0 i32.store offset=12 - local.get $5 + local.get $0 i32.const 268435455 i32.gt_u if @@ -15626,9 +15624,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 i32.const 8 - local.get $5 + local.get $0 i32.const 8 i32.gt_u select @@ -15637,44 +15635,44 @@ local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $6 + local.get $5 local.get $9 call $~lib/memory/memory.fill local.get $4 - local.get $6 + local.get $5 i32.store local.get $4 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link local.get $4 - local.get $6 + local.get $5 i32.store offset=4 local.get $4 local.get $9 i32.store offset=8 local.get $4 - local.get $5 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $8 local.get $4 i32.store loop $for-loop|01 - local.get $5 - local.get $8 - i32.gt_s + local.get $6 + local.get $12 + i32.lt_s if local.get $11 - local.get $8 + local.get $6 i32.const 3 i32.shl i32.add - local.tee $6 + local.tee $5 i32.load offset=4 i32.const 1 i32.and @@ -15685,7 +15683,7 @@ i32.const 1 i32.add local.set $1 - local.get $6 + local.get $5 f32.load local.set $2 local.get $0 @@ -15708,12 +15706,12 @@ local.get $0 i32.const 1 i32.add - local.tee $6 + local.tee $5 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity local.get $4 - local.get $6 + local.get $5 i32.store offset=12 end local.get $4 @@ -15725,10 +15723,10 @@ local.get $2 f32.store end - local.get $8 + local.get $6 i32.const 1 i32.add - local.set $8 + local.set $6 br $for-loop|01 end end @@ -16341,6 +16339,12 @@ local.get $1 i64.reinterpret_f64 local.tee $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16350,12 +16354,6 @@ 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 @@ -16502,6 +16500,12 @@ local.get $5 i64.reinterpret_f64 local.tee $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16511,12 +16515,6 @@ 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 @@ -16600,6 +16598,12 @@ local.get $1 i64.reinterpret_f64 local.tee $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16609,12 +16613,6 @@ 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 @@ -16749,10 +16747,10 @@ end ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1248 i32.const 1616 @@ -16780,6 +16778,12 @@ local.get $1 i64.reinterpret_f64 local.tee $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16789,12 +16793,6 @@ 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 @@ -16909,7 +16907,7 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -16918,6 +16916,7 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 f64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -16928,23 +16927,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $11 i64.const 0 i64.store - local.get $1 + local.get $11 i32.const 0 i32.store offset=8 - local.get $1 + local.get $11 call $~lib/set/Set#constructor - local.tee $4 + local.tee $10 i32.store loop $for-loop|0 - local.get $3 + local.get $12 f64.const 100 f64.lt if - local.get $4 - local.get $3 + local.get $10 + local.get $12 call $~lib/set/Set#has if i32.const 0 @@ -16954,11 +16953,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $10 + local.get $12 call $~lib/set/Set#add - local.get $4 - local.get $3 + local.get $10 + local.get $12 call $~lib/set/Set#has i32.eqz if @@ -16969,14 +16968,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 f64.const 1 f64.add - local.set $3 + local.set $12 br $for-loop|0 end end - local.get $4 + local.get $10 i32.load offset=20 i32.const 100 i32.ne @@ -16989,14 +16988,14 @@ unreachable end f64.const 50 - local.set $3 + local.set $12 loop $for-loop|1 - local.get $3 + local.get $12 f64.const 100 f64.lt if - local.get $4 - local.get $3 + local.get $10 + local.get $12 call $~lib/set/Set#has i32.eqz if @@ -17007,11 +17006,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $10 + local.get $12 call $~lib/set/Set#add - local.get $4 - local.get $3 + local.get $10 + local.get $12 call $~lib/set/Set#has i32.eqz if @@ -17022,14 +17021,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 f64.const 1 f64.add - local.set $3 + local.set $12 br $for-loop|1 end end - local.get $4 + local.get $10 i32.load offset=20 i32.const 100 i32.ne @@ -17042,7 +17041,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17054,14 +17053,14 @@ local.tee $1 i32.const 0 i32.store - local.get $4 + local.get $10 i32.load offset=8 - local.set $11 - local.get $4 + local.set $3 + local.get $10 i32.load offset=16 - local.set $6 + local.tee $2 + local.set $8 local.get $1 - local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -17070,31 +17069,31 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $11 i64.const 0 i64.store - local.get $1 + local.get $11 i32.const 16 i32.const 22 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $11 i32.store - local.get $1 + local.get $11 i32.const 0 i32.store - local.get $1 + local.get $11 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $11 i32.const 0 i32.store offset=4 - local.get $1 + local.get $11 i32.const 0 i32.store offset=8 - local.get $1 + local.get $11 i32.const 0 i32.store offset=12 - local.get $6 + local.get $8 i32.const 134217727 i32.gt_u if @@ -17106,9 +17105,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.const 8 - local.get $6 + local.get $8 i32.const 8 i32.gt_u select @@ -17117,63 +17116,63 @@ local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $7 i32.store offset=4 - local.get $5 + local.get $7 local.get $9 call $~lib/memory/memory.fill - local.get $1 - local.get $5 + local.get $11 + local.get $7 i32.store - local.get $1 - local.get $5 + local.get $11 + local.get $7 call $~lib/rt/itcms/__link - local.get $1 - local.get $5 + local.get $11 + local.get $7 i32.store offset=4 - local.get $1 + local.get $11 local.get $9 i32.store offset=8 - local.get $1 - local.get $6 + local.get $11 + 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 $0 local.get $1 + local.get $11 i32.store loop $for-loop|01 - local.get $6 - local.get $8 + local.get $2 + local.get $5 i32.gt_s if - local.get $11 - local.get $8 + local.get $3 + local.get $5 i32.const 4 i32.shl i32.add - local.tee $5 + local.tee $9 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.add - local.set $2 - local.get $5 + local.set $0 + local.get $9 f64.load - local.set $3 - local.get $0 + local.set $12 local.get $1 + local.get $11 i32.load offset=12 i32.ge_u if - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -17184,62 +17183,62 @@ call $~lib/builtins/abort unreachable end + local.get $11 local.get $1 - local.get $0 i32.const 1 i32.add - local.tee $5 + local.tee $9 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity - local.get $1 - local.get $5 + local.get $11 + local.get $9 i32.store offset=12 end - local.get $1 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add - local.get $3 + local.get $12 f64.store end - local.get $8 + local.get $5 i32.const 1 i32.add - local.set $8 + local.set $5 br $for-loop|01 end end - local.get $1 - local.get $2 + local.get $11 + local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 - local.get $2 + 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 $1 + local.get $4 + local.get $11 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $1 i32.store offset=8 loop $for-loop|2 - local.get $7 - local.get $1 + local.get $6 + local.get $11 i32.load offset=12 i32.lt_s if - local.get $4 - local.get $1 - local.get $7 + local.get $10 + local.get $11 + local.get $6 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -17251,21 +17250,21 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 - local.get $7 + local.get $11 + local.get $6 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|2 end end - local.get $0 + local.get $1 i32.load offset=20 - local.get $4 + local.get $10 i32.load offset=20 i32.ne if @@ -17277,14 +17276,14 @@ unreachable end f64.const 0 - local.set $3 + local.set $12 loop $for-loop|3 - local.get $3 + local.get $12 f64.const 50 f64.lt if - local.get $4 - local.get $3 + local.get $10 + local.get $12 call $~lib/set/Set#has i32.eqz if @@ -17295,11 +17294,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $10 + local.get $12 call $~lib/set/Set#delete - local.get $4 - local.get $3 + local.get $10 + local.get $12 call $~lib/set/Set#has if i32.const 0 @@ -17309,14 +17308,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 f64.const 1 f64.add - local.set $3 + local.set $12 br $for-loop|3 end end - local.get $4 + local.get $10 i32.load offset=20 i32.const 50 i32.ne @@ -17329,14 +17328,14 @@ unreachable end f64.const 0 - local.set $3 + local.set $12 loop $for-loop|4 - local.get $3 + local.get $12 f64.const 50 f64.lt if - local.get $4 - local.get $3 + local.get $10 + local.get $12 call $~lib/set/Set#has if i32.const 0 @@ -17346,11 +17345,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $10 + local.get $12 call $~lib/set/Set#add - local.get $4 - local.get $3 + local.get $10 + local.get $12 call $~lib/set/Set#has i32.eqz if @@ -17361,11 +17360,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $10 + local.get $12 call $~lib/set/Set#delete - local.get $4 - local.get $3 + local.get $10 + local.get $12 call $~lib/set/Set#has if i32.const 0 @@ -17375,14 +17374,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 f64.const 1 f64.add - local.set $3 + local.set $12 br $for-loop|4 end end - local.get $4 + local.get $10 i32.load offset=20 i32.const 50 i32.ne @@ -17394,9 +17393,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $10 call $~lib/set/Set#clear - local.get $4 + local.get $10 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 1f0497f94f..6db3198069 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -210,16 +210,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1952 i32.load i32.gt_u @@ -231,7 +231,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1956 @@ -247,26 +247,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -394,8 +394,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -403,11 +401,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -415,25 +414,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -642,7 +642,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -650,6 +649,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -665,7 +665,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -673,6 +672,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -727,11 +727,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1904 @@ -755,11 +755,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1904 @@ -919,17 +919,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -989,15 +989,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1125,12 +1125,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1170,13 +1168,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1216,10 +1214,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1228,7 +1226,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1237,6 +1234,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1250,12 +1248,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1268,7 +1266,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1277,6 +1274,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1460,417 +1458,102 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1632 - i32.const 1696 - i32.const 260 - i32.const 31 - call $~lib/builtins/abort - unreachable - end - 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 $3 - loop $do-continue|0 - local.get $3 - call $~lib/rt/itcms/step - i32.sub - local.set $3 - 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 $3 - i32.const 0 - i32.gt_s - br_if $do-continue|0 - end - global.get $~lib/rt/itcms/total + loop $while-continue|0 + local.get $1 + i32.const 3 + i32.and + i32.const 0 + local.get $2 + select + if + local.get $0 local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 local.get $3 - global.get $~lib/rt/itcms/threshold + local.get $4 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold + local.set $2 + br $while-continue|0 end end local.get $0 - i32.const 16 - i32.add - local.set $6 - global.get $~lib/rt/tlsf/ROOT + i32.const 3 + i32.and i32.eqz if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $6 - i32.const 1073741820 - i32.gt_u - if - i32.const 1632 - i32.const 1904 - i32.const 458 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.tee $2 - local.get $6 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $6 - i32.const 19 - i32.add - i32.const -16 + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + local.get $1 + i32.load offset=4 + i32.store offset=4 + local.get $0 + local.get $1 + i32.load offset=8 + i32.store offset=8 + local.get $0 + local.get $1 + i32.load offset=12 + i32.store offset=12 + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 i32.and - i32.const 4 - i32.sub - end - local.tee $3 - call $~lib/rt/tlsf/searchBlock - local.tee $6 - i32.eqz - if - local.get $3 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1 - i32.const 27 - local.get $3 - i32.clz - i32.sub - i32.shl - i32.const 1 - i32.sub + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + local.get $1 + i32.load offset=4 + i32.store offset=4 + local.get $1 + i32.const 8 i32.add - else - local.get $3 + local.set $1 + local.get $0 + i32.const 8 + i32.add + local.set $0 end - i32.const 4 - memory.size - local.tee $6 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - local.get $2 - i32.load offset=1568 - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 - i32.lt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $5 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $6 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $2 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $6 - i32.eqz - if - i32.const 0 - i32.const 1904 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - local.get $6 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1904 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $6 - call $~lib/rt/tlsf/removeBlock - local.get $6 - i32.load - local.set $5 - local.get $3 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1904 - i32.const 357 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 - i32.and - local.get $3 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u - if - local.get $6 - local.get $3 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $3 - local.get $6 - i32.const 4 - i32.add - i32.add - local.tee $3 - local.get $4 - 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 $6 - local.get $5 - i32.const -2 - i32.and - i32.store - local.get $6 - i32.const 4 - i32.add - local.tee $3 - local.get $6 - i32.load - i32.const -4 - i32.and - i32.add - local.get $3 - local.get $6 - i32.load - i32.const -4 - i32.and - i32.add - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $6 - local.get $1 - i32.store offset=12 - local.get $6 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $3 - i32.load offset=8 - local.set $1 - local.get $6 - local.get $3 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $6 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $6 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $3 - local.get $6 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $6 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $6 - i32.const 20 - i32.add - local.tee $1 - local.get $0 - call $~lib/memory/memory.fill - local.get $1 - ) - (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - loop $while-continue|0 - local.get $1 - i32.const 3 - i32.and - i32.const 0 - local.get $2 - select - if - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 - 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 $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.eqz - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - local.get $1 - i32.load offset=4 - i32.store offset=4 - local.get $0 - local.get $1 - i32.load offset=8 - i32.store offset=8 - local.get $0 - local.get $1 - i32.load offset=12 - i32.store offset=12 - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - local.get $1 - i32.load offset=4 - i32.store offset=4 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 8 - i32.add - local.set $0 - end - local.get $2 + local.get $2 i32.const 4 i32.and if @@ -1938,29 +1621,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 - local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -1982,25 +1663,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2073,25 +1754,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2160,25 +1841,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2218,143 +1899,247 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 @@ -2373,7 +2158,7 @@ i32.store8 offset=1 end local.get $2 - i32.const 8 + i32.const 2 i32.and if local.get $0 @@ -2381,168 +2166,571 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + end + local.get $2 + i32.const 1 + i32.and + if local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 - local.get $0 - i32.const 1 - i32.add - local.tee $0 + end + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $1 + local.get $0 + i32.const 20 + i32.sub + local.tee $5 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $5 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.store offset=16 local.get $0 - i32.const 1 - i32.add - local.tee $0 + return + end + local.get $5 + i32.load offset=12 + local.set $7 + local.get $1 + local.tee $2 + i32.const 1073741804 + i32.ge_u + if + i32.const 1632 + i32.const 1696 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + 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 $1 + loop $do-continue|0 + local.get $1 + call $~lib/rt/itcms/step + i32.sub + local.set $1 + 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 $1 + i32.const 0 + i32.gt_s + br_if $do-continue|0 + 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 + i32.add + global.set $~lib/rt/itcms/threshold + end + end + local.get $2 + i32.const 16 + i32.add + 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.tee $3 + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 1632 + i32.const 1904 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 + i32.const 19 i32.add - local.tee $0 + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $4 + i32.eqz + if + memory.size + local.tee $6 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + else + local.get $1 + end + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $6 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl i32.add - local.tee $0 - local.get $1 - i32.const 1 + i32.const 65535 i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u local.tee $4 - i32.const 2 - i32.add - local.set $0 - local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 local.get $4 + local.get $6 + i32.lt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $3 + local.get $6 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $1 + call $~lib/rt/tlsf/searchBlock + local.tee $4 + i32.eqz + if + i32.const 0 + i32.const 1904 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - local.get $2 + local.get $1 + local.get $4 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1904 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $4 + i32.load + local.set $6 + local.get $1 i32.const 4 + i32.add + i32.const 15 i32.and if - local.get $0 + i32.const 0 + i32.const 1904 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $1 + i32.sub + local.tee $8 + i32.const 16 + i32.ge_u + if + local.get $4 local.get $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.tee $0 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store local.get $1 - i32.const 1 + local.get $4 + i32.const 4 + i32.add i32.add local.tee $1 - i32.load8_u - i32.store8 - local.get $0 + local.get $8 + i32.const 4 + i32.sub i32.const 1 - i32.add - local.tee $0 + i32.or + i32.store + local.get $3 local.get $1 - i32.const 1 + call $~lib/rt/tlsf/insertBlock + else + local.get $4 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $4 + i32.const 4 i32.add local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 - i32.const 2 + local.get $4 + i32.load + i32.const -4 + i32.and i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 local.get $4 - local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + i32.load + i32.const -4 + i32.and + i32.add + i32.load + i32.const -3 + i32.and + i32.store end + local.get $4 + local.get $7 + i32.store offset=12 + local.get $4 local.get $2 - i32.const 2 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $3 + i32.load offset=8 + local.set $1 + local.get $4 + local.get $3 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $4 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $4 + local.get $1 + i32.load offset=4 + i32.const 3 i32.and - if + i32.or + i32.store offset=4 + local.get $3 + local.get $4 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $4 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $4 + i32.const 20 + i32.add + local.tee $4 + local.get $2 + call $~lib/memory/memory.fill + local.get $2 + local.get $5 + i32.load offset=16 + local.tee $1 + local.get $1 + local.get $2 + i32.gt_u + select + local.set $5 + block $~lib/util/memory/memmove|inlined.0 local.get $0 + local.tee $1 + local.get $4 + local.tee $0 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 local.get $1 - i32.load8_u - i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 - local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 - end - local.get $2 - i32.const 1 - i32.and - if + 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.load8_u - i32.store8 + 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 $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $2 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $2 + 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 $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $2 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $2 + 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 + local.get $4 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $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.get $0 i32.load offset=8 - local.tee $8 + local.tee $2 local.get $1 i32.shr_u i32.const 1 @@ -2561,262 +2749,38 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $2 + local.get $0 + i32.load + local.tee $4 + local.get $2 i32.const 1 i32.shl - local.tee $4 + local.tee $3 + i32.const 1073741820 + local.get $3 i32.const 1073741820 i32.lt_u - local.set $3 + select + local.tee $3 i32.const 8 local.get $1 i32.shl local.tee $1 - local.get $4 - i32.const 1073741820 + local.get $1 local.get $3 - select - local.tee $4 i32.lt_u - local.set $3 - block $__inlined_func$~lib/rt/itcms/__renew - local.get $4 - local.get $1 - local.get $3 - select - local.tee $7 - local.tee $3 - local.get $0 - i32.load - local.tee $6 - 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 $3 - i32.store offset=16 - br $__inlined_func$~lib/rt/itcms/__renew - end - local.get $3 - local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $5 - local.set $4 - local.get $3 - local.get $2 - i32.load offset=16 - local.tee $2 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $9 - block $~lib/util/memory/memmove|inlined.0 - local.get $1 - local.get $4 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $1 - local.get $4 - 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 $4 - local.get $1 - local.get $9 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $1 - local.get $4 - i32.gt_u - if - local.get $1 - 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 $9 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $9 - i32.const 1 - i32.sub - local.set $9 - local.get $4 - local.tee $3 - i32.const 1 - i32.add - local.set $4 - local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $2 - 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 $4 - local.get $1 - i64.load - i64.store - local.get $9 - i32.const 8 - i32.sub - local.set $9 - local.get $4 - i32.const 8 - i32.add - local.set $4 - local.get $1 - i32.const 8 - i32.add - local.set $1 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $9 - if - local.get $4 - local.tee $3 - i32.const 1 - i32.add - local.set $4 - local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $2 - i32.load8_u - i32.store8 - local.get $9 - i32.const 1 - i32.sub - local.set $9 - br $while-continue|2 - end - end - else - local.get $1 - 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 $9 - i32.add - i32.const 7 - i32.and - if - local.get $9 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $4 - local.get $9 - i32.const 1 - i32.sub - local.tee $9 - 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 $4 - local.get $9 - i32.const 8 - i32.sub - local.tee $9 - 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 $4 - local.get $9 - i32.const 1 - i32.sub - local.tee $9 - i32.add - local.get $1 - local.get $9 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - local.get $5 - local.set $1 - end - local.get $1 - local.get $8 + select + local.tee $3 + call $~lib/rt/itcms/__renew + local.tee $1 i32.add - local.get $7 - local.get $8 + local.get $3 + local.get $2 i32.sub call $~lib/memory/memory.fill local.get $1 - local.get $6 + local.get $4 i32.ne if local.get $0 @@ -2853,7 +2817,7 @@ i32.load offset=4 i32.const 3 i32.and - local.tee $4 + local.tee $2 global.get $~lib/rt/itcms/white i32.eqz i32.eq @@ -2865,7 +2829,7 @@ i32.const 1 i32.eq i32.const 0 - local.get $4 + local.get $2 i32.const 3 i32.eq select @@ -2878,7 +2842,7 @@ end end local.get $0 - local.get $7 + local.get $3 i32.store offset=8 end ) diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index a55826f6f3..db3ce01680 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -2,8 +2,8 @@ (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $none_=>_none (func)) - (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) @@ -117,14 +117,14 @@ (export "memory" (memory $0)) (start $~start) (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1088 i32.const 1152 @@ -133,10 +133,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load ) @@ -170,18 +170,14 @@ call $~lib/rt/itcms/__visit global.get $std/staticarray/arr3 local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end global.get $std/staticarray/arr4 local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end i32.const 1088 @@ -304,16 +300,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 3088 i32.load i32.gt_u @@ -325,7 +321,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 3092 @@ -341,26 +337,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -488,8 +484,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -497,11 +491,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -509,25 +504,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -736,7 +732,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -744,6 +739,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -759,7 +755,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -767,6 +762,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -821,11 +817,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1616 @@ -849,11 +845,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1616 @@ -1013,17 +1009,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1083,15 +1079,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1219,12 +1215,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1264,13 +1258,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1310,10 +1304,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1322,7 +1316,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1331,6 +1324,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1344,12 +1338,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1362,7 +1356,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1371,6 +1364,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1577,12 +1571,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1598,14 +1592,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1619,14 +1613,15 @@ local.get $0 i32.const 16 i32.add - local.set $6 + 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 $6 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1637,14 +1632,13 @@ call $~lib/builtins/abort unreachable end - local.tee $2 - local.get $6 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $6 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1652,19 +1646,21 @@ i32.const 4 i32.sub end - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if - local.get $3 + memory.size + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl @@ -1672,17 +1668,16 @@ i32.sub i32.add else - local.get $3 + local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1692,18 +1687,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1711,18 +1704,18 @@ unreachable end end - local.get $2 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if i32.const 0 @@ -1733,8 +1726,8 @@ unreachable end end + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1747,13 +1740,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $6 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $6 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1766,54 +1759,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $6 local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $2 local.get $3 - local.get $6 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $6 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $6 + local.get $3 i32.const 4 i32.add - local.tee $3 - local.get $6 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1823,37 +1816,37 @@ i32.and i32.store end - local.get $6 + local.get $3 local.get $1 i32.store offset=12 - local.get $6 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 local.set $1 - local.get $6 local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $6 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $6 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $6 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.load i32.const -4 i32.and @@ -1861,7 +1854,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -2032,29 +2025,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2076,25 +2067,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2167,25 +2158,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2254,25 +2245,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2312,143 +2303,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2475,63 +2452,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2558,23 +2529,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3313,116 +3282,133 @@ end local.get $0 ) + (func $~lib/staticarray/StaticArray~visit (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $1 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/staticarray/StaticArray - block $~lib/staticarray/StaticArray - block $~lib/array/Array<~lib/string/String> - block $std/staticarray/Ref - block $~lib/staticarray/StaticArray - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer + block $invalid + block $~lib/staticarray/StaticArray + block $~lib/staticarray/StaticArray + block $~lib/array/Array<~lib/string/String> + block $~lib/staticarray/StaticArray<~lib/string/String> + block $~lib/array/Array + block $~lib/array/Array + block $~lib/staticarray/StaticArray + block $std/staticarray/Ref + block $~lib/staticarray/StaticArray + 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 $~lib/array/Array $~lib/array/Array $~lib/staticarray/StaticArray<~lib/string/String> $~lib/array/Array<~lib/string/String> $~lib/staticarray/StaticArray $~lib/staticarray/StaticArray $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if 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 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner0 $~lib/array/Array<~lib/string/String> $~lib/staticarray/StaticArray $~lib/staticarray/StaticArray $invalid + call $~lib/rt/itcms/__visit end return end return end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end return end + local.get $0 + call $~lib/staticarray/StaticArray~visit return end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit return end local.get $0 - local.tee $1 - i32.load offset=4 - local.tee $2 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - if - local.get $2 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $1 i32.load call $~lib/rt/itcms/__visit return end + local.get $0 + call $~lib/staticarray/StaticArray~visit return end - return - end - unreachable - end - local.get $0 - local.tee $1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.add - local.set $2 - loop $while-continue|00 - local.get $1 - local.get $2 - i32.lt_u - if - local.get $1 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit + local.get $0 + local.tee $1 + i32.load offset=4 + local.tee $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + if + local.get $2 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end end local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|00 + i32.load + call $~lib/rt/itcms/__visit + return end + return end return end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit + unreachable ) (func $~start call $start:std/staticarray diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index 605f946703..d3a853c770 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -622,16 +622,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 21056 i32.load i32.gt_u @@ -643,7 +643,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 21060 @@ -659,26 +659,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -787,8 +787,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -796,11 +794,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -808,25 +807,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -1035,7 +1035,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -1043,6 +1042,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -1058,7 +1058,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -1066,6 +1065,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -1120,11 +1120,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1424 @@ -1148,11 +1148,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1424 @@ -1312,17 +1312,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1382,15 +1382,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1518,12 +1518,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1563,13 +1561,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1609,10 +1607,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1621,7 +1619,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1630,6 +1627,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1643,12 +1641,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1661,7 +1659,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1670,6 +1667,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1749,7 +1747,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $3 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1761,7 +1759,6 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $2 i32.const 12 i32.le_u @@ -1778,9 +1775,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if + memory.size + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1799,14 +1798,13 @@ local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $3 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1816,18 +1814,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1835,18 +1831,18 @@ unreachable end end - local.get $3 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1858,7 +1854,7 @@ end end local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1871,12 +1867,12 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $4 + local.get $3 i32.load - local.set $6 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1890,54 +1886,54 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const -4 i32.and local.get $2 i32.sub - local.tee $5 + local.tee $6 i32.const 16 i32.ge_u if - local.get $4 + local.get $3 local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.and i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add local.tee $2 - local.get $5 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $3 local.get $4 - local.get $6 i32.const -2 i32.and i32.store - local.get $4 + local.get $3 i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1947,37 +1943,37 @@ i32.and i32.store end - local.get $4 + local.get $3 local.get $1 i32.store offset=12 - local.get $4 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $4 - local.get $1 + local.set $1 + local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $2 - local.get $4 - local.get $2 + local.get $1 + local.get $3 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1985,22 +1981,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.const 20 i32.add - local.tee $2 - local.set $3 + local.tee $3 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $3 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -2009,18 +2005,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $3 + 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 @@ -2029,10 +2025,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -2041,38 +2037,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 - local.get $3 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -2085,20 +2081,20 @@ i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 - local.get $5 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -2121,8 +2117,8 @@ i32.sub i32.const 0 i32.store - local.get $5 - local.get $5 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -2130,7 +2126,7 @@ local.tee $0 i32.add local.set $1 - local.get $3 + local.get $2 local.get $0 i32.sub local.set $0 @@ -2163,7 +2159,7 @@ end end end - local.get $2 + local.get $3 ) (func $~lib/util/casemap/casemap (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2172,14 +2168,21 @@ (local $5 i32) (local $6 i32) block $folding-inner0 + local.get $0 + i32.const 255 + i32.and + local.tee $5 + i32.const 3 + i32.rem_u + i32.const 2 + i32.shl + i32.const 5112 + i32.add + i32.load local.get $0 i32.const 8 i32.shr_u - local.tee $2 - i32.const 6084 - i32.add - i32.load8_u - local.get $2 + local.tee $3 i32.const 2444 i32.add i32.load8_u @@ -2187,27 +2190,20 @@ i32.mul i32.const 2444 i32.add - local.get $0 - i32.const 255 - i32.and - local.tee $5 + local.get $5 i32.const 3 i32.div_u i32.add i32.load8_u - local.get $5 - i32.const 3 - i32.rem_u - i32.const 2 - i32.shl - i32.const 5112 - i32.add - i32.load i32.mul i32.const 11 i32.shr_u i32.const 6 i32.rem_u + local.get $3 + i32.const 6084 + i32.add + i32.load8_u i32.add i32.const 2 i32.shl @@ -2215,32 +2211,33 @@ i32.add i32.load local.tee $2 - i32.const 8 - i32.shr_s - local.set $3 - local.get $2 i32.const 255 i32.and - local.tee $2 + local.set $3 + local.get $2 + i32.const 8 + i32.shr_s + local.set $2 + local.get $3 i32.const 2 i32.lt_u br_if $folding-inner0 - local.get $3 + local.get $2 i32.const 255 i32.and - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.const 8 i32.shr_u local.set $4 loop $while-continue|0 - local.get $2 + local.get $3 if local.get $5 - local.get $2 + local.get $3 i32.const 1 i32.shr_u - local.tee $3 + local.tee $2 local.get $4 i32.add i32.const 1 @@ -2251,7 +2248,7 @@ local.tee $6 i32.eq if (result i32) - local.get $3 + local.get $2 local.get $4 i32.add i32.const 1 @@ -2265,13 +2262,14 @@ i32.add i32.load local.tee $2 - i32.const 8 - i32.shr_s - local.set $3 - local.get $2 i32.const 255 i32.and - local.tee $2 + local.set $3 + local.get $2 + i32.const 8 + i32.shr_s + local.set $2 + local.get $3 i32.const 2 i32.lt_u br_if $folding-inner0 @@ -2288,32 +2286,32 @@ local.get $6 i32.lt_u if (result i32) - local.get $3 + local.get $2 else - local.get $3 + local.get $2 local.get $4 i32.add local.set $4 - local.get $2 local.get $3 + local.get $2 i32.sub end end - local.set $2 + local.set $3 br $while-continue|0 end end local.get $0 return end - local.get $0 - local.get $3 i32.const 0 local.get $1 - local.get $2 + local.get $3 i32.xor i32.sub + local.get $2 i32.and + local.get $0 i32.add ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) @@ -2479,29 +2477,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2523,25 +2519,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2614,25 +2610,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2701,25 +2697,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2759,143 +2755,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $0 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 @@ -2922,63 +2904,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3005,23 +2981,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3266,7 +3240,6 @@ (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $1 local.get $0 i32.const 20 i32.sub @@ -3276,7 +3249,8 @@ i32.and i32.const 16 i32.sub - i32.le_u + local.get $1 + i32.ge_u if local.get $2 local.get $1 @@ -3432,13 +3406,13 @@ i32.const 10000 i32.div_u local.set $1 - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 100 @@ -3467,13 +3441,13 @@ i32.const 100 i32.ge_u if - local.get $0 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 @@ -3493,12 +3467,12 @@ i32.const 10 i32.ge_u if - local.get $0 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 2 @@ -3508,12 +3482,12 @@ i32.load i32.store else - local.get $0 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 48 @@ -3722,22 +3696,22 @@ i32.rem_u local.tee $5 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 19212 i32.add i64.load32_u + i64.const 32 + i64.shl local.get $5 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 19212 i32.add i64.load32_u - i64.const 32 - i64.shl i64.or i64.store local.get $1 @@ -3753,22 +3727,22 @@ i32.div_u local.tee $3 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 19212 i32.add i64.load32_u + i64.const 32 + i64.shl local.get $3 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 19212 i32.add i64.load32_u - i64.const 32 - i64.shl i64.or i64.store br $while-continue|0 @@ -4175,17 +4149,17 @@ i32.const 65536 i32.sub local.tee $1 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.get $1 i32.const 1023 i32.and i32.const 56320 i32.or i32.const 16 i32.shl - local.get $1 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or i32.or i32.store local.get $5 @@ -7010,7 +6984,7 @@ i32.const 1023 i32.and local.get $1 - local.tee $2 + local.tee $3 i32.const 1023 i32.and i32.const 10 @@ -7027,7 +7001,7 @@ i32.const 1 i32.shl i32.add - local.get $2 + local.get $3 local.get $7 i32.const 16 i32.shl @@ -7074,10 +7048,10 @@ if (result i32) block $~lib/util/string/isFinalSigma|inlined.0 (result i32) i32.const 0 - local.set $3 + local.set $2 i32.const 0 local.get $4 - local.tee $2 + local.tee $3 i32.const 30 i32.sub local.tee $1 @@ -7087,21 +7061,19 @@ select local.set $9 loop $while-continue|1 - local.get $2 + local.get $3 local.get $9 i32.gt_s if - local.get $2 - local.set $1 i32.const -1 - local.set $2 + local.set $1 block $~lib/util/string/codePointBefore|inlined.0 - local.get $1 + local.get $3 i32.const 0 i32.le_s br_if $~lib/util/string/codePointBefore|inlined.0 local.get $0 - local.get $1 + local.get $3 i32.const 1 i32.sub i32.const 1 @@ -7113,7 +7085,7 @@ i32.and i32.const 56320 i32.eq - local.get $1 + local.get $3 i32.const 2 i32.sub i32.const 0 @@ -7124,7 +7096,7 @@ i32.const 1023 i32.and local.get $0 - local.get $1 + local.get $3 i32.const 2 i32.sub i32.const 1 @@ -7139,7 +7111,7 @@ i32.add i32.const 65536 i32.add - local.set $2 + local.set $1 local.get $10 i32.const 64512 i32.and @@ -7155,13 +7127,13 @@ i32.const 55296 i32.eq select - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 918000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 8 i32.shr_u i32.const 7212 @@ -7171,14 +7143,14 @@ i32.shl i32.const 7212 i32.add - local.get $2 + local.get $1 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u - local.get $2 + local.get $1 i32.const 7 i32.and i32.shr_u @@ -7190,11 +7162,11 @@ i32.eqz if i32.const 0 - local.get $2 + local.get $1 i32.const 127370 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 8 i32.shr_u i32.const 10220 @@ -7204,14 +7176,14 @@ i32.shl i32.const 10220 i32.add - local.get $2 + local.get $1 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u - local.get $2 + local.get $1 i32.const 7 i32.and i32.shr_u @@ -7224,28 +7196,28 @@ br_if $~lib/util/string/isFinalSigma|inlined.0 drop i32.const 1 - local.set $3 + local.set $2 end + local.get $3 local.get $1 - local.get $2 i32.const 65536 i32.ge_s i32.const 1 i32.add i32.sub - local.set $2 + local.set $3 br $while-continue|1 end end i32.const 0 - local.get $3 + local.get $2 i32.eqz br_if $~lib/util/string/isFinalSigma|inlined.0 drop local.get $4 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 30 i32.add local.tee $1 @@ -7254,14 +7226,14 @@ local.get $8 i32.lt_s select - local.set $3 + local.set $2 loop $while-continue|2 local.get $2 local.get $3 - i32.lt_s + i32.gt_s if local.get $0 - local.get $2 + local.get $3 i32.const 1 i32.shl i32.add @@ -7272,14 +7244,14 @@ i32.const 55296 i32.eq local.get $8 - local.get $2 + local.get $3 i32.const 1 i32.add i32.ne i32.and if local.get $0 - local.get $2 + local.get $3 i32.const 1 i32.shl i32.add @@ -7365,14 +7337,14 @@ i32.eqz br $~lib/util/string/isFinalSigma|inlined.0 end - local.get $2 + local.get $3 local.get $1 i32.const 65536 i32.ge_u i32.const 1 i32.add i32.add - local.set $2 + local.set $3 br $while-continue|2 end end @@ -7405,7 +7377,7 @@ call $~lib/util/casemap/casemap i32.const 2097151 i32.and - local.tee $2 + local.tee $1 i32.const 65536 i32.lt_u if @@ -7414,7 +7386,7 @@ i32.const 1 i32.shl i32.add - local.get $2 + local.get $1 i32.store16 else local.get $6 @@ -7422,21 +7394,21 @@ i32.const 1 i32.shl i32.add - local.get $2 + local.get $1 i32.const 65536 i32.sub - local.tee $2 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or - local.get $2 + local.tee $1 i32.const 1023 i32.and i32.const 56320 i32.or i32.const 16 i32.shl + local.get $1 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or i32.or i32.store local.get $5 diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index 6ce3f30408..bca2e75592 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -207,16 +207,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 22512 i32.load i32.gt_u @@ -228,7 +228,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 22516 @@ -244,26 +244,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -372,8 +372,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -381,11 +379,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -393,25 +392,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -620,7 +620,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -628,6 +627,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -643,7 +643,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -651,6 +650,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -705,11 +705,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1488 @@ -733,11 +733,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1488 @@ -897,17 +897,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -967,15 +967,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1103,12 +1103,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1148,13 +1146,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1194,10 +1192,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1206,7 +1204,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1215,6 +1212,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1228,12 +1226,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1246,7 +1244,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1255,6 +1252,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1334,7 +1332,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $3 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1346,7 +1344,6 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $2 i32.const 12 i32.le_u @@ -1363,9 +1360,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if + memory.size + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1384,14 +1383,13 @@ local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $3 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1401,18 +1399,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1420,18 +1416,18 @@ unreachable end end - local.get $3 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1443,7 +1439,7 @@ end end local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1456,12 +1452,12 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $4 + local.get $3 i32.load - local.set $6 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1475,54 +1471,54 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const -4 i32.and local.get $2 i32.sub - local.tee $5 + local.tee $6 i32.const 16 i32.ge_u if - local.get $4 + local.get $3 local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.and i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add local.tee $2 - local.get $5 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $3 local.get $4 - local.get $6 i32.const -2 i32.and i32.store - local.get $4 + local.get $3 i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1532,37 +1528,37 @@ i32.and i32.store end - local.get $4 + local.get $3 local.get $1 i32.store offset=12 - local.get $4 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $4 - local.get $1 + local.set $1 + local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $2 - local.get $4 - local.get $2 + local.get $1 + local.get $3 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1570,22 +1566,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.const 20 i32.add - local.tee $2 - local.set $3 + local.tee $3 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $3 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1594,18 +1590,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $3 + 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 @@ -1614,10 +1610,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1626,38 +1622,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 - local.get $3 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1670,20 +1666,20 @@ i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 - local.get $5 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1706,8 +1702,8 @@ i32.sub i32.const 0 i32.store - local.get $5 - local.get $5 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1715,7 +1711,7 @@ local.tee $0 i32.add local.set $1 - local.get $3 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1748,7 +1744,7 @@ end end end - local.get $2 + local.get $3 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -1913,29 +1909,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -1957,25 +1951,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2048,25 +2042,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2135,25 +2129,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2193,143 +2187,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2356,63 +2336,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2439,23 +2413,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2818,10 +2790,10 @@ (local $3 i32) (local $4 i32) local.get $0 - local.get $0 i32.const 20 i32.sub i32.load offset=16 + local.get $0 i32.add local.set $4 local.get $1 @@ -2840,9 +2812,9 @@ i32.const 128 i32.lt_u if (result i32) - local.get $1 local.get $3 i32.eqz + local.get $1 i32.and br_if $while-break|0 local.get $2 @@ -2952,8 +2924,6 @@ (func $~start (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3158,286 +3128,84 @@ 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-inner1 - 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.tee $1 - local.get $0 - i32.store - local.get $1 - 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 - 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-inner1 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1052 - i32.load - local.set $2 - local.get $0 - i32.const 0 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $1 - i32.store - local.get $3 - i32.const 1552 - i32.store offset=8 - local.get $1 - i32.const 1552 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 42 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1056 - i32.store offset=8 - local.get $1 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 43 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1584 - i32.store offset=8 - local.get $1 - i32.const 1584 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 44 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 4 - i32.add - i32.const 2 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1616 - i32.store offset=8 - local.get $1 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz + i32.const 82 + i32.ne if i32.const 0 i32.const 1088 - i32.const 45 + i32.const 24 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 4 - i32.add - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1648 - i32.store offset=8 - local.get $1 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz + i32.load8_u offset=9 + i32.const 216 + i32.ne if i32.const 0 i32.const 1088 - i32.const 46 + i32.const 25 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 8 - i32.add - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1680 - i32.store offset=8 - local.get $1 - i32.const 1680 - call $~lib/string/String.__eq - i32.eqz + i32.load8_u offset=10 + i32.const 98 + i32.ne if i32.const 0 i32.const 1088 - i32.const 47 + i32.const 26 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 12 + 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-inner1 + 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 @@ -3445,16 +3213,16 @@ local.get $0 i32.store local.get $1 - i32.const 1552 + i32.const 1056 i32.store offset=8 local.get $0 - i32.const 1552 + i32.const 1056 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1088 - i32.const 48 + i32.const 33 i32.const 3 call $~lib/builtins/abort unreachable @@ -3463,6 +3231,7 @@ 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 @@ -4207,92 +3976,307 @@ 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 - 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 + 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.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|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 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/string-encoding/testUTF16DecodeUnsafe + (local $0 i32) + (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 + global.get $~lib/memory/__stack_pointer + i32.const 22540 + i32.lt_s + if + i32.const 38944 + i32.const 38992 + i32.const 1 + 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 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1056 + i32.store + local.get $1 + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1052 + i32.load + local.set $2 + local.get $1 + i32.const 0 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + i32.const 1552 + i32.store offset=8 + local.get $0 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + 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 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + i32.const 1584 + i32.store offset=8 + local.get $0 + i32.const 1584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 2 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + i32.const 1616 + i32.store offset=8 + local.get $0 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if i32.const 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|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 + i32.const 1088 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 38944 - i32.const 38992 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 4 + i32.add + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + i32.const 1648 + i32.store offset=8 + local.get $0 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 8 + i32.add + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + i32.const 1680 + i32.store offset=8 + local.get $0 + i32.const 1680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 12 + i32.add + i32.const 0 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $1 + i32.store + local.get $0 + i32.const 1552 + i32.store offset=8 + local.get $1 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 48 + 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 ) (func $std/string-encoding/testUTF8DecodeUnsafe (local $0 i32) @@ -4777,10 +4761,12 @@ call $~lib/string/String.UTF8.byteLength i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store + local.get $4 + local.set $5 + local.get $0 local.get $0 - local.tee $4 i32.const 20 i32.sub i32.load offset=16 @@ -4788,26 +4774,23 @@ i32.shr_u i32.const 1 i32.shl - local.get $4 i32.add - local.set $7 - local.get $5 - local.set $0 + local.set $6 loop $while-continue|0 - local.get $4 - local.get $7 + local.get $0 + local.get $6 i32.lt_u if - local.get $4 + local.get $0 i32.load16_u local.tee $3 i32.const 128 i32.lt_u if (result i32) - local.get $0 + local.get $5 local.get $3 i32.store8 - local.get $0 + local.get $5 i32.const 1 i32.add else @@ -4815,7 +4798,7 @@ i32.const 2048 i32.lt_u if (result i32) - local.get $0 + local.get $5 local.get $3 i32.const 6 i32.shr_u @@ -4830,7 +4813,7 @@ i32.shl i32.or i32.store16 - local.get $0 + local.get $5 i32.const 2 i32.add else @@ -4840,8 +4823,8 @@ i32.const 55296 i32.eq if - local.get $7 - local.get $4 + local.get $6 + local.get $0 i32.const 2 i32.add i32.gt_u @@ -4851,15 +4834,14 @@ i32.lt_u select if - local.get $4 + local.get $0 i32.load16_u offset=2 - local.tee $6 + local.tee $7 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $0 local.get $3 i32.const 1023 i32.and @@ -4867,18 +4849,26 @@ i32.shl i32.const 65536 i32.add - local.get $6 + local.get $7 i32.const 1023 i32.and i32.or - local.tee $6 + local.tee $7 i32.const 63 i32.and i32.const 128 i32.or + local.set $3 + local.get $5 + local.get $7 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + local.get $3 i32.const 24 i32.shl - local.get $6 + local.get $7 i32.const 6 i32.shr_u i32.const 63 @@ -4888,7 +4878,7 @@ i32.const 16 i32.shl i32.or - local.get $6 + local.get $7 i32.const 12 i32.shr_u i32.const 63 @@ -4898,21 +4888,16 @@ i32.const 8 i32.shl i32.or - local.get $6 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or i32.or i32.store - local.get $0 + local.get $5 i32.const 4 i32.add - local.set $0 - local.get $4 + local.set $5 + local.get $0 i32.const 4 i32.add - local.set $4 + local.set $0 br $while-continue|0 end end @@ -4935,7 +4920,7 @@ end local.set $3 end - local.get $0 + local.get $5 local.get $3 i32.const 12 i32.shr_u @@ -4952,29 +4937,29 @@ i32.shl i32.or i32.store16 - local.get $0 + local.get $5 local.get $3 i32.const 63 i32.and i32.const 128 i32.or i32.store8 offset=2 - local.get $0 + local.get $5 i32.const 3 i32.add end end - local.set $0 - local.get $4 + local.set $5 + local.get $0 i32.const 2 i32.add - local.set $4 + local.set $0 br $while-continue|0 end end local.get $1 if - local.get $0 + local.get $5 i32.const 0 i32.store8 end @@ -4982,7 +4967,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 ) (func $~lib/string/String.UTF8.decodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 95a19f3fa1..1374fc496f 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -1070,10 +1070,8 @@ (local $1 i32) global.get $std/string/str local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end i32.const 1264 @@ -1200,16 +1198,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 25840 i32.load i32.gt_u @@ -1221,7 +1219,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 25844 @@ -1237,26 +1235,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -1384,8 +1382,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -1393,11 +1389,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -1405,25 +1402,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -1632,7 +1630,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -1640,6 +1637,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -1655,7 +1653,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -1663,6 +1660,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -1717,11 +1715,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1648 @@ -1745,11 +1743,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1648 @@ -1909,17 +1907,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1979,15 +1977,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -2115,12 +2113,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -2160,13 +2156,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -2206,10 +2202,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -2218,7 +2214,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -2227,6 +2222,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -2240,12 +2236,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -2258,7 +2254,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -2267,6 +2262,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -2473,12 +2469,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -2494,14 +2490,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -2515,14 +2511,15 @@ local.get $0 i32.const 16 i32.add - local.set $6 + 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 $6 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -2533,14 +2530,13 @@ call $~lib/builtins/abort unreachable end - local.tee $2 - local.get $6 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $6 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -2548,19 +2544,21 @@ i32.const 4 i32.sub end - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if - local.get $3 + memory.size + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl @@ -2568,17 +2566,16 @@ i32.sub i32.add else - local.get $3 + local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -2588,18 +2585,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -2607,18 +2602,18 @@ unreachable end end - local.get $2 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if i32.const 0 @@ -2629,8 +2624,8 @@ unreachable end end + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -2643,13 +2638,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $6 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $6 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -2662,54 +2657,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $6 local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $2 local.get $3 - local.get $6 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $6 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $6 + local.get $3 i32.const 4 i32.add - local.tee $3 - local.get $6 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -2719,37 +2714,37 @@ i32.and i32.store end - local.get $6 + local.get $3 local.get $1 i32.store offset=12 - local.get $6 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 local.set $1 - local.get $6 local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $6 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $6 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $6 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.load i32.const -4 i32.and @@ -2757,7 +2752,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -2767,7 +2762,6 @@ ) (func $~lib/string/String#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $1 i32.const 0 local.get $0 i32.const 20 @@ -2780,6 +2774,7 @@ i32.const 0 i32.ge_s select + local.get $1 i32.add local.tee $1 local.get $2 @@ -2796,10 +2791,10 @@ i32.const 1 call $~lib/rt/itcms/__new local.tee $2 - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u i32.store16 @@ -2987,29 +2982,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -3031,25 +3024,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -3122,25 +3115,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -3209,25 +3202,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -3267,143 +3260,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 @@ -3430,63 +3409,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3513,23 +3486,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -4381,6 +4352,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 4240 + local.set $5 i32.const 4236 i32.load i32.const 1 @@ -4392,8 +4365,6 @@ return end i32.const 4240 - local.set $5 - i32.const 4240 i32.load16_u local.set $0 loop $while-continue|0 @@ -4658,6 +4629,8 @@ (local $3 i64) (local $4 i32) (local $5 i32) + i32.const 4288 + local.set $5 i32.const 4284 i32.load i32.const 1 @@ -4669,8 +4642,6 @@ return end i32.const 4288 - local.set $5 - i32.const 4288 i32.load16_u local.set $0 loop $while-continue|0 @@ -5621,9 +5592,9 @@ local.get $3 i32.const 48 i32.sub - local.set $3 + local.set $7 loop $for-loop|5 - local.get $3 + local.get $7 i32.const 10 i32.lt_u i32.const 0 @@ -5638,7 +5609,7 @@ i32.ge_s br_if $~lib/util/string/parseExp|inlined.0 drop - local.get $3 + local.get $7 local.get $4 i32.const 10 i32.mul @@ -5655,7 +5626,7 @@ i32.load16_u i32.const 48 i32.sub - local.set $3 + local.set $7 br $for-loop|5 end end @@ -6077,7 +6048,6 @@ (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $1 local.get $0 i32.const 20 i32.sub @@ -6087,7 +6057,8 @@ i32.and i32.const 16 i32.sub - i32.le_u + local.get $1 + i32.ge_u if local.get $2 local.get $1 @@ -6119,15 +6090,13 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) local.get $0 i32.load offset=12 - local.tee $7 + local.tee $5 i32.const 1 i32.add local.tee $6 - local.set $2 - local.get $6 + local.tee $2 local.get $0 i32.load offset=8 local.tee $4 @@ -6146,13 +6115,19 @@ call $~lib/builtins/abort unreachable end + local.get $0 + i32.load + local.tee $7 local.get $4 i32.const 1 i32.shl local.tee $3 i32.const 1073741820 + local.get $3 + i32.const 1073741820 i32.lt_u - local.set $5 + select + local.tee $3 local.get $2 i32.const 8 local.get $2 @@ -6162,51 +6137,41 @@ i32.const 2 i32.shl local.tee $2 + local.get $2 local.get $3 - i32.const 1073741820 - local.get $5 - select - local.tee $3 i32.lt_u - local.set $5 - local.get $4 - local.get $0 - i32.load - local.tee $8 - local.get $3 - local.get $2 - local.get $5 select - local.tee $3 - call $~lib/rt/itcms/__renew local.tee $2 + call $~lib/rt/itcms/__renew + local.tee $3 + local.get $4 i32.add - local.get $3 + local.get $2 local.get $4 i32.sub call $~lib/memory/memory.fill - local.get $2 - local.get $8 + local.get $3 + local.get $7 i32.ne if local.get $0 - local.get $2 + local.get $3 i32.store local.get $0 - local.get $2 + local.get $3 i32.store offset=4 local.get $0 - local.get $2 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link end local.get $0 - local.get $3 + local.get $2 i32.store offset=8 end local.get $0 i32.load offset=4 - local.get $7 + local.get $5 i32.const 2 i32.shl i32.add @@ -6235,13 +6200,13 @@ i32.const 10000 i32.div_u local.set $1 - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 100 @@ -6270,13 +6235,13 @@ i32.const 100 i32.ge_u if - local.get $0 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 @@ -6296,12 +6261,12 @@ i32.const 10 i32.ge_u if - local.get $0 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 2 @@ -6311,12 +6276,12 @@ i32.load i32.store else - local.get $0 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 48 @@ -6331,19 +6296,19 @@ i64.extend_i32_s local.set $4 local.get $3 - local.get $3 i32.const 1 i32.sub + local.get $3 i32.and if loop $do-continue|1 - local.get $0 local.get $2 i32.const 1 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 local.get $4 @@ -6377,13 +6342,13 @@ i64.sub local.set $4 loop $do-continue|0 - local.get $0 local.get $2 i32.const 1 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 local.get $4 @@ -6413,13 +6378,13 @@ i64.const 100000000 i64.ge_u if - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 local.get $1 @@ -6435,53 +6400,53 @@ i32.rem_u local.tee $4 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 15804 i32.add i64.load32_u + i64.const 32 + i64.shl local.get $4 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 15804 i32.add i64.load32_u - i64.const 32 - i64.shl i64.or i64.store - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 10000 i32.div_u local.tee $3 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 15804 i32.add i64.load32_u + i64.const 32 + i64.shl local.get $3 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 15804 i32.add i64.load32_u - i64.const 32 - i64.shl i64.or i64.store br $while-continue|0 @@ -7271,21 +7236,17 @@ (local $3 i32) (local $4 i32) (local $5 i64) - (local $6 i32) + (local $6 i64) (local $7 i32) - (local $8 i64) + (local $8 i32) (local $9 i64) (local $10 i64) (local $11 i64) - (local $12 f64) - (local $13 i64) - (local $14 i64) - (local $15 i64) - (local $16 i64) + (local $12 i64) local.get $0 f64.const 0 f64.lt - local.tee $6 + local.tee $7 if (result f64) i32.const 22864 i32.const 45 @@ -7308,17 +7269,6 @@ i64.extend_i32_u i64.const 52 i64.shl - local.set $2 - local.get $4 - i32.const 1 - local.get $4 - select - i32.const 1075 - i32.sub - local.tee $4 - i32.const 1 - i32.sub - local.get $2 local.get $1 i64.const 4503599627370495 i64.and @@ -7331,14 +7281,24 @@ local.tee $1 i64.clz i32.wrap_i64 - local.tee $3 - i32.sub - local.set $7 + local.set $3 local.get $1 local.get $3 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus + local.get $4 + i32.const 1 + local.get $4 + select + i32.const 1075 + i32.sub + local.tee $8 + i32.const 1 + i32.sub + local.get $3 + i32.sub + local.set $4 local.get $2 local.get $2 i64.const 4503599627370496 @@ -7350,19 +7310,20 @@ i64.shl i64.const 1 i64.sub - local.get $4 + local.get $8 local.get $3 i32.sub - local.get $7 + local.get $4 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $7 + local.get $4 global.set $~lib/util/number/_exp + i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $7 + local.tee $4 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -7372,12 +7333,9 @@ local.tee $0 i32.trunc_f64_s local.tee $3 - f64.convert_i32_s - local.set $12 - i32.const 348 - local.get $3 local.get $0 - local.get $12 + local.get $3 + f64.convert_i32_s f64.ne i32.add i32.const 3 @@ -7387,10 +7345,10 @@ local.tee $3 i32.const 3 i32.shl - local.tee $4 + local.tee $8 i32.sub global.set $~lib/util/number/_K - local.get $4 + local.get $8 i32.const 22920 i32.add i64.load @@ -7403,7 +7361,7 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $13 + local.tee $9 i64.const 4294967295 i64.and local.tee $1 @@ -7411,95 +7369,93 @@ local.get $2 i64.clz i64.shl - local.tee $8 + local.tee $10 i64.const 4294967295 i64.and - local.tee $14 + local.tee $11 i64.mul - local.set $9 - global.get $~lib/util/number/_frc_plus - local.tee $5 - i64.const 4294967295 - i64.and - local.set $2 - local.get $1 - local.get $5 + local.set $5 + local.get $9 i64.const 32 i64.shr_u - local.tee $15 + local.tee $2 + local.get $11 i64.mul local.get $1 - local.get $2 + local.get $10 + i64.const 32 + i64.shr_u + local.tee $9 i64.mul + local.get $5 i64.const 32 i64.shr_u i64.add - local.set $5 - global.get $~lib/util/number/_frc_minus local.tee $10 i64.const 4294967295 i64.and + i64.add + i64.const 2147483647 + i64.add local.set $11 - local.get $1 - local.get $8 - i64.const 32 - i64.shr_u - local.tee $16 + local.get $2 + global.get $~lib/util/number/_frc_plus + local.tee $5 + i64.const 4294967295 + i64.and + local.tee $6 i64.mul - local.get $9 - i64.const 32 - i64.shr_u - i64.add - local.set $8 local.get $1 - local.get $10 + local.get $5 i64.const 32 i64.shr_u - local.tee $10 + local.tee $5 i64.mul local.get $1 - local.get $11 + local.get $6 i64.mul i64.const 32 i64.shr_u i64.add - local.set $9 - local.get $13 + local.tee $6 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add i64.const 32 i64.shr_u - local.tee $1 - local.get $15 - i64.mul + local.get $2 local.get $5 + i64.mul + local.get $6 i64.const 32 i64.shr_u i64.add - local.get $1 + i64.add + i64.const 1 + i64.sub + local.tee $5 local.get $2 - i64.mul - local.get $5 + global.get $~lib/util/number/_frc_minus + local.tee $6 i64.const 4294967295 i64.and - i64.add - i64.const 2147483647 - i64.add + local.tee $12 + i64.mul + local.get $1 + local.get $6 i64.const 32 i64.shr_u - i64.add - i64.const 1 - i64.sub - local.tee $2 + local.tee $6 + i64.mul local.get $1 - local.get $10 + local.get $12 i64.mul - local.get $9 i64.const 32 i64.shr_u i64.add - local.get $1 - local.get $11 - i64.mul - local.get $9 + local.tee $1 i64.const 4294967295 i64.and i64.add @@ -7507,49 +7463,48 @@ i64.add i64.const 32 i64.shr_u + local.get $2 + local.get $6 + i64.mul + local.get $1 + i64.const 32 + i64.shr_u + i64.add i64.add i64.const 1 i64.add i64.sub - local.set $5 - local.get $6 + local.set $1 + local.get $7 i32.const 1 i32.shl i32.const 22864 i32.add - local.get $1 - local.get $16 + local.get $2 + local.get $9 i64.mul - local.get $8 + local.get $10 i64.const 32 i64.shr_u i64.add - local.get $1 - local.get $14 - i64.mul - local.get $8 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add + local.get $11 i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $5 + local.get $4 global.get $~lib/util/number/_exp_pow - local.get $7 i32.add i32.const -64 i32.sub - local.get $5 - local.get $6 + local.get $1 + local.get $7 call $~lib/util/number/genDigits - local.get $6 + local.get $7 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $6 + local.get $7 i32.add ) (func $std/string/getString (result i32) @@ -7935,8 +7890,8 @@ (local $1 i32) (local $2 f64) (local $3 i32) - (local $4 i32) - (local $5 f32) + (local $4 f32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 44 i32.sub @@ -8623,38 +8578,37 @@ local.get $1 i32.const 2176 i32.store offset=4 - block $__inlined_func$~lib/string/String#startsWith (result i32) - i32.const 0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - local.get $1 - select - local.set $3 - i32.const 0 - local.get $1 - local.get $3 - i32.const 2172 - i32.load + i32.const 0 + local.get $0 + 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.set $3 + local.get $1 + local.get $3 + i32.const 2172 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + i32.add + i32.lt_s + if (result i32) i32.const 1 - i32.shr_u - local.tee $1 - i32.add - i32.lt_s - br_if $__inlined_func$~lib/string/String#startsWith - drop + else local.get $0 local.get $3 i32.const 2176 local.get $1 call $~lib/util/string/compareImpl - i32.eqz end - i32.eqz if i32.const 0 i32.const 1120 @@ -8678,27 +8632,27 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 536870910 - i32.gt_u + i32.gt_s select i32.const 2204 i32.load i32.const 1 i32.shr_u - local.tee $3 + local.tee $1 i32.sub - local.tee $4 + local.tee $3 i32.const 0 i32.lt_s if (result i32) i32.const 1 else local.get $0 - local.get $4 - i32.const 2208 local.get $3 + i32.const 2208 + local.get $1 call $~lib/util/string/compareImpl end if @@ -10692,8 +10646,8 @@ i32.const 0 call $~lib/util/string/strtol f32.demote_f64 - local.tee $5 - local.get $5 + local.tee $4 + local.get $4 f32.eq if i32.const 0 @@ -22222,11 +22176,11 @@ i32.div_u local.tee $6 call $~lib/memory/memory.repeat - local.get $1 local.get $4 local.get $6 i32.mul local.tee $4 + local.get $1 i32.add local.get $2 local.get $3 @@ -22337,11 +22291,11 @@ i32.div_u local.tee $5 call $~lib/memory/memory.repeat - local.get $4 local.get $3 local.get $5 i32.mul local.tee $3 + local.get $4 i32.add local.get $2 local.get $0 diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index 2733b33ce8..7caeefe860 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -256,16 +256,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 2656 i32.load i32.gt_u @@ -277,7 +277,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 2660 @@ -293,26 +293,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -440,8 +440,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -449,11 +447,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -461,25 +460,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -688,7 +688,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -696,6 +695,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -711,7 +711,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -719,6 +718,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -773,11 +773,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1472 @@ -801,11 +801,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1472 @@ -965,17 +965,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1035,15 +1035,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1171,12 +1171,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1216,13 +1214,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1262,10 +1260,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1274,7 +1272,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1283,6 +1280,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1296,12 +1294,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1314,7 +1312,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1323,6 +1320,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1529,12 +1527,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1550,14 +1548,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1571,14 +1569,15 @@ local.get $0 i32.const 16 i32.add - local.set $6 + 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 $6 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1589,14 +1588,13 @@ call $~lib/builtins/abort unreachable end - local.tee $2 - local.get $6 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $6 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1604,19 +1602,21 @@ i32.const 4 i32.sub end - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if - local.get $3 + memory.size + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl @@ -1624,17 +1624,16 @@ i32.sub i32.add else - local.get $3 + local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1644,18 +1643,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1663,18 +1660,18 @@ unreachable end end - local.get $2 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $3 i32.eqz if i32.const 0 @@ -1685,8 +1682,8 @@ unreachable end end + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1699,13 +1696,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $6 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $6 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1718,54 +1715,54 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $6 local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $2 local.get $3 - local.get $6 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $5 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $6 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $6 + local.get $3 i32.const 4 i32.add - local.tee $3 - local.get $6 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.get $2 local.get $3 - local.get $6 i32.load i32.const -4 i32.and @@ -1775,37 +1772,37 @@ i32.and i32.store end - local.get $6 + local.get $3 local.get $1 i32.store offset=12 - local.get $6 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 local.set $1 - local.get $6 local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $6 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $6 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $6 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.load i32.const -4 i32.and @@ -1813,7 +1810,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $6 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -1921,44 +1918,44 @@ local.get $7 i32.le_u if - local.get $2 local.get $1 i32.load i32.const -2048144777 i32.mul + local.get $2 i32.add i32.const 13 i32.rotl i32.const -1640531535 i32.mul local.set $2 - local.get $4 local.get $1 i32.load offset=4 i32.const -2048144777 i32.mul + local.get $4 i32.add i32.const 13 i32.rotl i32.const -1640531535 i32.mul local.set $4 - local.get $6 local.get $1 i32.load offset=8 i32.const -2048144777 i32.mul + local.get $6 i32.add i32.const 13 i32.rotl i32.const -1640531535 i32.mul local.set $6 - local.get $5 local.get $1 i32.load offset=12 i32.const -2048144777 i32.mul + local.get $5 i32.add i32.const 13 i32.rotl @@ -1972,7 +1969,6 @@ br $while-continue|0 end end - local.get $3 local.get $2 i32.const 1 i32.rotl @@ -1988,6 +1984,7 @@ i32.const 18 i32.rotl i32.add + local.get $3 i32.add else local.get $3 @@ -2006,11 +2003,11 @@ local.get $4 i32.le_u if - local.get $2 local.get $1 i32.load i32.const -1028477379 i32.mul + local.get $2 i32.add i32.const 17 i32.rotl @@ -2033,11 +2030,11 @@ local.get $1 i32.gt_u if - local.get $2 local.get $1 i32.load8_u i32.const 374761393 i32.mul + local.get $2 i32.add i32.const 11 i32.rotl @@ -2052,23 +2049,23 @@ end end local.get $2 - local.get $2 i32.const 15 i32.shr_u + local.get $2 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 else i32.const 0 @@ -2434,29 +2431,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2478,25 +2473,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2569,25 +2564,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2656,25 +2651,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u - local.get $1 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2714,143 +2709,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2877,63 +2858,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2960,23 +2935,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -3511,22 +3484,22 @@ if global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/stringToId - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> call $~lib/map/Map<~lib/string/String,usize>#find if global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/stringToId - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> call $~lib/map/Map<~lib/string/String,usize>#find - local.tee $2 + local.tee $4 i32.eqz if i32.const 1648 @@ -3536,7 +3509,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i32.load offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3554,50 +3527,50 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 24 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store - local.get $2 + local.get $4 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $4 i32.const 3 i32.store offset=4 - local.get $2 + local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store offset=8 - local.get $2 + local.get $4 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $4 i32.const 4 i32.store offset=12 - local.get $2 + local.get $4 i32.const 0 i32.store offset=16 - local.get $2 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $4 global.set $~lib/symbol/stringToId global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3608,68 +3581,68 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 24 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store - local.get $2 + local.get $4 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $4 i32.const 3 i32.store offset=4 - local.get $2 + local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store offset=8 - local.get $2 + local.get $4 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $4 i32.const 4 i32.store offset=12 - local.get $2 + local.get $4 i32.const 0 i32.store offset=16 - local.get $2 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $4 global.set $~lib/symbol/idToString end global.get $~lib/symbol/nextId - local.tee $6 + local.tee $0 i32.const 1 i32.add global.set $~lib/symbol/nextId - local.get $6 + local.get $0 i32.eqz if unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $~lib/symbol/stringToId - local.tee $2 + local.tee $4 i32.store - local.get $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3680,26 +3653,26 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> local.tee $9 call $~lib/map/Map<~lib/string/String,usize>#find - local.tee $0 + local.tee $1 if + local.get $1 local.get $0 - local.get $6 i32.store offset=4 else - local.get $2 + local.get $4 i32.load offset=16 - local.get $2 + local.get $4 i32.load offset=12 i32.eq if - local.get $2 + local.get $4 i32.load offset=20 - local.get $2 + local.get $4 i32.load offset=12 i32.const 3 i32.mul @@ -3707,17 +3680,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $2 + local.get $4 i32.load offset=4 else - local.get $2 + local.get $4 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3727,24 +3700,24 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 1 i32.add - local.tee $0 + local.tee $1 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 3 @@ -3753,47 +3726,47 @@ i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $2 + local.get $4 i32.load offset=8 - local.tee $3 - local.get $2 + local.tee $5 + local.get $4 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $5 - local.get $1 - local.set $0 + local.set $6 + local.get $2 + local.set $1 loop $while-continue|0 - local.get $3 local.get $5 + local.get $6 i32.ne if - local.get $3 + local.get $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.load local.tee $8 i32.store offset=8 - local.get $0 + local.get $1 local.get $8 i32.store - local.get $0 - local.get $3 + local.get $1 + local.get $5 i32.load offset=4 i32.store offset=4 - local.get $0 + local.get $1 local.get $7 local.get $8 call $~lib/util/hash/HASH<~lib/string/String> - local.get $4 + local.get $3 i32.and i32.const 2 i32.shl @@ -3802,42 +3775,42 @@ i32.load i32.store offset=8 local.get $8 - 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 $3 + local.get $5 i32.const 12 i32.add - local.set $3 + local.set $5 br $while-continue|0 end end - local.get $2 + local.get $4 local.get $7 i32.store - local.get $2 + local.get $4 local.get $7 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 local.get $4 + local.get $3 i32.store offset=4 + local.get $4 local.get $2 - local.get $1 i32.store offset=8 + local.get $4 local.get $2 - local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $4 local.get $10 i32.store offset=12 - local.get $2 - local.get $2 + local.get $4 + local.get $4 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -3846,53 +3819,53 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.load offset=8 - local.tee $0 + local.tee $1 i32.store - local.get $2 - local.get $2 + local.get $4 + local.get $4 i32.load offset=16 - local.tee $4 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 12 i32.mul i32.add - local.tee $0 + local.tee $1 i32.const 1056 i32.store - local.get $2 + local.get $4 i32.const 1056 i32.const 1 call $~lib/rt/itcms/__link + local.get $1 local.get $0 - local.get $6 i32.store offset=4 - local.get $2 - local.get $2 + local.get $4 + local.get $4 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $0 - local.get $2 + local.get $1 + local.get $4 i32.load local.get $9 - local.get $2 + local.get $4 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load i32.store offset=8 - local.get $2 - local.get $0 + local.get $4 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer @@ -3900,11 +3873,11 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $~lib/symbol/idToString - local.tee $2 + local.tee $4 i32.store - local.get $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3915,9 +3888,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 + local.get $4 i32.load - local.get $6 + local.get $0 + local.tee $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -3946,7 +3920,7 @@ i32.shr_u i32.xor local.tee $8 - local.get $2 + local.get $4 i32.load offset=4 i32.and i32.const 2 @@ -3960,19 +3934,19 @@ if local.get $0 i32.load offset=8 - local.tee $1 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $2 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $1 + local.get $3 i32.const -2 i32.and local.set $0 @@ -3987,20 +3961,20 @@ local.get $0 i32.const 1056 i32.store offset=4 - local.get $2 + local.get $4 i32.const 1056 i32.const 1 call $~lib/rt/itcms/__link else - local.get $2 + local.get $4 i32.load offset=16 - local.get $2 + local.get $4 i32.load offset=12 i32.eq if - local.get $2 + local.get $4 i32.load offset=20 - local.get $2 + local.get $4 i32.load offset=12 i32.const 3 i32.mul @@ -4008,17 +3982,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $2 + local.get $4 i32.load offset=4 else - local.get $2 + local.get $4 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $4 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4032,7 +4006,7 @@ i64.const 0 i64.store local.get $0 - local.get $4 + local.get $1 i32.const 1 i32.add local.tee $0 @@ -4051,43 +4025,43 @@ i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $4 i32.load offset=8 - local.tee $3 - local.get $2 + local.tee $5 + local.get $4 i32.load offset=16 i32.const 12 i32.mul i32.add local.set $10 - local.get $1 + local.get $3 local.set $0 loop $while-continue|01 - local.get $3 + local.get $5 local.get $10 i32.ne if - local.get $3 + local.get $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $3 + local.get $5 i32.load - local.tee $5 + local.tee $6 i32.store local.get $0 - local.get $3 + local.get $5 i32.load offset=4 i32.store offset=4 local.get $0 local.get $7 - local.get $4 - local.get $5 + local.get $1 + local.get $6 i32.const -1028477379 i32.mul i32.const 374761397 @@ -4096,22 +4070,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 i32.const 16 i32.shr_u i32.xor @@ -4119,10 +4093,10 @@ i32.const 2 i32.shl i32.add - local.tee $5 + local.tee $6 i32.load i32.store offset=8 - local.get $5 + local.get $6 local.get $0 i32.store local.get $0 @@ -4130,35 +4104,35 @@ i32.add local.set $0 end - local.get $3 + local.get $5 i32.const 12 i32.add - local.set $3 + local.set $5 br $while-continue|01 end end - local.get $2 + local.get $4 local.get $7 i32.store - local.get $2 + local.get $4 local.get $7 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 local.get $4 - i32.store offset=4 - local.get $2 local.get $1 + i32.store offset=4 + local.get $4 + local.get $3 i32.store offset=8 - local.get $2 - local.get $1 + local.get $4 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $4 local.get $9 i32.store offset=12 - local.get $2 - local.get $2 + local.get $4 + local.get $4 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -4167,52 +4141,52 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.load offset=8 local.tee $0 i32.store - local.get $2 - local.get $2 + local.get $4 + local.get $4 i32.load offset=16 - local.tee $4 + local.tee $1 i32.const 1 i32.add i32.store offset=16 local.get $0 - local.get $4 + local.get $1 i32.const 12 i32.mul i32.add local.tee $0 - local.get $6 + local.get $2 i32.store local.get $0 i32.const 1056 i32.store offset=4 - local.get $2 + local.get $4 i32.const 1056 i32.const 1 call $~lib/rt/itcms/__link - local.get $2 - local.get $2 + local.get $4 + local.get $4 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $2 + local.get $4 i32.load local.get $8 - local.get $2 + local.get $4 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load i32.store offset=8 - local.get $2 + local.get $4 local.get $0 i32.store end @@ -4224,7 +4198,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $2 return end i32.const 19104 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 7202dba722..7e4935b3e0 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -816,16 +816,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 16000 i32.load i32.gt_u @@ -837,7 +837,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 16004 @@ -853,26 +853,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -1000,8 +1000,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -1009,11 +1007,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -1021,25 +1020,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -1248,7 +1248,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -1256,6 +1255,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -1271,7 +1271,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -1279,6 +1278,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -1333,11 +1333,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1504 @@ -1361,11 +1361,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1504 @@ -1538,12 +1538,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1577,17 +1575,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1647,15 +1645,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1781,13 +1779,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1827,10 +1825,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1839,7 +1837,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1848,6 +1845,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1861,12 +1859,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1879,7 +1877,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1888,6 +1885,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1895,11 +1893,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - local.get $1 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $1 + local.get $0 i32.const 1073741820 i32.gt_u if @@ -1911,14 +1917,12 @@ unreachable end local.get $0 - local.tee $2 - local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1928,9 +1932,11 @@ end local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if + memory.size + local.tee $3 local.get $0 i32.const 536870910 i32.lt_u @@ -1949,14 +1955,13 @@ local.get $0 end i32.const 4 - memory.size - local.tee $1 + local.get $1 + i32.load offset=1568 + local.get $3 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1966,18 +1971,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 - local.get $1 + local.tee $2 + local.get $2 local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1985,18 +1988,18 @@ unreachable end end - local.get $2 local.get $1 + local.get $3 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -2008,7 +2011,7 @@ end end local.get $0 - local.get $1 + local.get $2 i32.load i32.const -4 i32.and @@ -2021,12 +2024,15 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 + local.get $2 call $~lib/rt/tlsf/removeBlock local.get $1 - i32.load local.set $3 + local.get $2 + local.tee $1 + i32.load + local.set $2 local.get $0 i32.const 4 i32.add @@ -2040,7 +2046,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const -4 i32.and local.get $0 @@ -2051,7 +2057,7 @@ if local.get $1 local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.or @@ -2068,12 +2074,12 @@ i32.const 1 i32.or i32.store - local.get $2 + local.get $3 local.get $0 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -2098,6 +2104,8 @@ i32.store end local.get $1 + i32.const 4 + i32.add ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2255,9 +2263,9 @@ local.get $0 i64.extend_i32_u local.tee $4 - local.get $4 i64.const 32 i64.shl + local.get $4 i64.or local.set $4 loop $while-continue|0 @@ -2352,15 +2360,9 @@ local.get $0 i32.const 16 i32.add - 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 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -2999,12 +3001,12 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Int32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -3023,12 +3025,12 @@ i32.store ) (func $~lib/typedarray/Int32Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -3046,12 +3048,12 @@ i32.load ) (func $~lib/typedarray/Float64Array#__set (param $0 i32) (param $1 i32) (param $2 f64) - local.get $1 local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -3074,25 +3076,24 @@ (local $6 f64) (local $7 f64) (local $8 i32) - local.get $1 + local.get $3 local.get $2 local.get $1 i32.sub i32.const 1 i32.add local.tee $8 - i32.const 1 - i32.and - local.get $3 - local.get $8 local.get $3 i32.sub i32.const 1 i32.and i32.sub + local.get $8 + i32.const 1 + i32.and local.get $3 - i32.eqz select + local.get $1 i32.add local.set $8 loop $for-loop|0 @@ -3106,12 +3107,12 @@ i32.shl i32.add local.tee $3 - f64.load - local.set $5 - local.get $3 f64.load offset=8 local.tee $7 local.set $6 + local.get $3 + f64.load + local.set $5 i32.const 2 global.set $~argumentsLength local.get $5 @@ -3137,10 +3138,10 @@ i32.le_s if block $while-break|1 - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add f64.load local.set $7 @@ -3154,10 +3155,10 @@ i32.const 0 i32.le_s br_if $while-break|1 - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add local.get $7 f64.store offset=16 @@ -3169,10 +3170,10 @@ end end end - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add local.get $5 f64.store offset=16 @@ -3182,10 +3183,10 @@ i32.le_s if block $while-break|2 - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add f64.load local.set $5 @@ -3199,10 +3200,10 @@ i32.const 0 i32.le_s br_if $while-break|2 - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add local.get $5 f64.store offset=8 @@ -3214,10 +3215,10 @@ end end end - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add local.get $6 f64.store offset=8 @@ -3241,19 +3242,19 @@ local.get $1 return end - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add f64.load - local.get $0 local.get $1 i32.const 1 i32.add local.tee $4 i32.const 3 i32.shl + local.get $0 i32.add f64.load i32.const 2 @@ -3414,17 +3415,17 @@ local.get $6 i32.gt_s if - local.get $4 local.get $9 local.get $6 i32.sub i32.const 3 i32.shl + local.get $4 i32.add - local.get $0 local.get $6 i32.const 3 i32.shl + local.get $0 i32.add f64.load offset=8 f64.store @@ -3440,17 +3441,17 @@ local.get $3 i32.le_s if - local.get $4 local.get $6 i32.const 3 i32.shl + local.get $4 i32.add f64.load local.set $7 - local.get $4 local.get $2 i32.const 3 i32.shl + local.get $4 i32.add f64.load local.set $8 @@ -3464,10 +3465,10 @@ i32.const 0 i32.lt_s if - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add local.get $7 f64.store @@ -3476,10 +3477,10 @@ i32.sub local.set $6 else - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add local.get $8 f64.store @@ -3503,14 +3504,14 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 f64) (local $10 i32) - (local $11 i32) - (local $12 f64) - (local $13 i32) - (local $14 f64) + (local $11 f64) + (local $12 i32) + (local $13 f64) + (local $14 i32) (local $15 i32) - (local $16 f64) + (local $16 i64) local.get $1 i32.const 48 i32.le_s @@ -3535,17 +3536,17 @@ end local.get $0 f64.load - local.set $16 + local.set $13 local.get $0 f64.load offset=8 - local.set $14 + local.set $9 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $14 - local.get $16 - local.get $16 - local.get $14 + local.get $9 + local.get $13 + local.get $13 + local.get $9 local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) @@ -3556,15 +3557,15 @@ f64.store local.get $0 f64.load offset=16 - local.set $12 + local.set $11 i32.const 2 global.set $~argumentsLength - local.get $16 - local.get $14 + local.get $13 + local.get $9 local.get $1 select - local.tee $16 - local.get $12 + local.tee $9 + local.get $11 local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) @@ -3572,31 +3573,31 @@ i32.gt_s local.set $1 local.get $0 - local.get $12 - local.get $16 + local.get $11 + local.get $9 local.get $1 select f64.store offset=8 local.get $0 - local.get $16 - local.get $12 + local.get $9 + local.get $11 local.get $1 select f64.store offset=16 end local.get $0 f64.load - local.set $16 + local.set $11 local.get $0 f64.load offset=8 - local.set $14 + local.set $9 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $14 - local.get $16 - local.get $16 - local.get $14 + local.get $9 + local.get $11 + local.get $11 + local.get $9 local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) @@ -3606,8 +3607,8 @@ select f64.store local.get $0 - local.get $16 - local.get $14 + local.get $11 + local.get $9 local.get $1 select f64.store offset=8 @@ -3627,174 +3628,156 @@ local.get $1 i32.clz i32.sub - local.tee $5 + local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $13 - local.get $7 + call $~lib/rt/tlsf/__alloc + local.tee $12 + local.get $5 i32.add - local.set $11 + local.set $14 i32.const 0 - local.set $7 + local.set $5 loop $for-loop|1 local.get $5 - local.get $7 - i32.gt_u + local.get $6 + i32.lt_u if - local.get $13 - local.get $7 + local.get $5 i32.const 2 i32.shl + local.get $12 i32.add i32.const -1 i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|1 end end local.get $1 i32.const 3 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $10 + call $~lib/rt/tlsf/__alloc + local.set $15 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $15 + local.tee $10 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $7 i32.const 1 i32.add - local.tee $7 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $15 + local.get $10 i32.const 31 - local.get $15 + local.get $10 i32.const 31 i32.lt_s select - local.tee $1 - local.get $7 + local.tee $7 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $15 + local.get $7 + local.get $10 i32.lt_s if local.get $0 - local.get $1 + local.get $7 i32.const 1 i32.add - local.tee $5 - local.get $15 + local.tee $6 + local.get $10 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 - local.get $5 + local.tee $5 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $4 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $5 - local.get $15 - local.get $5 + local.get $6 + local.get $10 + local.get $6 i32.const 31 i32.add - local.tee $7 - local.get $7 - local.get $15 + local.tee $1 + local.get $1 + local.get $10 i32.gt_s select - local.tee $7 - local.get $4 + local.tee $5 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $5 + local.get $6 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $15 + local.get $10 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $16 i64.div_u local.get $5 - local.get $7 + local.get $6 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $16 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $4 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $6 + local.get $1 + local.get $8 i32.lt_u if - local.get $13 - local.get $6 + local.get $8 i32.const 2 i32.shl + local.get $12 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 + local.get $14 local.get $8 - local.get $11 - local.get $6 i32.const 2 i32.shl local.tee $3 @@ -3802,54 +3785,54 @@ i32.load i32.const 1 i32.add - local.get $1 - local.get $10 + local.get $7 + local.get $15 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $13 + local.get $12 i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $6 + local.get $8 i32.const 1 i32.sub - local.set $6 + local.set $8 br $for-loop|3 end end - local.get $13 - local.get $4 + local.get $12 + local.get $1 i32.const 2 i32.shl - local.tee $6 + local.tee $4 i32.add local.get $3 i32.store - local.get $6 - local.get $11 + local.get $4 + local.get $14 i32.add - local.get $1 + local.get $7 i32.store - local.get $5 + local.get $6 local.set $3 - local.get $7 - local.set $1 - local.get $4 - local.set $6 + local.get $5 + local.set $7 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $6 + local.get $4 if - local.get $13 - local.get $6 + local.get $4 i32.const 2 i32.shl + local.get $12 i32.add i32.load local.tee $1 @@ -3858,29 +3841,29 @@ if local.get $0 local.get $1 - local.get $11 - local.get $6 + local.get $4 i32.const 2 i32.shl + local.get $14 i32.add i32.load i32.const 1 i32.add - local.get $15 local.get $10 + local.get $15 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $6 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|4 end end - local.get $10 + local.get $15 call $~lib/rt/tlsf/__free - local.get $13 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) @@ -3889,21 +3872,21 @@ local.get $0 i64.reinterpret_f64 local.tee $2 - local.get $2 i64.const 63 i64.shr_s i64.const 1 i64.shr_u + local.get $2 i64.xor local.tee $2 local.get $1 i64.reinterpret_f64 local.tee $3 - local.get $3 i64.const 63 i64.shr_s i64.const 1 i64.shr_u + local.get $3 i64.xor local.tee $3 i64.gt_s @@ -3913,12 +3896,12 @@ i32.sub ) (func $~lib/typedarray/Float64Array#__get (param $0 i32) (param $1 i32) (result f64) - local.get $1 local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -3936,10 +3919,10 @@ f64.load ) (func $~lib/typedarray/Uint8ClampedArray#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 local.get $0 i32.load offset=8 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -3968,10 +3951,10 @@ i32.store8 ) (func $~lib/typedarray/Uint8ClampedArray#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=8 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -3987,10 +3970,10 @@ i32.load8_u ) (func $~lib/typedarray/Int8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 local.get $0 i32.load offset=8 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -4009,18 +3992,20 @@ (func $~lib/typedarray/Int8Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) + local.get $1 + local.set $4 local.get $0 i32.load offset=4 local.set $5 local.get $0 i32.load offset=8 - local.set $4 + local.set $1 local.get $2 i32.const 0 i32.lt_s if (result i32) + local.get $1 local.get $2 - local.get $4 i32.add local.tee $0 i32.const 0 @@ -4030,43 +4015,43 @@ select else local.get $2 - local.get $4 + local.get $1 + local.get $1 local.get $2 - local.get $4 - i32.lt_s + i32.gt_s select end - local.tee $2 + local.tee $0 local.get $3 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 $3 - local.get $4 + local.get $1 + local.get $1 local.get $3 - local.get $4 - i32.lt_s + i32.gt_s select end - local.tee $0 + local.tee $1 i32.lt_s if - local.get $2 + local.get $0 local.get $5 i32.add + local.get $4 local.get $1 local.get $0 - local.get $2 i32.sub call $~lib/memory/memory.fill end @@ -4234,29 +4219,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -4278,25 +4261,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -4369,25 +4352,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -4456,25 +4439,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -4514,143 +4497,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -4677,63 +4646,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -4760,23 +4723,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -5019,10 +4980,10 @@ end ) (func $~lib/typedarray/Int8Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=8 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -5060,10 +5021,10 @@ local.get $0 local.get $2 call $~lib/typedarray/Int8Array#__get - local.get $2 local.get $1 i32.load offset=12 - i32.ge_u + local.get $2 + i32.le_u if i32.const 1360 i32.const 1760 @@ -5072,9 +5033,9 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 i32.load offset=4 - local.get $2 i32.add i32.load8_s i32.ne @@ -5092,10 +5053,10 @@ i32.const 1 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1760 @@ -5159,109 +5120,107 @@ (func $~lib/typedarray/Int32Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) - (local $6 i32) local.get $3 local.get $0 - local.tee $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $5 + local.tee $4 local.get $3 - local.get $5 + local.get $4 i32.lt_s select local.set $3 local.get $0 i32.load offset=4 - local.tee $6 + local.tee $5 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $5 + 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 $5 + local.get $4 local.get $1 - local.get $5 + local.get $4 i32.lt_s select end - local.tee $0 + local.tee $1 i32.const 2 i32.shl i32.add - local.get $6 local.get $2 i32.const 0 i32.lt_s if (result i32) local.get $2 - local.get $5 + local.get $4 i32.add - local.tee $1 + local.tee $2 i32.const 0 - local.get $1 + local.get $2 i32.const 0 i32.gt_s select else local.get $2 - local.get $5 + local.get $4 local.get $2 - local.get $5 + local.get $4 i32.lt_s select end - local.tee $1 + local.tee $2 i32.const 2 i32.shl + local.get $5 i32.add local.get $3 i32.const 0 i32.lt_s if (result i32) local.get $3 - local.get $5 + local.get $4 i32.add - local.tee $2 + local.tee $3 i32.const 0 - local.get $2 + local.get $3 i32.const 0 i32.gt_s select else local.get $3 - local.get $5 + local.get $4 local.get $3 - local.get $5 + local.get $4 i32.lt_s select end + local.get $2 + i32.sub + local.tee $2 + local.get $4 local.get $1 i32.sub local.tee $1 - local.get $5 - local.get $0 - i32.sub - local.tee $0 - local.get $0 local.get $1 + local.get $2 i32.gt_s select i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $4 + local.get $0 ) (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 @@ -5269,10 +5228,10 @@ i32.add ) (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 local.get $0 i32.load offset=8 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -5289,12 +5248,12 @@ i32.store8 ) (func $~lib/typedarray/Int16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 local.get $0 i32.load offset=8 i32.const 1 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -5313,12 +5272,12 @@ i32.store16 ) (func $~lib/typedarray/Uint16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 local.get $0 i32.load offset=8 i32.const 1 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -5337,12 +5296,12 @@ i32.store16 ) (func $~lib/typedarray/Uint32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -5361,12 +5320,12 @@ i32.store ) (func $~lib/typedarray/Int64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - local.get $1 local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -5390,12 +5349,12 @@ i64.add ) (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - local.get $1 local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -5414,12 +5373,12 @@ i64.store ) (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 f32) - local.get $1 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -5449,7 +5408,6 @@ ) (func $~lib/typedarray/Int8Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $1 i32.const 0 local.get $0 i32.load offset=8 @@ -5458,6 +5416,7 @@ i32.const 0 i32.ge_s select + local.get $1 i32.add local.tee $1 local.get $2 @@ -5478,7 +5437,6 @@ ) (func $~lib/typedarray/Uint8Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $1 i32.const 0 local.get $0 i32.load offset=8 @@ -5487,6 +5445,7 @@ i32.const 0 i32.ge_s select + local.get $1 i32.add local.tee $1 local.get $2 @@ -5507,7 +5466,6 @@ ) (func $~lib/typedarray/Uint8ClampedArray#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $1 i32.const 0 local.get $0 i32.load offset=8 @@ -5516,6 +5474,7 @@ i32.const 0 i32.ge_s select + local.get $1 i32.add local.tee $1 local.get $2 @@ -5536,7 +5495,6 @@ ) (func $~lib/typedarray/Int16Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $1 i32.const 0 local.get $0 i32.load offset=8 @@ -5547,6 +5505,7 @@ i32.const 0 i32.ge_s select + local.get $1 i32.add local.tee $1 local.get $2 @@ -5569,7 +5528,6 @@ ) (func $~lib/typedarray/Uint16Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $1 i32.const 0 local.get $0 i32.load offset=8 @@ -5580,6 +5538,7 @@ i32.const 0 i32.ge_s select + local.get $1 i32.add local.tee $1 local.get $2 @@ -5602,7 +5561,6 @@ ) (func $~lib/typedarray/Int32Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $1 i32.const 0 local.get $0 i32.load offset=8 @@ -5613,6 +5571,7 @@ i32.const 0 i32.ge_s select + local.get $1 i32.add local.tee $1 local.get $2 @@ -5635,7 +5594,6 @@ ) (func $~lib/typedarray/Uint32Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $1 i32.const 0 local.get $0 i32.load offset=8 @@ -5646,6 +5604,7 @@ i32.const 0 i32.ge_s select + local.get $1 i32.add local.tee $1 local.get $2 @@ -5668,7 +5627,6 @@ ) (func $~lib/typedarray/Int64Array#at (param $0 i32) (param $1 i32) (result i64) (local $2 i32) - local.get $1 i32.const 0 local.get $0 i32.load offset=8 @@ -5679,6 +5637,7 @@ i32.const 0 i32.ge_s select + local.get $1 i32.add local.tee $1 local.get $2 @@ -5701,7 +5660,6 @@ ) (func $~lib/typedarray/Uint64Array#at (param $0 i32) (param $1 i32) (result i64) (local $2 i32) - local.get $1 i32.const 0 local.get $0 i32.load offset=8 @@ -5712,6 +5670,7 @@ i32.const 0 i32.ge_s select + local.get $1 i32.add local.tee $1 local.get $2 @@ -5734,7 +5693,6 @@ ) (func $~lib/typedarray/Float32Array#at (param $0 i32) (param $1 i32) (result f32) (local $2 i32) - local.get $1 i32.const 0 local.get $0 i32.load offset=8 @@ -5745,6 +5703,7 @@ i32.const 0 i32.ge_s select + local.get $1 i32.add local.tee $1 local.get $2 @@ -5767,7 +5726,6 @@ ) (func $~lib/typedarray/Float64Array#at (param $0 i32) (param $1 i32) (result f64) (local $2 i32) - local.get $1 i32.const 0 local.get $0 i32.load offset=8 @@ -5778,6 +5736,7 @@ i32.const 0 i32.ge_s select + local.get $1 i32.add local.tee $1 local.get $2 @@ -5804,10 +5763,10 @@ i32.mul ) (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=8 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -5823,12 +5782,12 @@ i32.load8_u ) (func $~lib/typedarray/Int16Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=8 i32.const 1 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -5846,12 +5805,12 @@ i32.load16_s ) (func $~lib/typedarray/Uint16Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=8 i32.const 1 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -5869,12 +5828,12 @@ i32.load16_u ) (func $~lib/typedarray/Uint32Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -5897,12 +5856,12 @@ i64.mul ) (func $~lib/typedarray/Int64Array#__get (param $0 i32) (param $1 i32) (result i64) - local.get $1 local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -5920,12 +5879,12 @@ i64.load ) (func $~lib/typedarray/Uint64Array#__get (param $0 i32) (param $1 i32) (result i64) - local.get $1 local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -5948,12 +5907,12 @@ f32.mul ) (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) - local.get $1 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1360 i32.const 1632 @@ -5984,7 +5943,6 @@ (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $1 local.get $0 i32.const 20 i32.sub @@ -5994,7 +5952,8 @@ i32.and i32.const 16 i32.sub - i32.le_u + local.get $1 + i32.ge_u if local.get $2 local.get $1 @@ -6200,6 +6159,10 @@ local.get $0 i32.reinterpret_f32 local.tee $1 + i32.const -2147483648 + i32.and + local.set $4 + local.get $1 i32.const 23 i32.shr_u i32.const 255 @@ -6231,10 +6194,6 @@ f32.mul br $__inlined_func$~lib/math/NativeMathf.mod end - local.get $1 - i32.const -2147483648 - i32.and - local.set $4 local.get $2 if (result i32) local.get $1 @@ -6256,87 +6215,88 @@ i32.shl end local.set $1 - block $folding-inner0 - loop $while-continue|0 - local.get $2 - i32.const 128 - i32.gt_s - if + loop $while-continue|0 + local.get $2 + i32.const 128 + i32.gt_s + if + local.get $1 + i32.const 8388608 + i32.ge_u + if (result i32) + local.get $0 + f32.const 0 + f32.mul + local.get $1 + i32.const 8388608 + i32.eq + br_if $__inlined_func$~lib/math/NativeMathf.mod + drop local.get $1 i32.const 8388608 - i32.ge_u - if (result i32) - local.get $1 - i32.const 8388608 - i32.eq - br_if $folding-inner0 - local.get $1 - i32.const 8388608 - i32.sub - else - local.get $1 - end - i32.const 1 - i32.shl - local.set $1 - local.get $2 - i32.const 1 i32.sub - local.set $2 - br $while-continue|0 + else + local.get $1 end + i32.const 1 + i32.shl + local.set $1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 end - local.get $2 + end + local.get $1 + i32.const 8388608 + i32.ge_u + if + local.get $0 + f32.const 0 + f32.mul local.get $1 i32.const 8388608 - i32.ge_u - if - local.get $1 - i32.const 8388608 - i32.eq - br_if $folding-inner0 - local.get $1 - i32.const 8388608 - i32.sub - local.set $1 - end + i32.eq + br_if $__inlined_func$~lib/math/NativeMathf.mod + drop local.get $1 - i32.const 8 - i32.shl - i32.clz - local.tee $3 + i32.const 8388608 i32.sub - local.set $2 - local.get $1 - local.get $3 - i32.shl local.set $1 + end + local.get $1 + local.get $1 + i32.const 8 + i32.shl + i32.clz + local.tee $3 + i32.shl + local.set $1 + local.get $2 + local.get $3 + i32.sub + local.tee $2 + i32.const 0 + i32.gt_s + if (result i32) + local.get $1 + i32.const 8388608 + i32.sub local.get $2 - i32.const 0 - i32.gt_s - if (result i32) - local.get $1 - i32.const 8388608 - i32.sub - local.get $2 - i32.const 23 - i32.shl - i32.or - else - local.get $1 - i32.const 1 - local.get $2 - i32.sub - i32.shr_u - end - local.get $4 + i32.const 23 + i32.shl i32.or - f32.reinterpret_i32 - br $__inlined_func$~lib/math/NativeMathf.mod + else + local.get $1 + i32.const 1 + local.get $2 + i32.sub + i32.shr_u end - local.get $0 - f32.const 0 - f32.mul + local.get $4 + i32.or + f32.reinterpret_i32 end f32.const 0 f32.eq @@ -6350,6 +6310,10 @@ local.get $0 i64.reinterpret_f64 local.tee $3 + i64.const 63 + i64.shr_u + local.set $6 + local.get $3 i64.const 52 i64.shr_u i64.const 2047 @@ -6381,10 +6345,6 @@ f64.mul br $__inlined_func$~lib/math/NativeMath.mod end - local.get $3 - i64.const 63 - i64.shr_u - local.set $6 local.get $4 i64.eqz if (result i64) @@ -6407,89 +6367,90 @@ i64.or end local.set $3 - block $folding-inner0 - loop $while-continue|0 - local.get $4 - i64.const 1024 - i64.gt_s - if + loop $while-continue|0 + local.get $4 + i64.const 1024 + i64.gt_s + if + local.get $3 + i64.const 4503599627370496 + i64.ge_u + if (result i64) + local.get $0 + f64.const 0 + f64.mul + local.get $3 + i64.const 4503599627370496 + i64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod + drop local.get $3 i64.const 4503599627370496 - i64.ge_u - if (result i64) - local.get $3 - i64.const 4503599627370496 - i64.eq - br_if $folding-inner0 - local.get $3 - i64.const 4503599627370496 - i64.sub - else - local.get $3 - end - i64.const 1 - i64.shl - local.set $3 - local.get $4 - i64.const 1 i64.sub - local.set $4 - br $while-continue|0 + else + local.get $3 end + i64.const 1 + i64.shl + local.set $3 + local.get $4 + i64.const 1 + i64.sub + local.set $4 + br $while-continue|0 end - local.get $4 + end + local.get $3 + i64.const 4503599627370496 + i64.ge_u + if + local.get $0 + f64.const 0 + f64.mul local.get $3 i64.const 4503599627370496 - i64.ge_u - if - local.get $3 - i64.const 4503599627370496 - i64.eq - br_if $folding-inner0 - local.get $3 - i64.const 4503599627370496 - i64.sub - local.set $3 - end + i64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod + drop local.get $3 - i64.const 11 - i64.shl - i64.clz - local.tee $5 + i64.const 4503599627370496 i64.sub - local.set $4 - local.get $3 - local.get $5 - i64.shl local.set $3 + end + local.get $3 + local.get $3 + i64.const 11 + i64.shl + i64.clz + local.tee $5 + i64.shl + local.set $3 + local.get $4 + local.get $5 + i64.sub + local.tee $4 + i64.const 0 + i64.gt_s + if (result i64) + local.get $3 + i64.const 4503599627370496 + i64.sub local.get $4 - i64.const 0 - i64.gt_s - if (result i64) - local.get $3 - i64.const 4503599627370496 - i64.sub - local.get $4 - i64.const 52 - i64.shl - i64.or - else - local.get $3 - i64.const 1 - local.get $4 - i64.sub - i64.shr_u - end - local.get $6 - i64.const 63 + i64.const 52 i64.shl i64.or - f64.reinterpret_i64 - br $__inlined_func$~lib/math/NativeMath.mod + else + local.get $3 + i64.const 1 + local.get $4 + i64.sub + i64.shr_u end - local.get $0 - f64.const 0 - f64.mul + local.get $6 + i64.const 63 + i64.shl + i64.or + f64.reinterpret_i64 end f64.const 0 f64.eq @@ -6516,38 +6477,38 @@ 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/Int8Array#constructor local.tee $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get 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 @@ -8020,39 +7981,39 @@ 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/Uint8Array#constructor local.tee $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get 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 @@ -9524,39 +9485,39 @@ 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/Uint8ClampedArray#constructor local.tee $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get 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 @@ -11028,38 +10989,38 @@ 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 $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get 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 @@ -12637,39 +12598,39 @@ 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 $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get 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 @@ -14247,37 +14208,37 @@ 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/Int32Array#constructor local.tee $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -15856,37 +15817,37 @@ 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/Uint32Array#constructor local.tee $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -17500,9 +17461,9 @@ end 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.0 local.get $2 i32.load offset=8 @@ -17518,30 +17479,30 @@ i32.load offset=4 local.set $3 loop $while-continue|0 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl 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 @@ -17551,9 +17512,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/Int64Array,i64>|inlined.01 local.get $2 i32.load offset=8 @@ -17569,13 +17530,13 @@ i32.load offset=4 local.set $3 loop $while-continue|02 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -17583,17 +17544,17 @@ 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 + 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 @@ -17605,9 +17566,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/Int64Array,i64>|inlined.04 local.get $2 i32.load offset=8 @@ -17623,13 +17584,13 @@ i32.load offset=4 local.set $3 loop $while-continue|05 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -17637,17 +17598,17 @@ i64.const -1 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|05 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -17659,9 +17620,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/Int64Array,i64>|inlined.07 local.get $2 i32.load offset=8 @@ -17677,13 +17638,13 @@ i32.load offset=4 local.set $3 loop $while-continue|08 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -17691,17 +17652,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|08 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -17713,9 +17674,9 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 local.get $2 i32.load offset=8 @@ -17732,13 +17693,13 @@ i32.load offset=4 local.set $3 loop $while-continue|011 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -17746,17 +17707,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -17768,9 +17729,9 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 local.get $2 i32.load offset=8 @@ -17787,13 +17748,13 @@ i32.load offset=4 local.set $3 loop $while-continue|014 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -17801,17 +17762,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|014 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -17823,9 +17784,9 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 local.get $2 i32.load offset=8 @@ -17842,13 +17803,13 @@ i32.load offset=4 local.set $3 loop $while-continue|017 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -17856,17 +17817,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|017 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -17878,9 +17839,9 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 local.get $2 i32.load offset=8 @@ -17897,13 +17858,13 @@ i32.load offset=4 local.set $3 loop $while-continue|020 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -17911,17 +17872,17 @@ i64.const 1 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|020 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -17933,7 +17894,7 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 local.get $2 i32.load offset=8 @@ -17949,23 +17910,23 @@ local.get $3 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 $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $1 + local.set $0 loop $while-continue|023 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -17973,17 +17934,17 @@ i64.const 1 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + 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 @@ -17997,55 +17958,54 @@ i32.const 1 global.set $~argumentsLength local.get $2 - local.tee $1 + local.tee $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 i32.const -1 - local.set $0 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $2 + local.get $1 local.get $3 i32.add local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $3 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|00 local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $2 - local.tee $0 i32.const 3 i32.shl i32.add i64.load i64.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 + local.get $2 i32.const 1 i32.sub local.set $2 @@ -18053,9 +18013,9 @@ end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 if i32.const 0 i32.const 1568 @@ -18066,48 +18026,47 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 i32.const -1 - local.set $0 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $2 + local.get $1 local.get $3 i32.add local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $3 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|06 local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $2 - local.tee $0 i32.const 3 i32.shl i32.add @@ -18115,7 +18074,7 @@ i64.const 11 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $0 + local.get $2 i32.const 1 i32.sub local.set $2 @@ -18123,9 +18082,9 @@ end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.const -1 i32.ne if @@ -18138,48 +18097,47 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 i32.const -1 - local.set $0 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 - local.get $2 + local.get $1 local.get $3 i32.add local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $3 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|012 local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $2 - local.tee $0 i32.const 3 i32.shl i32.add @@ -18187,7 +18145,7 @@ i64.const -1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 - local.get $0 + local.get $2 i32.const 1 i32.sub local.set $2 @@ -18195,9 +18153,9 @@ end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.const -1 i32.ne if @@ -18210,48 +18168,47 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 i32.const -1 - local.set $0 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $2 + local.get $1 local.get $3 i32.add local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 - local.get $3 + local.get $1 + local.get $1 + local.get $3 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|018 local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $2 - local.tee $0 i32.const 3 i32.shl i32.add @@ -18259,7 +18216,7 @@ i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $0 + local.get $2 i32.const 1 i32.sub local.set $2 @@ -18267,9 +18224,9 @@ end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.const 3 i32.ne if @@ -18281,9 +18238,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -18298,17 +18255,17 @@ i32.const 4 i32.le_s select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -18316,17 +18273,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|024 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -18338,9 +18295,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -18355,17 +18312,17 @@ i32.const 3 i32.le_s select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -18373,17 +18330,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -18395,9 +18352,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -18412,17 +18369,17 @@ i32.const 2 i32.le_s select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -18430,17 +18387,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18452,9 +18409,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -18469,17 +18426,17 @@ i32.const 100 i32.le_s select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -18487,17 +18444,17 @@ i64.const 1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -18509,9 +18466,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -18521,17 +18478,17 @@ local.get $2 i32.const 10 i32.sub - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|036 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -18539,17 +18496,17 @@ i64.const 1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + 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 @@ -18561,9 +18518,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -18573,17 +18530,17 @@ local.get $2 i32.const 11 i32.sub - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|039 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -18591,17 +18548,17 @@ i64.const 1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + 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 @@ -18613,15 +18570,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 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 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 local.get $4 i32.load offset=8 @@ -18637,13 +18594,13 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -18651,17 +18608,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|042 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -18673,9 +18630,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/Int64Array,i64>|inlined.044 local.get $4 i32.load offset=8 @@ -18691,13 +18648,13 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -18705,17 +18662,17 @@ i64.const 4 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|045 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -18725,9 +18682,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/Int64Array,i64>|inlined.047 local.get $4 i32.load offset=8 @@ -18743,13 +18700,13 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -18757,17 +18714,17 @@ i64.const 5 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|048 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -18779,9 +18736,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/Int64Array,i64>|inlined.050 local.get $4 i32.load offset=8 @@ -18797,13 +18754,13 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -18811,17 +18768,17 @@ i64.const 9 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|051 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -18833,9 +18790,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/Int64Array,i64>|inlined.053 local.get $4 i32.load offset=8 @@ -18851,13 +18808,13 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -18865,17 +18822,17 @@ i64.const 10 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|054 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -18887,9 +18844,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/Int64Array,i64>|inlined.056 local.get $4 i32.load offset=8 @@ -18905,13 +18862,13 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -18919,17 +18876,17 @@ i64.const 11 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|057 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -18941,9 +18898,9 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 local.get $4 i32.load offset=8 @@ -18960,13 +18917,13 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -18974,17 +18931,17 @@ i64.const 5 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|060 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -18996,9 +18953,9 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 local.get $4 i32.load offset=8 @@ -19015,13 +18972,13 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -19029,17 +18986,17 @@ i64.const 5 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + 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 @@ -19113,9 +19070,9 @@ end 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.0 local.get $2 i32.load offset=8 @@ -19131,30 +19088,30 @@ i32.load offset=4 local.set $3 loop $while-continue|0 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl 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 @@ -19164,9 +19121,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/Uint64Array,u64>|inlined.01 local.get $2 i32.load offset=8 @@ -19182,13 +19139,13 @@ i32.load offset=4 local.set $3 loop $while-continue|02 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -19196,17 +19153,17 @@ 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 + 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 @@ -19218,9 +19175,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/Uint64Array,u64>|inlined.04 local.get $2 i32.load offset=8 @@ -19236,13 +19193,13 @@ i32.load offset=4 local.set $3 loop $while-continue|05 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -19250,17 +19207,17 @@ i64.const -1 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|05 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -19272,9 +19229,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/Uint64Array,u64>|inlined.07 local.get $2 i32.load offset=8 @@ -19290,13 +19247,13 @@ i32.load offset=4 local.set $3 loop $while-continue|08 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -19304,17 +19261,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|08 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -19326,9 +19283,9 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 local.get $2 i32.load offset=8 @@ -19345,13 +19302,13 @@ i32.load offset=4 local.set $3 loop $while-continue|011 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -19359,17 +19316,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -19381,9 +19338,9 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 local.get $2 i32.load offset=8 @@ -19400,13 +19357,13 @@ i32.load offset=4 local.set $3 loop $while-continue|014 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -19414,17 +19371,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|014 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -19436,9 +19393,9 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 local.get $2 i32.load offset=8 @@ -19455,13 +19412,13 @@ i32.load offset=4 local.set $3 loop $while-continue|017 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -19469,17 +19426,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|017 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -19491,9 +19448,9 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 local.get $2 i32.load offset=8 @@ -19510,13 +19467,13 @@ i32.load offset=4 local.set $3 loop $while-continue|020 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -19524,17 +19481,17 @@ i64.const 1 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|020 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -19546,7 +19503,7 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 local.get $2 i32.load offset=8 @@ -19562,23 +19519,23 @@ local.get $3 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 $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $1 + local.set $0 loop $while-continue|023 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -19586,17 +19543,17 @@ i64.const 1 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + 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 @@ -19610,55 +19567,54 @@ i32.const 1 global.set $~argumentsLength local.get $2 - local.tee $1 + local.tee $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 i32.const -1 - local.set $0 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $2 + local.get $1 local.get $3 i32.add local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $3 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|00 local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $2 - local.tee $0 i32.const 3 i32.shl i32.add i64.load i64.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $0 + local.get $2 i32.const 1 i32.sub local.set $2 @@ -19666,9 +19622,9 @@ end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 if i32.const 0 i32.const 1568 @@ -19679,48 +19635,47 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 i32.const -1 - local.set $0 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $2 + local.get $1 local.get $3 i32.add local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $3 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|06 local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $2 - local.tee $0 i32.const 3 i32.shl i32.add @@ -19728,7 +19683,7 @@ i64.const 11 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $0 + local.get $2 i32.const 1 i32.sub local.set $2 @@ -19736,9 +19691,9 @@ end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.const -1 i32.ne if @@ -19751,48 +19706,47 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 i32.const -1 - local.set $0 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 - local.get $2 + local.get $1 local.get $3 i32.add local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $3 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|012 local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $2 - local.tee $0 i32.const 3 i32.shl i32.add @@ -19800,7 +19754,7 @@ i64.const -1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 - local.get $0 + local.get $2 i32.const 1 i32.sub local.set $2 @@ -19808,9 +19762,9 @@ end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.const -1 i32.ne if @@ -19823,48 +19777,47 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 i32.const -1 - local.set $0 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $2 + local.get $1 local.get $3 i32.add local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $3 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|018 local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $2 - local.tee $0 i32.const 3 i32.shl i32.add @@ -19872,7 +19825,7 @@ i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $0 + local.get $2 i32.const 1 i32.sub local.set $2 @@ -19880,9 +19833,9 @@ end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.const 3 i32.ne if @@ -19894,9 +19847,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -19911,17 +19864,17 @@ i32.const 4 i32.le_s select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -19929,17 +19882,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|024 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -19951,9 +19904,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -19968,17 +19921,17 @@ i32.const 3 i32.le_s select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -19986,17 +19939,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -20008,9 +19961,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -20025,17 +19978,17 @@ i32.const 2 i32.le_s select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -20043,17 +19996,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20065,9 +20018,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -20082,17 +20035,17 @@ i32.const 100 i32.le_s select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -20100,17 +20053,17 @@ i64.const 1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -20122,9 +20075,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -20134,17 +20087,17 @@ local.get $2 i32.const 10 i32.sub - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|036 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -20152,17 +20105,17 @@ i64.const 1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + 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 @@ -20174,9 +20127,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -20186,17 +20139,17 @@ local.get $2 i32.const 11 i32.sub - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|039 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -20204,17 +20157,17 @@ i64.const 1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + 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 @@ -20226,15 +20179,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 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 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 local.get $4 i32.load offset=8 @@ -20250,13 +20203,13 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -20264,17 +20217,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|042 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -20286,9 +20239,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/Uint64Array,u64>|inlined.044 local.get $4 i32.load offset=8 @@ -20304,13 +20257,13 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -20318,17 +20271,17 @@ i64.const 4 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|045 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -20338,9 +20291,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/Uint64Array,u64>|inlined.047 local.get $4 i32.load offset=8 @@ -20356,13 +20309,13 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -20370,17 +20323,17 @@ i64.const 5 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|048 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -20392,9 +20345,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/Uint64Array,u64>|inlined.050 local.get $4 i32.load offset=8 @@ -20410,13 +20363,13 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -20424,17 +20377,17 @@ i64.const 9 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|051 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -20446,9 +20399,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/Uint64Array,u64>|inlined.053 local.get $4 i32.load offset=8 @@ -20464,13 +20417,13 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -20478,17 +20431,17 @@ i64.const 10 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|054 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -20500,9 +20453,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/Uint64Array,u64>|inlined.056 local.get $4 i32.load offset=8 @@ -20518,13 +20471,13 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -20532,17 +20485,17 @@ i64.const 11 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|057 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -20554,9 +20507,9 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 local.get $4 i32.load offset=8 @@ -20573,13 +20526,13 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -20587,17 +20540,17 @@ i64.const 5 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|060 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -20609,9 +20562,9 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 local.get $4 i32.load offset=8 @@ -20628,13 +20581,13 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -20642,17 +20595,17 @@ i64.const 5 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + 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 @@ -20726,9 +20679,9 @@ end 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.0 local.get $2 i32.load offset=8 @@ -20744,13 +20697,13 @@ i32.load offset=4 local.set $3 loop $while-continue|0 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -20758,17 +20711,17 @@ 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 @@ -20778,9 +20731,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/Float32Array,f32>|inlined.01 local.get $2 i32.load offset=8 @@ -20796,13 +20749,13 @@ i32.load offset=4 local.set $3 loop $while-continue|02 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -20810,17 +20763,17 @@ 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 + 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 @@ -20832,9 +20785,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/Float32Array,f32>|inlined.04 local.get $2 i32.load offset=8 @@ -20850,13 +20803,13 @@ i32.load offset=4 local.set $3 loop $while-continue|05 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -20864,17 +20817,17 @@ f32.const -1 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|05 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -20886,9 +20839,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/Float32Array,f32>|inlined.07 local.get $2 i32.load offset=8 @@ -20904,13 +20857,13 @@ i32.load offset=4 local.set $3 loop $while-continue|08 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -20918,17 +20871,17 @@ f32.const 3 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|08 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -20940,9 +20893,9 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 local.get $2 i32.load offset=8 @@ -20959,13 +20912,13 @@ i32.load offset=4 local.set $3 loop $while-continue|011 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -20973,17 +20926,17 @@ f32.const 3 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -20995,9 +20948,9 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 local.get $2 i32.load offset=8 @@ -21014,13 +20967,13 @@ i32.load offset=4 local.set $3 loop $while-continue|014 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -21028,17 +20981,17 @@ f32.const 3 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|014 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -21050,9 +21003,9 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 local.get $2 i32.load offset=8 @@ -21069,13 +21022,13 @@ i32.load offset=4 local.set $3 loop $while-continue|017 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -21083,17 +21036,17 @@ f32.const 3 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|017 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -21105,9 +21058,9 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 local.get $2 i32.load offset=8 @@ -21124,13 +21077,13 @@ i32.load offset=4 local.set $3 loop $while-continue|020 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -21138,17 +21091,17 @@ f32.const 1 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|020 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -21160,7 +21113,7 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 local.get $2 i32.load offset=8 @@ -21176,23 +21129,23 @@ local.get $3 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 $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $1 + local.set $0 loop $while-continue|023 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -21200,17 +21153,17 @@ f32.const 1 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + 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 @@ -21224,48 +21177,47 @@ i32.const 1 global.set $~argumentsLength local.get $2 - local.tee $1 + local.tee $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 i32.const -1 - local.set $0 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 + local.get $1 local.get $3 i32.add local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $3 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|00 local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $2 - local.tee $0 i32.const 2 i32.shl i32.add @@ -21273,7 +21225,7 @@ f32.const 0 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + local.get $2 i32.const 1 i32.sub local.set $2 @@ -21281,9 +21233,9 @@ end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 if i32.const 0 i32.const 1568 @@ -21294,48 +21246,47 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 i32.const -1 - local.set $0 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $2 + local.get $1 local.get $3 i32.add local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $3 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|06 local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $2 - local.tee $0 i32.const 2 i32.shl i32.add @@ -21343,7 +21294,7 @@ f32.const 11 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $0 + local.get $2 i32.const 1 i32.sub local.set $2 @@ -21351,9 +21302,9 @@ end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.const -1 i32.ne if @@ -21366,48 +21317,47 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 i32.const -1 - local.set $0 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 - local.get $2 + local.get $1 local.get $3 i32.add local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $3 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|012 local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $2 - local.tee $0 i32.const 2 i32.shl i32.add @@ -21415,7 +21365,7 @@ f32.const -1 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 - local.get $0 + local.get $2 i32.const 1 i32.sub local.set $2 @@ -21423,9 +21373,9 @@ end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.const -1 i32.ne if @@ -21438,48 +21388,47 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 i32.const -1 - local.set $0 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $2 + local.get $1 local.get $3 i32.add local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $3 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|018 local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $2 - local.tee $0 i32.const 2 i32.shl i32.add @@ -21487,7 +21436,7 @@ f32.const 3 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $0 + local.get $2 i32.const 1 i32.sub local.set $2 @@ -21495,9 +21444,9 @@ end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.const 3 i32.ne if @@ -21509,9 +21458,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -21526,17 +21475,17 @@ i32.const 4 i32.le_s select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -21544,17 +21493,17 @@ f32.const 3 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|024 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -21566,9 +21515,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -21583,17 +21532,17 @@ i32.const 3 i32.le_s select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -21601,17 +21550,17 @@ f32.const 3 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -21623,9 +21572,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -21640,17 +21589,17 @@ i32.const 2 i32.le_s select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -21658,17 +21607,17 @@ f32.const 3 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21680,9 +21629,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -21697,17 +21646,17 @@ i32.const 100 i32.le_s select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -21715,17 +21664,17 @@ f32.const 1 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -21737,9 +21686,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -21749,17 +21698,17 @@ local.get $2 i32.const 10 i32.sub - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|036 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -21767,17 +21716,17 @@ f32.const 1 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + 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 @@ -21789,9 +21738,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -21801,17 +21750,17 @@ local.get $2 i32.const 11 i32.sub - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|039 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -21819,17 +21768,17 @@ f32.const 1 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + 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 @@ -21841,15 +21790,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 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 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 local.get $4 i32.load offset=8 @@ -21865,13 +21814,13 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -21879,17 +21828,17 @@ f32.const 3 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|042 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -21901,9 +21850,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/Float32Array,f32>|inlined.044 local.get $4 i32.load offset=8 @@ -21919,13 +21868,13 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -21933,17 +21882,17 @@ f32.const 4 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|045 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -21953,9 +21902,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/Float32Array,f32>|inlined.047 local.get $4 i32.load offset=8 @@ -21971,13 +21920,13 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -21985,17 +21934,17 @@ f32.const 5 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|048 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -22007,9 +21956,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/Float32Array,f32>|inlined.050 local.get $4 i32.load offset=8 @@ -22025,13 +21974,13 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -22039,17 +21988,17 @@ f32.const 9 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|051 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22061,9 +22010,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/Float32Array,f32>|inlined.053 local.get $4 i32.load offset=8 @@ -22079,13 +22028,13 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -22093,17 +22042,17 @@ f32.const 10 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|054 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22115,9 +22064,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/Float32Array,f32>|inlined.056 local.get $4 i32.load offset=8 @@ -22133,13 +22082,13 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -22147,17 +22096,17 @@ f32.const 11 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|057 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22169,9 +22118,9 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 local.get $4 i32.load offset=8 @@ -22188,13 +22137,13 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -22202,17 +22151,17 @@ f32.const 5 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|060 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -22224,9 +22173,9 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 local.get $4 i32.load offset=8 @@ -22243,13 +22192,13 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -22257,17 +22206,17 @@ f32.const 5 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + 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 @@ -22341,9 +22290,9 @@ end 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.0 local.get $2 i32.load offset=8 @@ -22359,13 +22308,13 @@ i32.load offset=4 local.set $3 loop $while-continue|0 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -22373,17 +22322,17 @@ 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 @@ -22393,9 +22342,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/Float64Array,f64>|inlined.01 local.get $2 i32.load offset=8 @@ -22411,13 +22360,13 @@ i32.load offset=4 local.set $3 loop $while-continue|02 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -22425,17 +22374,17 @@ 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 + 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 @@ -22447,9 +22396,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/Float64Array,f64>|inlined.04 local.get $2 i32.load offset=8 @@ -22465,13 +22414,13 @@ i32.load offset=4 local.set $3 loop $while-continue|05 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -22479,17 +22428,17 @@ f64.const -1 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|05 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22501,9 +22450,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/Float64Array,f64>|inlined.07 local.get $2 i32.load offset=8 @@ -22519,13 +22468,13 @@ i32.load offset=4 local.set $3 loop $while-continue|08 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -22533,17 +22482,17 @@ f64.const 3 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|08 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -22555,9 +22504,9 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 local.get $2 i32.load offset=8 @@ -22574,13 +22523,13 @@ i32.load offset=4 local.set $3 loop $while-continue|011 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -22588,17 +22537,17 @@ f64.const 3 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -22610,9 +22559,9 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 local.get $2 i32.load offset=8 @@ -22629,13 +22578,13 @@ i32.load offset=4 local.set $3 loop $while-continue|014 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -22643,17 +22592,17 @@ f64.const 3 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|014 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -22665,9 +22614,9 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 local.get $2 i32.load offset=8 @@ -22684,13 +22633,13 @@ i32.load offset=4 local.set $3 loop $while-continue|017 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -22698,17 +22647,17 @@ f64.const 3 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|017 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22720,9 +22669,9 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 local.get $2 i32.load offset=8 @@ -22739,13 +22688,13 @@ i32.load offset=4 local.set $3 loop $while-continue|020 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $3 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -22753,17 +22702,17 @@ f64.const 1 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|020 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22775,7 +22724,7 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 local.get $2 i32.load offset=8 @@ -22791,23 +22740,23 @@ local.get $3 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 $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $1 + local.set $0 loop $while-continue|023 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -22815,17 +22764,17 @@ f64.const 1 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + 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 @@ -22839,48 +22788,47 @@ i32.const 1 global.set $~argumentsLength local.get $2 - local.tee $1 + local.tee $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 i32.const -1 - local.set $0 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $2 + local.get $1 local.get $3 i32.add local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $3 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|00 local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $2 - local.tee $0 i32.const 3 i32.shl i32.add @@ -22888,7 +22836,7 @@ f64.const 0 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + local.get $2 i32.const 1 i32.sub local.set $2 @@ -22896,9 +22844,9 @@ end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 if i32.const 0 i32.const 1568 @@ -22909,48 +22857,47 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 i32.const -1 - local.set $0 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $2 + local.get $1 local.get $3 i32.add local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $3 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|06 local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $2 - local.tee $0 i32.const 3 i32.shl i32.add @@ -22958,7 +22905,7 @@ f64.const 11 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $0 + local.get $2 i32.const 1 i32.sub local.set $2 @@ -22966,9 +22913,9 @@ end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.const -1 i32.ne if @@ -22981,48 +22928,47 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 i32.const -1 - local.set $0 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 - local.get $2 + local.get $1 local.get $3 i32.add local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $3 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|012 local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $2 - local.tee $0 i32.const 3 i32.shl i32.add @@ -23030,7 +22976,7 @@ f64.const -1 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 - local.get $0 + local.get $2 i32.const 1 i32.sub local.set $2 @@ -23038,9 +22984,9 @@ end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.const -1 i32.ne if @@ -23053,48 +22999,47 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 i32.const -1 - local.set $0 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $2 + local.get $1 local.get $3 i32.add local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 local.get $3 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|018 local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 local.get $2 - local.tee $0 i32.const 3 i32.shl i32.add @@ -23102,7 +23047,7 @@ f64.const 3 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $0 + local.get $2 i32.const 1 i32.sub local.set $2 @@ -23110,9 +23055,9 @@ end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.const 3 i32.ne if @@ -23124,9 +23069,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -23141,17 +23086,17 @@ i32.const 4 i32.le_s select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -23159,17 +23104,17 @@ f64.const 3 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|024 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -23181,9 +23126,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -23198,17 +23143,17 @@ i32.const 3 i32.le_s select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -23216,17 +23161,17 @@ f64.const 3 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -23238,9 +23183,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -23255,17 +23200,17 @@ i32.const 2 i32.le_s select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -23273,17 +23218,17 @@ f64.const 3 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -23295,9 +23240,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -23312,17 +23257,17 @@ i32.const 100 i32.le_s select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -23330,17 +23275,17 @@ f64.const 1 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -23352,9 +23297,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -23364,17 +23309,17 @@ local.get $2 i32.const 10 i32.sub - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|036 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -23382,17 +23327,17 @@ f64.const 1 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + 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 @@ -23404,9 +23349,9 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -23416,17 +23361,17 @@ local.get $2 i32.const 11 i32.sub - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|039 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -23434,17 +23379,17 @@ f64.const 1 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + 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 @@ -23456,16 +23401,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 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 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 local.get $4 i32.load offset=8 @@ -23481,13 +23426,13 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -23495,17 +23440,17 @@ f64.const 3 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|042 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -23517,9 +23462,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/Float64Array,f64>|inlined.044 local.get $4 i32.load offset=8 @@ -23535,13 +23480,13 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -23549,17 +23494,17 @@ f64.const 4 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|045 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -23569,9 +23514,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/Float64Array,f64>|inlined.047 local.get $4 i32.load offset=8 @@ -23587,13 +23532,13 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -23601,17 +23546,17 @@ f64.const 5 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|048 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -23623,9 +23568,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/Float64Array,f64>|inlined.050 local.get $4 i32.load offset=8 @@ -23641,13 +23586,13 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -23655,17 +23600,17 @@ f64.const 9 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|051 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -23677,9 +23622,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/Float64Array,f64>|inlined.053 local.get $4 i32.load offset=8 @@ -23695,13 +23640,13 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -23709,17 +23654,17 @@ f64.const 10 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|054 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -23731,9 +23676,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/Float64Array,f64>|inlined.056 local.get $4 i32.load offset=8 @@ -23749,13 +23694,13 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -23763,17 +23708,17 @@ f64.const 11 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|057 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -23785,9 +23730,9 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 local.get $4 i32.load offset=8 @@ -23804,13 +23749,13 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -23818,17 +23763,17 @@ f64.const 5 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|060 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -23840,9 +23785,9 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 local.get $4 i32.load offset=8 @@ -23859,13 +23804,13 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -23873,17 +23818,17 @@ f64.const 5 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + 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 @@ -23914,13 +23859,13 @@ i32.const 10000 i32.div_u local.set $1 - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 100 @@ -23949,13 +23894,13 @@ i32.const 100 i32.ge_u if - local.get $0 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 @@ -23975,12 +23920,12 @@ i32.const 10 i32.ge_u if - local.get $0 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 2 @@ -23990,12 +23935,12 @@ i32.load i32.store else - local.get $0 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 48 @@ -24111,8 +24056,6 @@ local.set $3 local.get $0 i32.load offset=8 - local.set $1 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24133,7 +24076,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + local.get $0 i32.const 1 i32.sub local.tee $2 @@ -24175,15 +24118,15 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store loop $for-loop|0 local.get $2 local.get $5 i32.gt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -24192,13 +24135,13 @@ i32.add i32.load8_s call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -24207,10 +24150,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 + local.get $1 local.get $4 i32.add - local.set $0 + local.set $1 end local.get $5 i32.const 1 @@ -24220,8 +24163,8 @@ end end local.get $6 - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -24230,13 +24173,13 @@ i32.add i32.load8_s call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -24245,8 +24188,6 @@ 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 @@ -24459,8 +24400,6 @@ local.set $3 local.get $0 i32.load offset=8 - local.set $1 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24481,7 +24420,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + local.get $0 i32.const 1 i32.sub local.tee $2 @@ -24523,15 +24462,15 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store loop $for-loop|0 local.get $2 local.get $5 i32.gt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -24540,13 +24479,13 @@ i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -24555,10 +24494,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 + local.get $1 local.get $4 i32.add - local.set $0 + local.set $1 end local.get $5 i32.const 1 @@ -24568,8 +24507,8 @@ end end local.get $6 - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -24578,13 +24517,13 @@ i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -24593,8 +24532,6 @@ 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 @@ -24714,8 +24651,6 @@ i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24736,7 +24671,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + local.get $0 i32.const 1 i32.sub local.tee $2 @@ -24778,15 +24713,15 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store loop $for-loop|0 local.get $2 local.get $5 i32.gt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -24797,13 +24732,13 @@ i32.add i32.load16_s call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -24812,10 +24747,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 + local.get $1 local.get $4 i32.add - local.set $0 + local.set $1 end local.get $5 i32.const 1 @@ -24825,8 +24760,8 @@ end end local.get $6 - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -24837,13 +24772,13 @@ i32.add i32.load16_s call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -24852,8 +24787,6 @@ 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 @@ -24952,8 +24885,6 @@ i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24974,7 +24905,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + local.get $0 i32.const 1 i32.sub local.tee $2 @@ -25016,15 +24947,15 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store loop $for-loop|0 local.get $2 local.get $5 i32.gt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -25035,13 +24966,13 @@ i32.add i32.load16_u call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -25050,10 +24981,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 + local.get $1 local.get $4 i32.add - local.set $0 + local.set $1 end local.get $5 i32.const 1 @@ -25063,8 +24994,8 @@ end end local.get $6 - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -25075,13 +25006,13 @@ i32.add i32.load16_u call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -25090,8 +25021,6 @@ 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 @@ -25203,8 +25132,6 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25225,7 +25152,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + local.get $0 i32.const 1 i32.sub local.tee $2 @@ -25267,15 +25194,15 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store loop $for-loop|0 local.get $2 local.get $5 i32.gt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -25286,13 +25213,13 @@ i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -25301,10 +25228,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 + local.get $1 local.get $4 i32.add - local.set $0 + local.set $1 end local.get $5 i32.const 1 @@ -25314,8 +25241,8 @@ end end local.get $6 - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -25326,13 +25253,13 @@ i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -25341,8 +25268,6 @@ 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 @@ -25432,8 +25357,6 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25454,7 +25377,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + local.get $0 i32.const 1 i32.sub local.tee $2 @@ -25496,15 +25419,15 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store loop $for-loop|0 local.get $2 local.get $5 i32.gt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -25515,13 +25438,13 @@ i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -25530,10 +25453,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 + local.get $1 local.get $4 i32.add - local.set $0 + local.set $1 end local.get $5 i32.const 1 @@ -25543,8 +25466,8 @@ end end local.get $6 - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -25555,13 +25478,13 @@ i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -25570,8 +25493,6 @@ 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 @@ -25589,13 +25510,13 @@ i64.const 100000000 i64.ge_u if - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 local.get $1 @@ -25611,53 +25532,53 @@ i32.rem_u local.tee $4 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 8012 i32.add i64.load32_u + i64.const 32 + i64.shl local.get $4 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 8012 i32.add i64.load32_u - i64.const 32 - i64.shl i64.or i64.store - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 10000 i32.div_u local.tee $3 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 8012 i32.add i64.load32_u + i64.const 32 + i64.shl local.get $3 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 8012 i32.add i64.load32_u - i64.const 32 - i64.shl i64.or i64.store br $while-continue|0 @@ -25825,349 +25746,6 @@ end local.get $0 ) - (func $~lib/typedarray/Int64Array#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) - 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 $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 - 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 - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 - i32.const 1 - i32.sub - local.tee $4 - 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 7776 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - block $folding-inner0 - local.get $4 - i32.eqz - if - 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 16628 - 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 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.const 63 - i64.shr_u - i32.wrap_i64 - local.tee $3 - 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 $6 - 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 $3 - i32.add - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $6 - 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 - 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 $3 - i32.add - local.tee $1 - 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 $1 - call $~lib/util/number/utoa64_dec_lut - end - local.get $3 - 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 - end - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $4 - 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 $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $3 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $7 - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $7 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $7 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $6 - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $4 - i32.const 3 - i32.shl - 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 - 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 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - return - end - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) (local $2 i32) (local $3 i32) @@ -26315,23 +25893,21 @@ 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 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 $3 @@ -26346,265 +25922,264 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0 - local.get $3 - i32.eqz - if - local.get $4 - 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 16628 - 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 8000 - local.set $0 - br $__inlined_func$~lib/util/number/utoa64 - end + local.get $3 + i32.eqz + if + local.get $4 + 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 16628 + 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 $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/utoa64 + end + local.get $2 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer local.get $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.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 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.tee $1 - 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 $1 - 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.tee $1 + 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 $1 + 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.tee $1 - 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 $1 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.tee $1 + 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 $1 + call $~lib/util/number/utoa64_dec_lut end - br $folding-inner0 + 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 $3 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 20 - i32.add - i32.mul - i32.const 20 + i32.const 4 i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|0 - local.get $3 + 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 $5 + i32.const 20 + i32.add + i32.mul + i32.const 20 + i32.add + local.tee $7 + 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.gt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $4 local.get $6 - i32.gt_s + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $5 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $4 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 + i32.const 9584 local.get $5 - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - 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 $6 i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $5 i32.add - local.set $6 - br $for-loop|0 + local.set $1 end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 end - local.get $7 - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $3 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered + end + local.get $7 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $3 + i32.const 3 + i32.shl + 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.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 + 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 $1 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -27400,18 +26975,19 @@ ) (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) (local $2 i64) - (local $3 i64) + (local $3 i32) (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 i64) - (local $8 i64) + (local $5 i64) + (local $6 i64) + (local $7 i32) + (local $8 i32) (local $9 i32) - (local $10 i32) + (local $10 i64) + (local $11 i64) local.get $1 f64.const 0 f64.lt - local.tee $9 + local.tee $8 if (result f64) local.get $0 i32.const 45 @@ -27428,66 +27004,66 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $5 + local.tee $3 + i32.const 1 + local.get $3 + select + i32.const 1075 + i32.sub + local.tee $9 + i32.const 1 + i32.sub + local.get $2 + i64.const 4503599627370495 + i64.and + local.get $3 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl - local.get $2 - i64.const 4503599627370495 - i64.and i64.add - local.tee $3 + local.tee $2 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $2 - local.get $2 + local.tee $4 i64.clz i32.wrap_i64 - local.tee $6 + local.tee $7 + i32.sub + local.set $3 + local.get $4 + local.get $7 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $5 - i32.const 1 - local.get $5 - select - i32.const 1075 - i32.sub - local.tee $10 - i32.const 1 - i32.sub - local.get $6 - i32.sub - local.set $5 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $6 + local.tee $7 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $10 - local.get $6 + local.get $9 + local.get $7 i32.sub - local.get $5 + local.get $3 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $5 + local.get $3 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $5 + local.tee $9 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -27496,9 +27072,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $6 + local.tee $3 local.get $1 - local.get $6 + local.get $3 f64.convert_i32_s f64.ne i32.add @@ -27506,59 +27082,60 @@ i32.shr_s i32.const 1 i32.add - local.tee $6 + local.tee $3 i32.const 3 i32.shl - local.tee $10 + local.tee $7 i32.sub global.set $~lib/util/number/_K - local.get $10 + local.get $7 i32.const 9864 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $6 + local.get $3 i32.const 1 i32.shl i32.const 10560 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow + local.get $2 + local.get $2 + i64.clz + i64.shl + local.tee $10 + i64.const 4294967295 + i64.and + local.set $5 global.get $~lib/util/number/_frc_pow - local.tee $7 + local.tee $4 i64.const 4294967295 i64.and local.set $2 - local.get $7 + local.get $4 i64.const 32 i64.shr_u - local.tee $7 - global.get $~lib/util/number/_frc_plus local.tee $4 - i64.const 32 - i64.shr_u - local.tee $8 - i64.mul - local.get $2 - local.get $8 - i64.mul - local.get $2 - local.get $4 + global.get $~lib/util/number/_frc_plus + local.tee $6 i64.const 4294967295 i64.and - local.tee $4 + local.tee $11 i64.mul + local.get $2 + local.get $6 i64.const 32 i64.shr_u - i64.add - local.tee $8 + local.tee $6 + i64.mul + local.get $2 + local.get $11 + i64.mul i64.const 32 i64.shr_u i64.add - local.get $4 - local.get $7 - i64.mul - local.get $8 + local.tee $11 i64.const 4294967295 i64.and i64.add @@ -27566,46 +27143,39 @@ i64.add i64.const 32 i64.shr_u + local.get $4 + local.get $6 + i64.mul + local.get $11 + i64.const 32 + i64.shr_u + i64.add i64.add i64.const 1 i64.sub - local.set $4 - local.get $0 - local.get $9 + local.set $6 + local.get $8 i32.const 1 i32.shl + local.get $0 i32.add local.get $0 - local.get $7 - local.get $3 - local.get $3 - i64.clz - i64.shl - local.tee $3 - i64.const 32 - i64.shr_u - local.tee $8 + local.get $4 + local.get $5 i64.mul local.get $2 - local.get $8 + local.get $10 + i64.const 32 + i64.shr_u + local.tee $10 i64.mul local.get $2 - local.get $3 - i64.const 4294967295 - i64.and - local.tee $3 + local.get $5 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $8 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - local.get $7 - i64.mul - local.get $8 + local.tee $5 i64.const 4294967295 i64.and i64.add @@ -27613,41 +27183,41 @@ i64.add i64.const 32 i64.shr_u - i64.add local.get $4 - global.get $~lib/util/number/_exp_pow + local.get $10 + i64.mul local.get $5 + i64.const 32 + i64.shr_u + i64.add + i64.add + local.get $6 + local.get $9 + global.get $~lib/util/number/_exp_pow i32.add i32.const -64 i32.sub + local.get $6 local.get $4 - local.get $7 global.get $~lib/util/number/_frc_minus - local.tee $3 - i64.const 32 - i64.shr_u - local.tee $4 - i64.mul - local.get $2 - local.get $4 - i64.mul - local.get $2 - local.get $3 + local.tee $5 i64.const 4294967295 i64.and - local.tee $2 + local.tee $6 i64.mul + local.get $2 + local.get $5 i64.const 32 i64.shr_u - i64.add - local.tee $3 + local.tee $5 + i64.mul + local.get $2 + local.get $6 + i64.mul i64.const 32 i64.shr_u i64.add - local.get $2 - local.get $7 - i64.mul - local.get $3 + local.tee $2 i64.const 4294967295 i64.and i64.add @@ -27655,17 +27225,24 @@ i64.add i64.const 32 i64.shr_u + local.get $4 + local.get $5 + i64.mul + local.get $2 + i64.const 32 + i64.shr_u + i64.add i64.add i64.const 1 i64.add i64.sub - local.get $9 + local.get $8 call $~lib/util/number/genDigits - local.get $9 + local.get $8 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $9 + local.get $8 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -27752,8 +27329,6 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27774,7 +27349,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinFloatArray - local.get $1 + local.get $0 i32.const 1 i32.sub local.tee $2 @@ -27817,180 +27392,176 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - f64.promote_f32 - call $~lib/util/number/dtoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $4 - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $4 - i32.add - local.set $0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $6 - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load - f64.promote_f32 - call $~lib/util/number/dtoa_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 - 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/joinFloatArray - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~lib/typedarray/Float64Array#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.get $0 - i32.load offset=4 - local.set $3 - 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 - 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 $1 - i32.const 1 - i32.sub - local.tee $2 - 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 7776 - local.set $0 - br $__inlined_func$~lib/util/string/joinFloatArray - end - block $folding-inner0 - local.get $2 - i32.eqz - if - local.get $3 - f64.load - call $~lib/util/number/dtoa - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - 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 $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store loop $for-loop|0 local.get $2 local.get $5 i32.gt_s if + local.get $0 local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + f64.promote_f32 + 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 + i32.add + 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 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $2 + i32.const 2 + i32.shl + 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 + local.get $1 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + 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 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + ) + (func $~lib/typedarray/Float64Array#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.get $0 + i32.load offset=4 + local.set $3 + 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.const 1 + i32.sub + local.tee $2 + 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 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinFloatArray + end + block $folding-inner0 + local.get $2 + i32.eqz + if + local.get $3 + f64.load + call $~lib/util/number/dtoa + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + 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 $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $2 + local.get $5 + i32.gt_s + if local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -28001,13 +27572,13 @@ i32.add f64.load call $~lib/util/number/dtoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -28016,10 +27587,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 + local.get $1 local.get $4 i32.add - local.set $0 + local.set $1 end local.get $5 i32.const 1 @@ -28029,8 +27600,8 @@ end end local.get $6 - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -28041,13 +27612,13 @@ i32.add f64.load call $~lib/util/number/dtoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -28056,8 +27627,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end global.get $~lib/memory/__stack_pointer @@ -28407,11 +27976,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 @@ -28422,9 +27991,9 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $0 i32.load offset=4 - local.get $2 i32.add local.set $0 local.get $1 @@ -28443,10 +28012,10 @@ local.get $0 local.get $3 i32.add - local.get $2 local.get $3 i32.const 3 i32.shl + local.get $2 i32.add i64.load local.tee $4 @@ -28491,11 +28060,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 @@ -28506,9 +28075,9 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $0 i32.load offset=4 - local.get $2 i32.add local.set $2 local.get $1 @@ -28527,24 +28096,24 @@ local.get $2 local.get $3 i32.add - local.get $4 local.get $3 i32.const 1 i32.shl + local.get $4 i32.add i32.load16_s local.tee $0 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - local.get $0 i32.const 255 local.get $0 i32.sub i32.const 31 i32.shr_s i32.or + local.get $0 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor i32.and i32.store8 local.get $3 @@ -28815,9 +28384,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 @@ -29322,25 +28891,24 @@ (local $6 i32) (local $7 i32) (local $8 i32) - local.get $1 + local.get $3 local.get $2 local.get $1 i32.sub i32.const 1 i32.add local.tee $5 - i32.const 1 - i32.and - local.get $3 - local.get $5 local.get $3 i32.sub i32.const 1 i32.and i32.sub + local.get $5 + i32.const 1 + i32.and local.get $3 - i32.eqz select + local.get $1 i32.add local.set $7 loop $for-loop|0 @@ -29351,13 +28919,13 @@ local.get $0 local.get $7 i32.add - local.tee $5 - i32.load8_s - local.set $3 - local.get $5 + local.tee $3 i32.load8_s offset=1 local.tee $6 local.set $5 + local.get $3 + i32.load8_s + local.set $3 i32.const 2 global.set $~argumentsLength local.get $3 @@ -29631,10 +29199,10 @@ local.get $6 i32.gt_s if - local.get $4 local.get $7 local.get $6 i32.sub + local.get $4 i32.add local.get $0 local.get $6 @@ -29708,10 +29276,10 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 i64) + (local $12 i32) (local $13 i32) local.get $1 i32.const 48 @@ -29737,7 +29305,7 @@ end local.get $0 i32.load8_s - local.set $1 + local.set $7 local.get $0 i32.load8_s offset=1 local.set $4 @@ -29745,15 +29313,15 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $7 + local.get $7 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $5 + local.tee $1 select i32.store8 local.get $0 @@ -29761,34 +29329,34 @@ local.set $3 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $7 local.get $4 - local.get $5 + local.get $1 select - local.tee $1 + local.tee $4 local.get $3 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $4 + local.set $1 local.get $0 local.get $3 - local.get $1 local.get $4 + local.get $1 select i32.store8 offset=1 local.get $0 - local.get $1 - local.get $3 local.get $4 + local.get $3 + local.get $1 select i32.store8 offset=2 end local.get $0 i32.load8_s - local.set $1 + local.set $3 local.get $0 i32.load8_s offset=1 local.set $4 @@ -29796,21 +29364,21 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store8 local.get $0 - local.get $1 + local.get $3 local.get $4 - local.get $2 + local.get $1 select i32.store8 offset=1 return @@ -29832,119 +29400,101 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT + call $~lib/rt/tlsf/__alloc + local.tee $12 local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 i32.add - local.tee $9 - local.get $5 - i32.add - local.set $10 + local.set $11 i32.const 0 - local.set $5 + local.set $7 loop $for-loop|1 - local.get $5 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $9 - local.get $5 + local.get $7 i32.const 2 i32.shl + local.get $12 i32.add i32.const -1 i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|1 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $11 + call $~lib/rt/tlsf/__alloc + local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $8 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $5 i32.const 1 i32.add - local.tee $5 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $8 + local.get $13 i32.const 31 - local.get $8 + local.get $13 i32.const 31 i32.lt_s select - local.tee $1 - local.get $5 + local.tee $5 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $8 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $1 + local.get $5 i32.const 1 i32.add local.tee $6 - local.get $8 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 local.get $6 - local.get $8 + local.get $13 local.get $6 i32.const 31 i32.add - local.tee $5 - local.get $5 - local.get $8 + local.tee $1 + local.get $1 + local.get $13 i32.gt_s select - local.tee $5 - local.get $7 + local.tee $7 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end @@ -29954,45 +29504,47 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $8 + local.get $13 i32.const 1 i32.add i64.extend_i32_u - local.tee $12 + local.tee $9 i64.div_u - local.get $5 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $12 + local.get $9 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $9 - local.get $4 + local.get $8 i32.const 2 i32.shl + local.get $12 i32.add i32.load - local.tee $13 + local.tee $4 i32.const -1 i32.ne if local.get $0 - local.get $13 - local.get $10 local.get $4 + local.get $11 + local.get $8 i32.const 2 i32.shl local.tee $3 @@ -30000,27 +29552,27 @@ i32.load i32.const 1 i32.add - local.get $1 - local.get $11 + local.get $5 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $9 + local.get $12 i32.add i32.const -1 i32.store - local.get $13 + local.get $4 local.set $3 end - local.get $4 + local.get $8 i32.const 1 i32.sub - local.set $4 + local.set $8 br $for-loop|3 end end - local.get $9 - local.get $7 + local.get $12 + local.get $1 i32.const 2 i32.shl local.tee $4 @@ -30028,15 +29580,15 @@ local.get $3 i32.store local.get $4 - local.get $10 + local.get $11 i32.add - local.get $1 + local.get $5 i32.store local.get $6 local.set $3 - local.get $5 - local.set $1 local.get $7 + local.set $5 + local.get $1 local.set $4 br $while-continue|2 end @@ -30044,10 +29596,10 @@ loop $for-loop|4 local.get $4 if - local.get $9 local.get $4 i32.const 2 i32.shl + local.get $12 i32.add i32.load local.tee $1 @@ -30056,16 +29608,16 @@ if local.get $0 local.get $1 - local.get $10 local.get $4 i32.const 2 i32.shl + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $8 - local.get $11 + local.get $13 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end @@ -30076,9 +29628,9 @@ br $for-loop|4 end end - local.get $11 + local.get $10 call $~lib/rt/tlsf/__free - local.get $9 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) @@ -30106,25 +29658,24 @@ (local $6 i32) (local $7 i32) (local $8 i32) - local.get $1 + local.get $3 local.get $2 local.get $1 i32.sub i32.const 1 i32.add local.tee $5 - i32.const 1 - i32.and - local.get $3 - local.get $5 local.get $3 i32.sub i32.const 1 i32.and i32.sub + local.get $5 + i32.const 1 + i32.and local.get $3 - i32.eqz select + local.get $1 i32.add local.set $7 loop $for-loop|0 @@ -30135,13 +29686,13 @@ local.get $0 local.get $7 i32.add - local.tee $5 - i32.load8_u - local.set $3 - local.get $5 + local.tee $3 i32.load8_u offset=1 local.tee $6 local.set $5 + local.get $3 + i32.load8_u + local.set $3 i32.const 2 global.set $~argumentsLength local.get $3 @@ -30415,10 +29966,10 @@ local.get $6 i32.gt_s if - local.get $4 local.get $7 local.get $6 i32.sub + local.get $4 i32.add local.get $0 local.get $6 @@ -30492,10 +30043,10 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 i64) + (local $12 i32) (local $13 i32) local.get $1 i32.const 48 @@ -30521,7 +30072,7 @@ end local.get $0 i32.load8_u - local.set $1 + local.set $7 local.get $0 i32.load8_u offset=1 local.set $4 @@ -30529,15 +30080,15 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $7 + local.get $7 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $5 + local.tee $1 select i32.store8 local.get $0 @@ -30545,34 +30096,34 @@ local.set $3 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $7 local.get $4 - local.get $5 + local.get $1 select - local.tee $1 + local.tee $4 local.get $3 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $4 + local.set $1 local.get $0 local.get $3 - local.get $1 local.get $4 + local.get $1 select i32.store8 offset=1 local.get $0 - local.get $1 - local.get $3 local.get $4 + local.get $3 + local.get $1 select i32.store8 offset=2 end local.get $0 i32.load8_u - local.set $1 + local.set $3 local.get $0 i32.load8_u offset=1 local.set $4 @@ -30580,21 +30131,21 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store8 local.get $0 - local.get $1 + local.get $3 local.get $4 - local.get $2 + local.get $1 select i32.store8 offset=1 return @@ -30616,119 +30167,101 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT + call $~lib/rt/tlsf/__alloc + local.tee $12 local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $9 - local.get $5 i32.add - local.set $10 + local.set $11 i32.const 0 - local.set $5 + local.set $7 loop $for-loop|1 - local.get $5 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $9 - local.get $5 + local.get $7 i32.const 2 i32.shl + local.get $12 i32.add i32.const -1 i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|1 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $11 + call $~lib/rt/tlsf/__alloc + local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $8 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $5 i32.const 1 i32.add - local.tee $5 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $8 + local.get $13 i32.const 31 - local.get $8 + local.get $13 i32.const 31 i32.lt_s select - local.tee $1 - local.get $5 + local.tee $5 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $8 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $1 + local.get $5 i32.const 1 i32.add local.tee $6 - local.get $8 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 local.get $6 - local.get $8 + local.get $13 local.get $6 i32.const 31 i32.add - local.tee $5 - local.get $5 - local.get $8 + local.tee $1 + local.get $1 + local.get $13 i32.gt_s select - local.tee $5 - local.get $7 + local.tee $7 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end @@ -30738,45 +30271,47 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $8 + local.get $13 i32.const 1 i32.add i64.extend_i32_u - local.tee $12 + local.tee $9 i64.div_u - local.get $5 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $12 + local.get $9 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $9 - local.get $4 + local.get $8 i32.const 2 i32.shl + local.get $12 i32.add i32.load - local.tee $13 + local.tee $4 i32.const -1 i32.ne if local.get $0 - local.get $13 - local.get $10 local.get $4 + local.get $11 + local.get $8 i32.const 2 i32.shl local.tee $3 @@ -30784,27 +30319,27 @@ i32.load i32.const 1 i32.add - local.get $1 - local.get $11 + local.get $5 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $9 + local.get $12 i32.add i32.const -1 i32.store - local.get $13 + local.get $4 local.set $3 end - local.get $4 + local.get $8 i32.const 1 i32.sub - local.set $4 + local.set $8 br $for-loop|3 end end - local.get $9 - local.get $7 + local.get $12 + local.get $1 i32.const 2 i32.shl local.tee $4 @@ -30812,15 +30347,15 @@ local.get $3 i32.store local.get $4 - local.get $10 + local.get $11 i32.add - local.get $1 + local.get $5 i32.store local.get $6 local.set $3 - local.get $5 - local.set $1 local.get $7 + local.set $5 + local.get $1 local.set $4 br $while-continue|2 end @@ -30828,10 +30363,10 @@ loop $for-loop|4 local.get $4 if - local.get $9 local.get $4 i32.const 2 i32.shl + local.get $12 i32.add i32.load local.tee $1 @@ -30840,16 +30375,16 @@ if local.get $0 local.get $1 - local.get $10 local.get $4 i32.const 2 i32.shl + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $8 - local.get $11 + local.get $13 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end @@ -30860,9 +30395,9 @@ br $for-loop|4 end end - local.get $11 + local.get $10 call $~lib/rt/tlsf/__free - local.get $9 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) @@ -30900,25 +30435,24 @@ (local $6 i32) (local $7 i32) (local $8 i32) - local.get $1 + local.get $3 local.get $2 local.get $1 i32.sub i32.const 1 i32.add local.tee $5 - i32.const 1 - i32.and - local.get $3 - local.get $5 local.get $3 i32.sub i32.const 1 i32.and i32.sub + local.get $5 + i32.const 1 + i32.and local.get $3 - i32.eqz select + local.get $1 i32.add local.set $7 loop $for-loop|0 @@ -30931,13 +30465,13 @@ i32.const 1 i32.shl i32.add - local.tee $5 - i32.load16_s - local.set $3 - local.get $5 + local.tee $3 i32.load16_s offset=2 local.tee $6 local.set $5 + local.get $3 + i32.load16_s + local.set $3 i32.const 2 global.set $~argumentsLength local.get $3 @@ -30963,10 +30497,10 @@ i32.le_s if block $while-break|1 - local.get $0 local.get $6 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_s local.set $8 @@ -30980,10 +30514,10 @@ i32.const 0 i32.le_s br_if $while-break|1 - local.get $0 local.get $6 i32.const 1 i32.shl + local.get $0 i32.add local.get $8 i32.store16 offset=4 @@ -30995,10 +30529,10 @@ end end end - local.get $0 local.get $6 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.store16 offset=4 @@ -31008,10 +30542,10 @@ i32.le_s if block $while-break|2 - local.get $0 local.get $6 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_s local.set $3 @@ -31025,10 +30559,10 @@ i32.const 0 i32.le_s br_if $while-break|2 - local.get $0 local.get $6 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.store16 offset=2 @@ -31040,10 +30574,10 @@ end end end - local.get $0 local.get $6 i32.const 1 i32.shl + local.get $0 i32.add local.get $5 i32.store16 offset=2 @@ -31066,19 +30600,19 @@ local.get $1 return end - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_s - local.get $0 local.get $1 i32.const 1 i32.add local.tee $4 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_s i32.const 2 @@ -31237,17 +30771,17 @@ local.get $6 i32.gt_s if - local.get $4 local.get $7 local.get $6 i32.sub i32.const 1 i32.shl + local.get $4 i32.add - local.get $0 local.get $6 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_s offset=2 i32.store16 @@ -31263,17 +30797,17 @@ local.get $3 i32.le_s if - local.get $4 local.get $6 i32.const 1 i32.shl + local.get $4 i32.add i32.load16_s local.set $7 - local.get $4 local.get $2 i32.const 1 i32.shl + local.get $4 i32.add i32.load16_s local.set $8 @@ -31287,10 +30821,10 @@ i32.const 0 i32.lt_s if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.get $7 i32.store16 @@ -31299,10 +30833,10 @@ i32.sub local.set $6 else - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.get $8 i32.store16 @@ -31326,10 +30860,10 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 i64) + (local $12 i32) (local $13 i32) local.get $1 i32.const 48 @@ -31355,7 +30889,7 @@ end local.get $0 i32.load16_s - local.set $1 + local.set $7 local.get $0 i32.load16_s offset=2 local.set $4 @@ -31363,15 +30897,15 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $7 + local.get $7 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $5 + local.tee $1 select i32.store16 local.get $0 @@ -31379,34 +30913,34 @@ local.set $3 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $7 local.get $4 - local.get $5 + local.get $1 select - local.tee $1 + local.tee $4 local.get $3 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $4 + local.set $1 local.get $0 local.get $3 - local.get $1 local.get $4 + local.get $1 select i32.store16 offset=2 local.get $0 - local.get $1 - local.get $3 local.get $4 + local.get $3 + local.get $1 select i32.store16 offset=4 end local.get $0 i32.load16_s - local.set $1 + local.set $3 local.get $0 i32.load16_s offset=2 local.set $4 @@ -31414,21 +30948,21 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store16 local.get $0 - local.get $1 + local.get $3 local.get $4 - local.get $2 + local.get $1 select i32.store16 offset=2 return @@ -31450,123 +30984,103 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT + call $~lib/rt/tlsf/__alloc + local.tee $12 local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $9 - local.get $5 i32.add - local.set $10 + local.set $11 i32.const 0 - local.set $5 + local.set $7 loop $for-loop|1 - local.get $5 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $9 - local.get $5 + local.get $7 i32.const 2 i32.shl + local.get $12 i32.add i32.const -1 i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|1 end end local.get $1 i32.const 1 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $11 + call $~lib/rt/tlsf/__alloc + local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $8 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $5 i32.const 1 i32.add - local.tee $5 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $8 + local.get $13 i32.const 31 - local.get $8 + local.get $13 i32.const 31 i32.lt_s select - local.tee $1 - local.get $5 + local.tee $5 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $8 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $1 + local.get $5 i32.const 1 i32.add local.tee $6 - local.get $8 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 local.get $6 - local.get $8 + local.get $13 local.get $6 i32.const 31 i32.add - local.tee $5 - local.get $5 - local.get $8 + local.tee $1 + local.get $1 + local.get $13 i32.gt_s select - local.tee $5 - local.get $7 + local.tee $7 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end @@ -31576,45 +31090,47 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $8 + local.get $13 i32.const 1 i32.add i64.extend_i32_u - local.tee $12 + local.tee $9 i64.div_u - local.get $5 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $12 + local.get $9 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $9 - local.get $4 + local.get $8 i32.const 2 i32.shl + local.get $12 i32.add i32.load - local.tee $13 + local.tee $4 i32.const -1 i32.ne if local.get $0 - local.get $13 - local.get $10 local.get $4 + local.get $11 + local.get $8 i32.const 2 i32.shl local.tee $3 @@ -31622,27 +31138,27 @@ i32.load i32.const 1 i32.add - local.get $1 - local.get $11 + local.get $5 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $9 + local.get $12 i32.add i32.const -1 i32.store - local.get $13 + local.get $4 local.set $3 end - local.get $4 + local.get $8 i32.const 1 i32.sub - local.set $4 + local.set $8 br $for-loop|3 end end - local.get $9 - local.get $7 + local.get $12 + local.get $1 i32.const 2 i32.shl local.tee $4 @@ -31650,15 +31166,15 @@ local.get $3 i32.store local.get $4 - local.get $10 + local.get $11 i32.add - local.get $1 + local.get $5 i32.store local.get $6 local.set $3 - local.get $5 - local.set $1 local.get $7 + local.set $5 + local.get $1 local.set $4 br $while-continue|2 end @@ -31666,10 +31182,10 @@ loop $for-loop|4 local.get $4 if - local.get $9 local.get $4 i32.const 2 i32.shl + local.get $12 i32.add i32.load local.tee $1 @@ -31678,16 +31194,16 @@ if local.get $0 local.get $1 - local.get $10 local.get $4 i32.const 2 i32.shl + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $8 - local.get $11 + local.get $13 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end @@ -31698,9 +31214,9 @@ br $for-loop|4 end end - local.get $11 + local.get $10 call $~lib/rt/tlsf/__free - local.get $9 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) @@ -31728,25 +31244,24 @@ (local $6 i32) (local $7 i32) (local $8 i32) - local.get $1 + local.get $3 local.get $2 local.get $1 i32.sub i32.const 1 i32.add local.tee $5 - i32.const 1 - i32.and - local.get $3 - local.get $5 local.get $3 i32.sub i32.const 1 i32.and i32.sub + local.get $5 + i32.const 1 + i32.and local.get $3 - i32.eqz select + local.get $1 i32.add local.set $7 loop $for-loop|0 @@ -31759,13 +31274,13 @@ i32.const 1 i32.shl i32.add - local.tee $5 - i32.load16_u - local.set $3 - local.get $5 + local.tee $3 i32.load16_u offset=2 local.tee $6 local.set $5 + local.get $3 + i32.load16_u + local.set $3 i32.const 2 global.set $~argumentsLength local.get $3 @@ -31791,10 +31306,10 @@ i32.le_s if block $while-break|1 - local.get $0 local.get $6 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u local.set $8 @@ -31808,10 +31323,10 @@ i32.const 0 i32.le_s br_if $while-break|1 - local.get $0 local.get $6 i32.const 1 i32.shl + local.get $0 i32.add local.get $8 i32.store16 offset=4 @@ -31823,10 +31338,10 @@ end end end - local.get $0 local.get $6 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.store16 offset=4 @@ -31836,10 +31351,10 @@ i32.le_s if block $while-break|2 - local.get $0 local.get $6 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u local.set $3 @@ -31853,10 +31368,10 @@ i32.const 0 i32.le_s br_if $while-break|2 - local.get $0 local.get $6 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.store16 offset=2 @@ -31868,10 +31383,10 @@ end end end - local.get $0 local.get $6 i32.const 1 i32.shl + local.get $0 i32.add local.get $5 i32.store16 offset=2 @@ -31894,19 +31409,19 @@ local.get $1 return end - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u - local.get $0 local.get $1 i32.const 1 i32.add local.tee $4 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u i32.const 2 @@ -32065,17 +31580,17 @@ local.get $6 i32.gt_s if - local.get $4 local.get $7 local.get $6 i32.sub i32.const 1 i32.shl + local.get $4 i32.add - local.get $0 local.get $6 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u offset=2 i32.store16 @@ -32091,17 +31606,17 @@ local.get $3 i32.le_s if - local.get $4 local.get $6 i32.const 1 i32.shl + local.get $4 i32.add i32.load16_u local.set $7 - local.get $4 local.get $2 i32.const 1 i32.shl + local.get $4 i32.add i32.load16_u local.set $8 @@ -32115,10 +31630,10 @@ i32.const 0 i32.lt_s if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.get $7 i32.store16 @@ -32127,10 +31642,10 @@ i32.sub local.set $6 else - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.get $8 i32.store16 @@ -32154,10 +31669,10 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 i64) + (local $12 i32) (local $13 i32) local.get $1 i32.const 48 @@ -32183,7 +31698,7 @@ end local.get $0 i32.load16_u - local.set $1 + local.set $7 local.get $0 i32.load16_u offset=2 local.set $4 @@ -32191,15 +31706,15 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $7 + local.get $7 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $5 + local.tee $1 select i32.store16 local.get $0 @@ -32207,34 +31722,34 @@ local.set $3 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $7 local.get $4 - local.get $5 + local.get $1 select - local.tee $1 + local.tee $4 local.get $3 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $4 + local.set $1 local.get $0 local.get $3 - local.get $1 local.get $4 + local.get $1 select i32.store16 offset=2 local.get $0 - local.get $1 - local.get $3 local.get $4 + local.get $3 + local.get $1 select i32.store16 offset=4 end local.get $0 i32.load16_u - local.set $1 + local.set $3 local.get $0 i32.load16_u offset=2 local.set $4 @@ -32242,21 +31757,21 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store16 local.get $0 - local.get $1 + local.get $3 local.get $4 - local.get $2 + local.get $1 select i32.store16 offset=2 return @@ -32278,123 +31793,103 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT + call $~lib/rt/tlsf/__alloc + local.tee $12 local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $9 - local.get $5 i32.add - local.set $10 + local.set $11 i32.const 0 - local.set $5 + local.set $7 loop $for-loop|1 - local.get $5 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $9 - local.get $5 + local.get $7 i32.const 2 i32.shl + local.get $12 i32.add i32.const -1 i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|1 end end local.get $1 i32.const 1 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $11 + call $~lib/rt/tlsf/__alloc + local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $8 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $5 i32.const 1 i32.add - local.tee $5 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $8 + local.get $13 i32.const 31 - local.get $8 + local.get $13 i32.const 31 i32.lt_s select - local.tee $1 - local.get $5 + local.tee $5 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $8 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $1 + local.get $5 i32.const 1 i32.add local.tee $6 - local.get $8 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 local.get $6 - local.get $8 + local.get $13 local.get $6 i32.const 31 i32.add - local.tee $5 - local.get $5 - local.get $8 + local.tee $1 + local.get $1 + local.get $13 i32.gt_s select - local.tee $5 - local.get $7 + local.tee $7 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end @@ -32404,45 +31899,47 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $8 + local.get $13 i32.const 1 i32.add i64.extend_i32_u - local.tee $12 + local.tee $9 i64.div_u - local.get $5 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $12 + local.get $9 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $9 - local.get $4 + local.get $8 i32.const 2 i32.shl + local.get $12 i32.add i32.load - local.tee $13 + local.tee $4 i32.const -1 i32.ne if local.get $0 - local.get $13 - local.get $10 local.get $4 + local.get $11 + local.get $8 i32.const 2 i32.shl local.tee $3 @@ -32450,27 +31947,27 @@ i32.load i32.const 1 i32.add - local.get $1 - local.get $11 + local.get $5 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $9 + local.get $12 i32.add i32.const -1 i32.store - local.get $13 + local.get $4 local.set $3 end - local.get $4 + local.get $8 i32.const 1 i32.sub - local.set $4 + local.set $8 br $for-loop|3 end end - local.get $9 - local.get $7 + local.get $12 + local.get $1 i32.const 2 i32.shl local.tee $4 @@ -32478,15 +31975,15 @@ local.get $3 i32.store local.get $4 - local.get $10 + local.get $11 i32.add - local.get $1 + local.get $5 i32.store local.get $6 local.set $3 - local.get $5 - local.set $1 local.get $7 + local.set $5 + local.get $1 local.set $4 br $while-continue|2 end @@ -32494,10 +31991,10 @@ loop $for-loop|4 local.get $4 if - local.get $9 local.get $4 i32.const 2 i32.shl + local.get $12 i32.add i32.load local.tee $1 @@ -32506,16 +32003,16 @@ if local.get $0 local.get $1 - local.get $10 local.get $4 i32.const 2 i32.shl + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $8 - local.get $11 + local.get $13 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end @@ -32526,9 +32023,9 @@ br $for-loop|4 end end - local.get $11 + local.get $10 call $~lib/rt/tlsf/__free - local.get $9 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) @@ -32566,25 +32063,24 @@ (local $6 i32) (local $7 i32) (local $8 i32) - local.get $1 + local.get $3 local.get $2 local.get $1 i32.sub i32.const 1 i32.add local.tee $5 - i32.const 1 - i32.and - local.get $3 - local.get $5 local.get $3 i32.sub i32.const 1 i32.and i32.sub + local.get $5 + i32.const 1 + i32.and local.get $3 - i32.eqz select + local.get $1 i32.add local.set $7 loop $for-loop|0 @@ -32597,13 +32093,13 @@ i32.const 2 i32.shl i32.add - local.tee $5 - i32.load - local.set $3 - local.get $5 + local.tee $3 i32.load offset=4 local.tee $6 local.set $5 + local.get $3 + i32.load + local.set $3 i32.const 2 global.set $~argumentsLength local.get $3 @@ -32629,10 +32125,10 @@ i32.le_s if block $while-break|1 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.set $8 @@ -32646,10 +32142,10 @@ i32.const 0 i32.le_s br_if $while-break|1 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $8 i32.store offset=8 @@ -32661,10 +32157,10 @@ end end end - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $3 i32.store offset=8 @@ -32674,10 +32170,10 @@ i32.le_s if block $while-break|2 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.set $3 @@ -32691,10 +32187,10 @@ i32.const 0 i32.le_s br_if $while-break|2 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $3 i32.store offset=4 @@ -32706,10 +32202,10 @@ end end end - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $5 i32.store offset=4 @@ -32732,19 +32228,19 @@ local.get $1 return end - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load - local.get $0 local.get $1 i32.const 1 i32.add local.tee $4 i32.const 2 i32.shl + local.get $0 i32.add i32.load i32.const 2 @@ -32903,17 +32399,17 @@ local.get $6 i32.gt_s if - local.get $4 local.get $7 local.get $6 i32.sub i32.const 2 i32.shl + local.get $4 i32.add - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.store @@ -32929,17 +32425,17 @@ local.get $3 i32.le_s if - local.get $4 local.get $6 i32.const 2 i32.shl + local.get $4 i32.add i32.load local.set $7 - local.get $4 local.get $2 i32.const 2 i32.shl + local.get $4 i32.add i32.load local.set $8 @@ -32953,10 +32449,10 @@ i32.const 0 i32.lt_s if - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.get $7 i32.store @@ -32965,10 +32461,10 @@ i32.sub local.set $6 else - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.get $8 i32.store @@ -32992,10 +32488,10 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 i64) + (local $12 i32) (local $13 i32) local.get $1 i32.const 48 @@ -33021,7 +32517,7 @@ end local.get $0 i32.load - local.set $1 + local.set $7 local.get $0 i32.load offset=4 local.set $4 @@ -33029,15 +32525,15 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $7 + local.get $7 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $5 + local.tee $1 select i32.store local.get $0 @@ -33045,34 +32541,34 @@ local.set $3 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $7 local.get $4 - local.get $5 + local.get $1 select - local.tee $1 + local.tee $4 local.get $3 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $4 + local.set $1 local.get $0 local.get $3 - local.get $1 local.get $4 + local.get $1 select i32.store offset=4 local.get $0 - local.get $1 - local.get $3 local.get $4 + local.get $3 + local.get $1 select i32.store offset=8 end local.get $0 i32.load - local.set $1 + local.set $3 local.get $0 i32.load offset=4 local.set $4 @@ -33080,21 +32576,21 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store local.get $0 - local.get $1 + local.get $3 local.get $4 - local.get $2 + local.get $1 select i32.store offset=4 return @@ -33116,123 +32612,103 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT + call $~lib/rt/tlsf/__alloc + local.tee $12 local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 i32.add - local.tee $9 - local.get $5 - i32.add - local.set $10 + local.set $11 i32.const 0 - local.set $5 + local.set $7 loop $for-loop|1 - local.get $5 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $9 - local.get $5 + local.get $7 i32.const 2 i32.shl + local.get $12 i32.add i32.const -1 i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|1 end end local.get $1 i32.const 2 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $11 + call $~lib/rt/tlsf/__alloc + local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $8 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $5 i32.const 1 i32.add - local.tee $5 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $8 + local.get $13 i32.const 31 - local.get $8 + local.get $13 i32.const 31 i32.lt_s select - local.tee $1 - local.get $5 + local.tee $5 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $8 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $1 + local.get $5 i32.const 1 i32.add local.tee $6 - local.get $8 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 local.get $6 - local.get $8 + local.get $13 local.get $6 i32.const 31 i32.add - local.tee $5 - local.get $5 - local.get $8 + local.tee $1 + local.get $1 + local.get $13 i32.gt_s select - local.tee $5 - local.get $7 + local.tee $7 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end @@ -33242,45 +32718,47 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $8 + local.get $13 i32.const 1 i32.add i64.extend_i32_u - local.tee $12 + local.tee $9 i64.div_u - local.get $5 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $12 + local.get $9 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $9 - local.get $4 + local.get $8 i32.const 2 i32.shl + local.get $12 i32.add i32.load - local.tee $13 + local.tee $4 i32.const -1 i32.ne if local.get $0 - local.get $13 - local.get $10 local.get $4 + local.get $11 + local.get $8 i32.const 2 i32.shl local.tee $3 @@ -33288,27 +32766,27 @@ i32.load i32.const 1 i32.add - local.get $1 - local.get $11 + local.get $5 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $9 + local.get $12 i32.add i32.const -1 i32.store - local.get $13 + local.get $4 local.set $3 end - local.get $4 + local.get $8 i32.const 1 i32.sub - local.set $4 + local.set $8 br $for-loop|3 end end - local.get $9 - local.get $7 + local.get $12 + local.get $1 i32.const 2 i32.shl local.tee $4 @@ -33316,15 +32794,15 @@ local.get $3 i32.store local.get $4 - local.get $10 + local.get $11 i32.add - local.get $1 + local.get $5 i32.store local.get $6 local.set $3 - local.get $5 - local.set $1 local.get $7 + local.set $5 + local.get $1 local.set $4 br $while-continue|2 end @@ -33332,10 +32810,10 @@ loop $for-loop|4 local.get $4 if - local.get $9 local.get $4 i32.const 2 i32.shl + local.get $12 i32.add i32.load local.tee $1 @@ -33344,16 +32822,16 @@ if local.get $0 local.get $1 - local.get $10 local.get $4 i32.const 2 i32.shl + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $8 - local.get $11 + local.get $13 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end @@ -33364,9 +32842,9 @@ br $for-loop|4 end end - local.get $11 + local.get $10 call $~lib/rt/tlsf/__free - local.get $9 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) @@ -33388,25 +32866,24 @@ (local $6 i32) (local $7 i32) (local $8 i32) - local.get $1 + local.get $3 local.get $2 local.get $1 i32.sub i32.const 1 i32.add local.tee $5 - i32.const 1 - i32.and - local.get $3 - local.get $5 local.get $3 i32.sub i32.const 1 i32.and i32.sub + local.get $5 + i32.const 1 + i32.and local.get $3 - i32.eqz select + local.get $1 i32.add local.set $7 loop $for-loop|0 @@ -33419,13 +32896,13 @@ i32.const 2 i32.shl i32.add - local.tee $5 - i32.load - local.set $3 - local.get $5 + local.tee $3 i32.load offset=4 local.tee $6 local.set $5 + local.get $3 + i32.load + local.set $3 i32.const 2 global.set $~argumentsLength local.get $3 @@ -33451,10 +32928,10 @@ i32.le_s if block $while-break|1 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.set $8 @@ -33468,10 +32945,10 @@ i32.const 0 i32.le_s br_if $while-break|1 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $8 i32.store offset=8 @@ -33483,10 +32960,10 @@ end end end - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $3 i32.store offset=8 @@ -33496,10 +32973,10 @@ i32.le_s if block $while-break|2 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.set $3 @@ -33513,10 +32990,10 @@ i32.const 0 i32.le_s br_if $while-break|2 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $3 i32.store offset=4 @@ -33528,10 +33005,10 @@ end end end - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $5 i32.store offset=4 @@ -33554,19 +33031,19 @@ local.get $1 return end - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load - local.get $0 local.get $1 i32.const 1 i32.add local.tee $4 i32.const 2 i32.shl + local.get $0 i32.add i32.load i32.const 2 @@ -33725,17 +33202,17 @@ local.get $6 i32.gt_s if - local.get $4 local.get $7 local.get $6 i32.sub i32.const 2 i32.shl + local.get $4 i32.add - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.store @@ -33751,17 +33228,17 @@ local.get $3 i32.le_s if - local.get $4 local.get $6 i32.const 2 i32.shl + local.get $4 i32.add i32.load local.set $7 - local.get $4 local.get $2 i32.const 2 i32.shl + local.get $4 i32.add i32.load local.set $8 @@ -33775,10 +33252,10 @@ i32.const 0 i32.lt_s if - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.get $7 i32.store @@ -33787,10 +33264,10 @@ i32.sub local.set $6 else - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.get $8 i32.store @@ -33814,10 +33291,10 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 i64) + (local $12 i32) (local $13 i32) local.get $1 i32.const 48 @@ -33843,7 +33320,7 @@ end local.get $0 i32.load - local.set $1 + local.set $7 local.get $0 i32.load offset=4 local.set $4 @@ -33851,15 +33328,15 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $7 + local.get $7 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $5 + local.tee $1 select i32.store local.get $0 @@ -33867,34 +33344,34 @@ local.set $3 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $7 local.get $4 - local.get $5 + local.get $1 select - local.tee $1 + local.tee $4 local.get $3 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $4 + local.set $1 local.get $0 local.get $3 - local.get $1 local.get $4 + local.get $1 select i32.store offset=4 local.get $0 - local.get $1 - local.get $3 local.get $4 + local.get $3 + local.get $1 select i32.store offset=8 end local.get $0 i32.load - local.set $1 + local.set $3 local.get $0 i32.load offset=4 local.set $4 @@ -33902,21 +33379,21 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store local.get $0 - local.get $1 + local.get $3 local.get $4 - local.get $2 + local.get $1 select i32.store offset=4 return @@ -33938,123 +33415,103 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT + call $~lib/rt/tlsf/__alloc + local.tee $12 local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $9 - local.get $5 i32.add - local.set $10 + local.set $11 i32.const 0 - local.set $5 + local.set $7 loop $for-loop|1 - local.get $5 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $9 - local.get $5 + local.get $7 i32.const 2 i32.shl + local.get $12 i32.add i32.const -1 i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|1 end end local.get $1 i32.const 2 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $11 + call $~lib/rt/tlsf/__alloc + local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $8 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $5 i32.const 1 i32.add - local.tee $5 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $8 + local.get $13 i32.const 31 - local.get $8 + local.get $13 i32.const 31 i32.lt_s select - local.tee $1 - local.get $5 + local.tee $5 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $8 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $1 + local.get $5 i32.const 1 i32.add local.tee $6 - local.get $8 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 local.get $6 - local.get $8 + local.get $13 local.get $6 i32.const 31 i32.add - local.tee $5 - local.get $5 - local.get $8 + local.tee $1 + local.get $1 + local.get $13 i32.gt_s select - local.tee $5 - local.get $7 + local.tee $7 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end @@ -34064,45 +33521,47 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $8 + local.get $13 i32.const 1 i32.add i64.extend_i32_u - local.tee $12 + local.tee $9 i64.div_u - local.get $5 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $12 + local.get $9 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $9 - local.get $4 + local.get $8 i32.const 2 i32.shl + local.get $12 i32.add i32.load - local.tee $13 + local.tee $4 i32.const -1 i32.ne if local.get $0 - local.get $13 - local.get $10 local.get $4 + local.get $11 + local.get $8 i32.const 2 i32.shl local.tee $3 @@ -34110,27 +33569,27 @@ i32.load i32.const 1 i32.add - local.get $1 - local.get $11 + local.get $5 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $9 + local.get $12 i32.add i32.const -1 i32.store - local.get $13 + local.get $4 local.set $3 end - local.get $4 + local.get $8 i32.const 1 i32.sub - local.set $4 + local.set $8 br $for-loop|3 end end - local.get $9 - local.get $7 + local.get $12 + local.get $1 i32.const 2 i32.shl local.tee $4 @@ -34138,15 +33597,15 @@ local.get $3 i32.store local.get $4 - local.get $10 + local.get $11 i32.add - local.get $1 + local.get $5 i32.store local.get $6 local.set $3 - local.get $5 - local.set $1 local.get $7 + local.set $5 + local.get $1 local.set $4 br $while-continue|2 end @@ -34154,10 +33613,10 @@ loop $for-loop|4 local.get $4 if - local.get $9 local.get $4 i32.const 2 i32.shl + local.get $12 i32.add i32.load local.tee $1 @@ -34166,16 +33625,16 @@ if local.get $0 local.get $1 - local.get $10 local.get $4 i32.const 2 i32.shl + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $8 - local.get $11 + local.get $13 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end @@ -34186,9 +33645,9 @@ br $for-loop|4 end end - local.get $11 + local.get $10 call $~lib/rt/tlsf/__free - local.get $9 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) @@ -34214,25 +33673,24 @@ (local $6 i64) (local $7 i64) (local $8 i32) - local.get $1 + local.get $3 local.get $2 local.get $1 i32.sub i32.const 1 i32.add local.tee $8 - i32.const 1 - i32.and - local.get $3 - local.get $8 local.get $3 i32.sub i32.const 1 i32.and i32.sub + local.get $8 + i32.const 1 + i32.and local.get $3 - i32.eqz select + local.get $1 i32.add local.set $8 loop $for-loop|0 @@ -34246,12 +33704,12 @@ i32.shl i32.add local.tee $3 - i64.load - local.set $5 - local.get $3 i64.load offset=8 local.tee $7 local.set $6 + local.get $3 + i64.load + local.set $5 i32.const 2 global.set $~argumentsLength local.get $5 @@ -34277,10 +33735,10 @@ i32.le_s if block $while-break|1 - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add i64.load local.set $7 @@ -34294,10 +33752,10 @@ i32.const 0 i32.le_s br_if $while-break|1 - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add local.get $7 i64.store offset=16 @@ -34309,10 +33767,10 @@ end end end - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add local.get $5 i64.store offset=16 @@ -34322,10 +33780,10 @@ i32.le_s if block $while-break|2 - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add i64.load local.set $5 @@ -34339,10 +33797,10 @@ i32.const 0 i32.le_s br_if $while-break|2 - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add local.get $5 i64.store offset=8 @@ -34354,10 +33812,10 @@ end end end - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add local.get $6 i64.store offset=8 @@ -34381,19 +33839,19 @@ local.get $1 return end - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add i64.load - local.get $0 local.get $1 i32.const 1 i32.add local.tee $4 i32.const 3 i32.shl + local.get $0 i32.add i64.load i32.const 2 @@ -34554,17 +34012,17 @@ local.get $6 i32.gt_s if - local.get $4 local.get $9 local.get $6 i32.sub i32.const 3 i32.shl + local.get $4 i32.add - local.get $0 local.get $6 i32.const 3 i32.shl + local.get $0 i32.add i64.load offset=8 i64.store @@ -34580,17 +34038,17 @@ local.get $3 i32.le_s if - local.get $4 local.get $6 i32.const 3 i32.shl + local.get $4 i32.add i64.load local.set $7 - local.get $4 local.get $2 i32.const 3 i32.shl + local.get $4 i32.add i64.load local.set $8 @@ -34604,10 +34062,10 @@ i32.const 0 i32.lt_s if - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add local.get $7 i64.store @@ -34616,10 +34074,10 @@ i32.sub local.set $6 else - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add local.get $8 i64.store @@ -34674,17 +34132,17 @@ end local.get $0 i64.load - local.set $9 + local.set $13 local.get $0 i64.load offset=8 - local.set $11 + local.set $9 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $11 local.get $9 + local.get $13 + local.get $13 local.get $9 - local.get $11 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -34695,15 +34153,15 @@ i64.store local.get $0 i64.load offset=16 - local.set $13 + local.set $11 i32.const 2 global.set $~argumentsLength + local.get $13 local.get $9 - local.get $11 local.get $1 select local.tee $9 - local.get $13 + local.get $11 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -34711,31 +34169,31 @@ i32.gt_s local.set $1 local.get $0 - local.get $13 + local.get $11 local.get $9 local.get $1 select i64.store offset=8 local.get $0 local.get $9 - local.get $13 + local.get $11 local.get $1 select i64.store offset=16 end local.get $0 i64.load - local.set $9 + local.set $11 local.get $0 i64.load offset=8 - local.set $11 + local.set $9 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $11 - local.get $9 local.get $9 local.get $11 + local.get $11 + local.get $9 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -34745,8 +34203,8 @@ select i64.store local.get $0 - local.get $9 local.get $11 + local.get $9 local.get $1 select i64.store offset=8 @@ -34769,59 +34227,39 @@ local.tee $6 i32.const 2 i32.shl - local.tee $4 + local.tee $5 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $12 - local.get $4 + local.get $5 i32.add local.set $14 i32.const 0 - local.set $4 + local.set $5 loop $for-loop|1 - local.get $4 + local.get $5 local.get $6 i32.lt_u if - local.get $12 - local.get $4 + local.get $5 i32.const 2 i32.shl + local.get $12 i32.add i32.const -1 i32.store - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|1 end end local.get $1 i32.const 3 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $15 local.get $0 i32.const 0 @@ -34831,10 +34269,10 @@ local.tee $10 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $7 i32.const 1 i32.add - local.tee $4 + local.tee $1 i32.const 32 i32.lt_s if @@ -34846,30 +34284,30 @@ i32.const 31 i32.lt_s select - local.tee $1 - local.get $4 + local.tee $7 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 + local.get $7 local.get $10 i32.lt_s if local.get $0 - local.get $1 + local.get $7 i32.const 1 i32.add local.tee $6 local.get $10 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $4 + local.tee $5 local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if @@ -34879,13 +34317,13 @@ local.get $6 i32.const 31 i32.add - local.tee $4 - local.get $4 + local.tee $1 + local.get $1 local.get $10 i32.gt_s select - local.tee $4 - local.get $7 + local.tee $5 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end @@ -34901,7 +34339,7 @@ i64.extend_i32_u local.tee $9 i64.div_u - local.get $4 + local.get $5 local.get $6 i32.add i32.const 1 @@ -34914,26 +34352,28 @@ i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $5 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $12 - local.get $5 + local.get $8 i32.const 2 i32.shl + local.get $12 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 - local.get $8 + local.get $4 local.get $14 - local.get $5 + local.get $8 i32.const 2 i32.shl local.tee $3 @@ -34941,7 +34381,7 @@ i32.load i32.const 1 i32.add - local.get $1 + local.get $7 local.get $15 local.get $2 call $~lib/util/sort/mergeRuns @@ -34950,45 +34390,45 @@ i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $5 + local.get $8 i32.const 1 i32.sub - local.set $5 + local.set $8 br $for-loop|3 end end local.get $12 - local.get $7 + local.get $1 i32.const 2 i32.shl - local.tee $5 + local.tee $4 i32.add local.get $3 i32.store - local.get $5 + local.get $4 local.get $14 i32.add - local.get $1 + local.get $7 i32.store local.get $6 local.set $3 - local.get $4 - local.set $1 - local.get $7 - local.set $5 + local.get $5 + local.set $7 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $5 + local.get $4 if - local.get $12 - local.get $5 + local.get $4 i32.const 2 i32.shl + local.get $12 i32.add i32.load local.tee $1 @@ -34997,10 +34437,10 @@ if local.get $0 local.get $1 - local.get $14 - local.get $5 + local.get $4 i32.const 2 i32.shl + local.get $14 i32.add i32.load i32.const 1 @@ -35010,10 +34450,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|4 end end @@ -35045,25 +34485,24 @@ (local $6 i64) (local $7 i64) (local $8 i32) - local.get $1 + local.get $3 local.get $2 local.get $1 i32.sub i32.const 1 i32.add local.tee $8 - i32.const 1 - i32.and - local.get $3 - local.get $8 local.get $3 i32.sub i32.const 1 i32.and i32.sub + local.get $8 + i32.const 1 + i32.and local.get $3 - i32.eqz select + local.get $1 i32.add local.set $8 loop $for-loop|0 @@ -35077,12 +34516,12 @@ i32.shl i32.add local.tee $3 - i64.load - local.set $5 - local.get $3 i64.load offset=8 local.tee $7 local.set $6 + local.get $3 + i64.load + local.set $5 i32.const 2 global.set $~argumentsLength local.get $5 @@ -35108,10 +34547,10 @@ i32.le_s if block $while-break|1 - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add i64.load local.set $7 @@ -35125,10 +34564,10 @@ i32.const 0 i32.le_s br_if $while-break|1 - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add local.get $7 i64.store offset=16 @@ -35140,10 +34579,10 @@ end end end - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add local.get $5 i64.store offset=16 @@ -35153,10 +34592,10 @@ i32.le_s if block $while-break|2 - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add i64.load local.set $5 @@ -35170,10 +34609,10 @@ i32.const 0 i32.le_s br_if $while-break|2 - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add local.get $5 i64.store offset=8 @@ -35185,10 +34624,10 @@ end end end - local.get $0 local.get $3 i32.const 3 i32.shl + local.get $0 i32.add local.get $6 i64.store offset=8 @@ -35212,19 +34651,19 @@ local.get $1 return end - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add i64.load - local.get $0 local.get $1 i32.const 1 i32.add local.tee $4 i32.const 3 i32.shl + local.get $0 i32.add i64.load i32.const 2 @@ -35385,17 +34824,17 @@ local.get $6 i32.gt_s if - local.get $4 local.get $9 local.get $6 i32.sub i32.const 3 i32.shl + local.get $4 i32.add - local.get $0 local.get $6 i32.const 3 i32.shl + local.get $0 i32.add i64.load offset=8 i64.store @@ -35411,17 +34850,17 @@ local.get $3 i32.le_s if - local.get $4 local.get $6 i32.const 3 i32.shl + local.get $4 i32.add i64.load local.set $7 - local.get $4 local.get $2 i32.const 3 i32.shl + local.get $4 i32.add i64.load local.set $8 @@ -35435,10 +34874,10 @@ i32.const 0 i32.lt_s if - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add local.get $7 i64.store @@ -35447,10 +34886,10 @@ i32.sub local.set $6 else - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add local.get $8 i64.store @@ -35505,17 +34944,17 @@ end local.get $0 i64.load - local.set $9 + local.set $13 local.get $0 i64.load offset=8 - local.set $11 + local.set $9 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $11 local.get $9 + local.get $13 + local.get $13 local.get $9 - local.get $11 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -35526,15 +34965,15 @@ i64.store local.get $0 i64.load offset=16 - local.set $13 + local.set $11 i32.const 2 global.set $~argumentsLength + local.get $13 local.get $9 - local.get $11 local.get $1 select local.tee $9 - local.get $13 + local.get $11 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -35542,31 +34981,31 @@ i32.gt_s local.set $1 local.get $0 - local.get $13 + local.get $11 local.get $9 local.get $1 select i64.store offset=8 local.get $0 local.get $9 - local.get $13 + local.get $11 local.get $1 select i64.store offset=16 end local.get $0 i64.load - local.set $9 + local.set $11 local.get $0 i64.load offset=8 - local.set $11 + local.set $9 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $11 - local.get $9 local.get $9 local.get $11 + local.get $11 + local.get $9 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -35576,8 +35015,8 @@ select i64.store local.get $0 - local.get $9 local.get $11 + local.get $9 local.get $1 select i64.store offset=8 @@ -35600,59 +35039,39 @@ local.tee $6 i32.const 2 i32.shl - local.tee $4 + local.tee $5 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $12 - local.get $4 + local.get $5 i32.add local.set $14 i32.const 0 - local.set $4 + local.set $5 loop $for-loop|1 - local.get $4 + local.get $5 local.get $6 i32.lt_u if - local.get $12 - local.get $4 + local.get $5 i32.const 2 i32.shl + local.get $12 i32.add i32.const -1 i32.store - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|1 end end local.get $1 i32.const 3 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $15 local.get $0 i32.const 0 @@ -35662,10 +35081,10 @@ local.tee $10 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $7 i32.const 1 i32.add - local.tee $4 + local.tee $1 i32.const 32 i32.lt_s if @@ -35677,30 +35096,30 @@ i32.const 31 i32.lt_s select - local.tee $1 - local.get $4 + local.tee $7 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 + local.get $7 local.get $10 i32.lt_s if local.get $0 - local.get $1 + local.get $7 i32.const 1 i32.add local.tee $6 local.get $10 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $4 + local.tee $5 local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if @@ -35710,13 +35129,13 @@ local.get $6 i32.const 31 i32.add - local.tee $4 - local.get $4 + local.tee $1 + local.get $1 local.get $10 i32.gt_s select - local.tee $4 - local.get $7 + local.tee $5 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end @@ -35732,7 +35151,7 @@ i64.extend_i32_u local.tee $9 i64.div_u - local.get $4 + local.get $5 local.get $6 i32.add i32.const 1 @@ -35745,26 +35164,28 @@ i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $5 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $12 - local.get $5 + local.get $8 i32.const 2 i32.shl + local.get $12 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 - local.get $8 + local.get $4 local.get $14 - local.get $5 + local.get $8 i32.const 2 i32.shl local.tee $3 @@ -35772,7 +35193,7 @@ i32.load i32.const 1 i32.add - local.get $1 + local.get $7 local.get $15 local.get $2 call $~lib/util/sort/mergeRuns @@ -35781,45 +35202,45 @@ i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $5 + local.get $8 i32.const 1 i32.sub - local.set $5 + local.set $8 br $for-loop|3 end end local.get $12 - local.get $7 + local.get $1 i32.const 2 i32.shl - local.tee $5 + local.tee $4 i32.add local.get $3 i32.store - local.get $5 + local.get $4 local.get $14 i32.add - local.get $1 + local.get $7 i32.store local.get $6 local.set $3 - local.get $4 - local.set $1 - local.get $7 - local.set $5 + local.get $5 + local.set $7 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $5 + local.get $4 if - local.get $12 - local.get $5 + local.get $4 i32.const 2 i32.shl + local.get $12 i32.add i32.load local.tee $1 @@ -35828,10 +35249,10 @@ if local.get $0 local.get $1 - local.get $14 - local.get $5 + local.get $4 i32.const 2 i32.shl + local.get $14 i32.add i32.load i32.const 1 @@ -35841,10 +35262,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|4 end end @@ -35876,25 +35297,24 @@ (local $6 f32) (local $7 f32) (local $8 i32) - local.get $1 + local.get $3 local.get $2 local.get $1 i32.sub i32.const 1 i32.add local.tee $8 - i32.const 1 - i32.and - local.get $3 - local.get $8 local.get $3 i32.sub i32.const 1 i32.and i32.sub + local.get $8 + i32.const 1 + i32.and local.get $3 - i32.eqz select + local.get $1 i32.add local.set $8 loop $for-loop|0 @@ -35908,12 +35328,12 @@ i32.shl i32.add local.tee $3 - f32.load - local.set $5 - local.get $3 f32.load offset=4 local.tee $7 local.set $6 + local.get $3 + f32.load + local.set $5 i32.const 2 global.set $~argumentsLength local.get $5 @@ -35939,10 +35359,10 @@ i32.le_s if block $while-break|1 - local.get $0 local.get $3 i32.const 2 i32.shl + local.get $0 i32.add f32.load local.set $7 @@ -35956,10 +35376,10 @@ i32.const 0 i32.le_s br_if $while-break|1 - local.get $0 local.get $3 i32.const 2 i32.shl + local.get $0 i32.add local.get $7 f32.store offset=8 @@ -35971,10 +35391,10 @@ end end end - local.get $0 local.get $3 i32.const 2 i32.shl + local.get $0 i32.add local.get $5 f32.store offset=8 @@ -35984,10 +35404,10 @@ i32.le_s if block $while-break|2 - local.get $0 local.get $3 i32.const 2 i32.shl + local.get $0 i32.add f32.load local.set $5 @@ -36001,10 +35421,10 @@ i32.const 0 i32.le_s br_if $while-break|2 - local.get $0 local.get $3 i32.const 2 i32.shl + local.get $0 i32.add local.get $5 f32.store offset=4 @@ -36016,10 +35436,10 @@ end end end - local.get $0 local.get $3 i32.const 2 i32.shl + local.get $0 i32.add local.get $6 f32.store offset=4 @@ -36043,19 +35463,19 @@ local.get $1 return end - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add f32.load - local.get $0 local.get $1 i32.const 1 i32.add local.tee $4 i32.const 2 i32.shl + local.get $0 i32.add f32.load i32.const 2 @@ -36216,17 +35636,17 @@ local.get $6 i32.gt_s if - local.get $4 local.get $9 local.get $6 i32.sub i32.const 2 i32.shl + local.get $4 i32.add - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add f32.load offset=4 f32.store @@ -36242,17 +35662,17 @@ local.get $3 i32.le_s if - local.get $4 local.get $6 i32.const 2 i32.shl + local.get $4 i32.add f32.load local.set $7 - local.get $4 local.get $2 i32.const 2 i32.shl + local.get $4 i32.add f32.load local.set $8 @@ -36266,10 +35686,10 @@ i32.const 0 i32.lt_s if - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.get $7 f32.store @@ -36278,10 +35698,10 @@ i32.sub local.set $6 else - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.get $8 f32.store @@ -36305,14 +35725,14 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 f32) (local $10 i32) - (local $11 i32) - (local $12 f32) - (local $13 i32) - (local $14 f32) + (local $11 f32) + (local $12 i32) + (local $13 f32) + (local $14 i32) (local $15 i32) - (local $16 f32) + (local $16 i64) local.get $1 i32.const 48 i32.le_s @@ -36337,17 +35757,17 @@ end local.get $0 f32.load - local.set $16 + local.set $13 local.get $0 f32.load offset=4 - local.set $14 + local.set $9 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $14 - local.get $16 - local.get $16 - local.get $14 + local.get $9 + local.get $13 + local.get $13 + local.get $9 local.get $2 i32.load call_indirect $0 (type $f32_f32_=>_i32) @@ -36358,15 +35778,15 @@ f32.store local.get $0 f32.load offset=8 - local.set $12 + local.set $11 i32.const 2 global.set $~argumentsLength - local.get $16 - local.get $14 + local.get $13 + local.get $9 local.get $1 select - local.tee $16 - local.get $12 + local.tee $9 + local.get $11 local.get $2 i32.load call_indirect $0 (type $f32_f32_=>_i32) @@ -36374,31 +35794,31 @@ i32.gt_s local.set $1 local.get $0 - local.get $12 - local.get $16 + local.get $11 + local.get $9 local.get $1 select f32.store offset=4 local.get $0 - local.get $16 - local.get $12 + local.get $9 + local.get $11 local.get $1 select f32.store offset=8 end local.get $0 f32.load - local.set $16 + local.set $11 local.get $0 f32.load offset=4 - local.set $14 + local.set $9 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $14 - local.get $16 - local.get $16 - local.get $14 + local.get $9 + local.get $11 + local.get $11 + local.get $9 local.get $2 i32.load call_indirect $0 (type $f32_f32_=>_i32) @@ -36408,8 +35828,8 @@ select f32.store local.get $0 - local.get $16 - local.get $14 + local.get $11 + local.get $9 local.get $1 select f32.store offset=4 @@ -36429,174 +35849,156 @@ local.get $1 i32.clz i32.sub - local.tee $5 + local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $13 - local.get $7 + call $~lib/rt/tlsf/__alloc + local.tee $12 + local.get $5 i32.add - local.set $11 + local.set $14 i32.const 0 - local.set $7 + local.set $5 loop $for-loop|1 local.get $5 - local.get $7 - i32.gt_u + local.get $6 + i32.lt_u if - local.get $13 - local.get $7 + local.get $5 i32.const 2 i32.shl + local.get $12 i32.add i32.const -1 i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|1 end end local.get $1 i32.const 2 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $10 + call $~lib/rt/tlsf/__alloc + local.set $15 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $15 + local.tee $10 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $7 i32.const 1 i32.add - local.tee $7 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $15 + local.get $10 i32.const 31 - local.get $15 + local.get $10 i32.const 31 i32.lt_s select - local.tee $1 - local.get $7 + local.tee $7 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $15 + local.get $7 + local.get $10 i32.lt_s if local.get $0 - local.get $1 + local.get $7 i32.const 1 i32.add - local.tee $5 - local.get $15 + local.tee $6 + local.get $10 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 - local.get $5 + local.tee $5 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $4 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $5 - local.get $15 - local.get $5 + local.get $6 + local.get $10 + local.get $6 i32.const 31 i32.add - local.tee $7 - local.get $7 - local.get $15 + local.tee $1 + local.get $1 + local.get $10 i32.gt_s select - local.tee $7 - local.get $4 + local.tee $5 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $5 + local.get $6 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $15 + local.get $10 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $16 i64.div_u local.get $5 - local.get $7 + local.get $6 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $16 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $4 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $6 + local.get $1 + local.get $8 i32.lt_u if - local.get $13 - local.get $6 + local.get $8 i32.const 2 i32.shl + local.get $12 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 + local.get $14 local.get $8 - local.get $11 - local.get $6 i32.const 2 i32.shl local.tee $3 @@ -36604,54 +36006,54 @@ i32.load i32.const 1 i32.add - local.get $1 - local.get $10 + local.get $7 + local.get $15 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $13 + local.get $12 i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $6 + local.get $8 i32.const 1 i32.sub - local.set $6 + local.set $8 br $for-loop|3 end end - local.get $13 - local.get $4 + local.get $12 + local.get $1 i32.const 2 i32.shl - local.tee $6 + local.tee $4 i32.add local.get $3 i32.store - local.get $6 - local.get $11 + local.get $4 + local.get $14 i32.add - local.get $1 + local.get $7 i32.store - local.get $5 + local.get $6 local.set $3 - local.get $7 - local.set $1 - local.get $4 - local.set $6 + local.get $5 + local.set $7 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $6 + local.get $4 if - local.get $13 - local.get $6 + local.get $4 i32.const 2 i32.shl + local.get $12 i32.add i32.load local.tee $1 @@ -36660,29 +36062,29 @@ if local.get $0 local.get $1 - local.get $11 - local.get $6 + local.get $4 i32.const 2 i32.shl + local.get $14 i32.add i32.load i32.const 1 i32.add - local.get $15 local.get $10 + local.get $15 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $6 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|4 end end - local.get $10 + local.get $15 call $~lib/rt/tlsf/__free - local.get $13 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) @@ -36691,21 +36093,21 @@ local.get $0 i32.reinterpret_f32 local.tee $2 - local.get $2 i32.const 31 i32.shr_s i32.const 1 i32.shr_u + local.get $2 i32.xor local.tee $2 local.get $1 i32.reinterpret_f32 local.tee $3 - local.get $3 i32.const 31 i32.shr_s i32.const 1 i32.shr_u + local.get $3 i32.xor local.tee $3 i32.gt_s @@ -36793,43 +36195,43 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6 call $~lib/typedarray/Int8Array#constructor - local.tee $9 + local.tee $4 i32.store - local.get $9 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $9 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $9 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $9 + local.get $4 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $9 + local.get $4 i32.const 5 i32.const 5 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 3952 i32.store offset=4 - local.get $3 - local.tee $0 + local.get $0 + local.tee $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -36838,42 +36240,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $4 i32.load offset=8 - local.set $7 - local.get $3 + local.set $6 + local.get $0 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $9 + local.get $4 i32.load offset=4 - local.set $4 + local.set $9 loop $for-loop|0 - local.get $7 - local.get $8 - i32.gt_s + local.get $5 + local.get $6 + i32.lt_s if - local.get $4 - local.get $8 + local.get $5 + local.get $9 i32.add i32.load8_s - local.set $5 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $8 - local.get $9 + local.get $5 + local.get $4 i32.const 3952 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -36884,45 +36286,45 @@ i32.add local.set $2 local.get $1 - local.get $6 + local.get $7 i32.add - local.get $5 + local.get $8 i32.store8 end - local.get $8 + local.get $5 i32.const 1 i32.add - local.set $8 + local.set $5 br $for-loop|0 end end - local.get $3 - local.get $6 + local.get $0 + local.get $7 local.get $2 call $~lib/rt/itcms/__renew local.tee $1 i32.store - local.get $3 + local.get $0 local.get $1 call $~lib/rt/itcms/__link - local.get $3 + local.get $0 local.get $2 i32.store offset=8 - local.get $3 + local.get $0 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 $0 local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 - local.get $3 + local.get $0 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -36931,7 +36333,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.load offset=8 i32.const 3 i32.ne @@ -36943,7 +36345,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 3 @@ -36956,7 +36358,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 4 @@ -36969,7 +36371,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 5 @@ -37016,43 +36418,43 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6 call $~lib/typedarray/Uint8Array#constructor - local.tee $9 + local.tee $4 i32.store - local.get $9 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $9 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $9 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set - local.get $9 + local.get $4 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $9 + local.get $4 i32.const 5 i32.const 5 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 3984 i32.store offset=4 - local.get $3 - local.tee $0 + local.get $0 + local.tee $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37061,42 +36463,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $4 i32.load offset=8 - local.set $7 - local.get $3 + local.set $6 + local.get $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $9 + local.get $4 i32.load offset=4 - local.set $4 + local.set $9 loop $for-loop|0 - local.get $7 - local.get $8 - i32.gt_s + local.get $5 + local.get $6 + i32.lt_s if - local.get $4 - local.get $8 + local.get $5 + local.get $9 i32.add i32.load8_u - local.set $5 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $8 - local.get $9 + local.get $5 + local.get $4 i32.const 3984 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -37107,45 +36509,45 @@ i32.add local.set $2 local.get $1 - local.get $6 + local.get $7 i32.add - local.get $5 + local.get $8 i32.store8 end - local.get $8 + local.get $5 i32.const 1 i32.add - local.set $8 + local.set $5 br $for-loop|0 end end - local.get $3 - local.get $6 + local.get $0 + local.get $7 local.get $2 call $~lib/rt/itcms/__renew local.tee $1 i32.store - local.get $3 + local.get $0 local.get $1 call $~lib/rt/itcms/__link - local.get $3 + local.get $0 local.get $2 i32.store offset=8 - local.get $3 + local.get $0 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 $0 local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 - local.get $3 + local.get $0 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -37154,7 +36556,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.load offset=8 i32.const 3 i32.ne @@ -37166,7 +36568,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 3 @@ -37179,7 +36581,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 4 @@ -37192,7 +36594,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 5 @@ -37239,43 +36641,43 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $9 + local.tee $4 i32.store - local.get $9 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $9 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $9 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $9 + local.get $4 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $9 + local.get $4 i32.const 5 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 4016 i32.store offset=4 - local.get $3 - local.tee $0 + local.get $0 + local.tee $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37284,42 +36686,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $4 i32.load offset=8 - local.set $7 - local.get $3 + local.set $6 + local.get $0 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $9 + local.get $4 i32.load offset=4 - local.set $4 + local.set $9 loop $for-loop|0 - local.get $7 - local.get $8 - i32.gt_s + local.get $5 + local.get $6 + i32.lt_s if - local.get $4 - local.get $8 + local.get $5 + local.get $9 i32.add i32.load8_u - local.set $5 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $8 - local.get $9 + local.get $5 + local.get $4 i32.const 4016 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -37330,45 +36732,45 @@ i32.add local.set $2 local.get $1 - local.get $6 + local.get $7 i32.add - local.get $5 + local.get $8 i32.store8 end - local.get $8 + local.get $5 i32.const 1 i32.add - local.set $8 + local.set $5 br $for-loop|0 end end - local.get $3 - local.get $6 + local.get $0 + local.get $7 local.get $2 call $~lib/rt/itcms/__renew local.tee $1 i32.store - local.get $3 + local.get $0 local.get $1 call $~lib/rt/itcms/__link - local.get $3 + local.get $0 local.get $2 i32.store offset=8 - local.get $3 + local.get $0 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 $0 local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 - local.get $3 + local.get $0 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -37377,7 +36779,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.load offset=8 i32.const 3 i32.ne @@ -37389,7 +36791,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 @@ -37402,7 +36804,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 @@ -37415,7 +36817,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 5 @@ -37462,43 +36864,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6 call $~lib/typedarray/Int16Array#constructor - local.tee $9 + local.tee $3 i32.store - local.get $9 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $9 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $9 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set - local.get $9 + local.get $3 i32.const 3 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $9 + local.get $3 i32.const 5 i32.const 5 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 4048 i32.store offset=4 - local.get $3 - local.tee $0 + local.get $5 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37507,102 +36908,103 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $7 - local.get $3 + local.set $6 + local.get $0 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.const 1 i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $9 + local.get $3 i32.load offset=4 - local.set $4 + local.set $9 loop $for-loop|0 - local.get $7 - local.get $8 - i32.gt_s + local.get $4 + local.get $6 + i32.lt_s if + local.get $9 local.get $4 - local.get $8 i32.const 1 i32.shl i32.add i32.load16_s - local.set $5 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $8 - local.get $9 + local.get $4 + local.get $3 i32.const 4048 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.tee $1 + local.tee $0 i32.const 1 i32.add local.set $2 - local.get $6 - local.get $1 + local.get $7 + local.get $0 i32.const 1 i32.shl i32.add - local.get $5 + local.get $8 i32.store16 end - local.get $8 + local.get $4 i32.const 1 i32.add - local.set $8 + local.set $4 br $for-loop|0 end end - local.get $3 - local.get $6 + local.get $1 + local.get $7 local.get $2 i32.const 1 i32.shl - local.tee $1 + local.tee $0 call $~lib/rt/itcms/__renew local.tee $2 i32.store - local.get $3 + local.get $1 local.get $2 call $~lib/rt/itcms/__link - local.get $3 local.get $1 + local.get $0 i32.store offset=8 - local.get $3 + local.get $1 local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $3 + local.get $5 + local.get $1 + local.tee $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 - local.get $3 + local.get $0 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -37611,7 +37013,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u @@ -37625,7 +37027,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 3 @@ -37638,7 +37040,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 4 @@ -37651,7 +37053,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 5 @@ -37698,43 +37100,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6 call $~lib/typedarray/Uint16Array#constructor - local.tee $9 + local.tee $3 i32.store - local.get $9 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $9 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $9 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set - local.get $9 + local.get $3 i32.const 3 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $9 + local.get $3 i32.const 5 i32.const 5 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 4080 i32.store offset=4 - local.get $3 - local.tee $0 + local.get $5 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37743,102 +37144,103 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $7 - local.get $3 + local.set $6 + local.get $0 i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.const 1 i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $9 + local.get $3 i32.load offset=4 - local.set $4 + local.set $9 loop $for-loop|0 - local.get $7 - local.get $8 - i32.gt_s + local.get $4 + local.get $6 + i32.lt_s if + local.get $9 local.get $4 - local.get $8 i32.const 1 i32.shl i32.add i32.load16_u - local.set $5 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $8 - local.get $9 + local.get $4 + local.get $3 i32.const 4080 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.tee $1 + local.tee $0 i32.const 1 i32.add local.set $2 - local.get $6 - local.get $1 + local.get $7 + local.get $0 i32.const 1 i32.shl i32.add - local.get $5 + local.get $8 i32.store16 end - local.get $8 + local.get $4 i32.const 1 i32.add - local.set $8 + local.set $4 br $for-loop|0 end end - local.get $3 - local.get $6 + local.get $1 + local.get $7 local.get $2 i32.const 1 i32.shl - local.tee $1 + local.tee $0 call $~lib/rt/itcms/__renew local.tee $2 i32.store - local.get $3 + local.get $1 local.get $2 call $~lib/rt/itcms/__link - local.get $3 local.get $1 + local.get $0 i32.store offset=8 - local.get $3 + local.get $1 local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $3 + local.get $5 + local.get $1 + local.tee $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 - local.get $3 + local.get $0 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -37847,7 +37249,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u @@ -37861,7 +37263,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 3 @@ -37874,7 +37276,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 4 @@ -37887,7 +37289,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 5 @@ -37934,43 +37336,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6 call $~lib/typedarray/Int32Array#constructor - local.tee $9 + local.tee $3 i32.store - local.get $9 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $9 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $9 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $9 + local.get $3 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $9 + local.get $3 i32.const 5 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 4112 i32.store offset=4 - local.get $3 - local.tee $0 + local.get $5 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37979,102 +37380,103 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $7 - local.get $3 + local.set $6 + local.get $0 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.const 2 i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $9 + local.get $3 i32.load offset=4 - local.set $4 + local.set $9 loop $for-loop|0 - local.get $7 - local.get $8 - i32.gt_s + local.get $4 + local.get $6 + i32.lt_s if + local.get $9 local.get $4 - local.get $8 i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $8 - local.get $9 + local.get $4 + local.get $3 i32.const 4112 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.tee $1 + local.tee $0 i32.const 1 i32.add local.set $2 - local.get $6 - local.get $1 + local.get $7 + local.get $0 i32.const 2 i32.shl i32.add - local.get $5 + local.get $8 i32.store end - local.get $8 + local.get $4 i32.const 1 i32.add - local.set $8 + local.set $4 br $for-loop|0 end end - local.get $3 - local.get $6 + local.get $1 + local.get $7 local.get $2 i32.const 2 i32.shl - local.tee $1 + local.tee $0 call $~lib/rt/itcms/__renew local.tee $2 i32.store - local.get $3 + local.get $1 local.get $2 call $~lib/rt/itcms/__link - local.get $3 local.get $1 + local.get $0 i32.store offset=8 - local.get $3 + local.get $1 local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $3 + local.get $5 + local.get $1 + local.tee $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 - local.get $3 + local.get $0 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -38083,7 +37485,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -38097,7 +37499,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -38110,7 +37512,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 4 @@ -38123,7 +37525,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 5 @@ -38170,43 +37572,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6 call $~lib/typedarray/Uint32Array#constructor - local.tee $9 + local.tee $3 i32.store - local.get $9 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $9 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $9 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set - local.get $9 + local.get $3 i32.const 3 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $9 + local.get $3 i32.const 5 i32.const 5 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 4144 i32.store offset=4 - local.get $3 - local.tee $0 + local.get $5 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -38215,102 +37616,103 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $7 - local.get $3 + local.set $6 + local.get $0 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.const 2 i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $9 + local.get $3 i32.load offset=4 - local.set $4 + local.set $9 loop $for-loop|0 - local.get $7 - local.get $8 - i32.gt_s + local.get $4 + local.get $6 + i32.lt_s if + local.get $9 local.get $4 - local.get $8 i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $8 - local.get $9 + local.get $4 + local.get $3 i32.const 4144 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.tee $1 + local.tee $0 i32.const 1 i32.add local.set $2 - local.get $6 - local.get $1 + local.get $7 + local.get $0 i32.const 2 i32.shl i32.add - local.get $5 + local.get $8 i32.store end - local.get $8 + local.get $4 i32.const 1 i32.add - local.set $8 + local.set $4 br $for-loop|0 end end - local.get $3 - local.get $6 + local.get $1 + local.get $7 local.get $2 i32.const 2 i32.shl - local.tee $1 + local.tee $0 call $~lib/rt/itcms/__renew local.tee $2 i32.store - local.get $3 + local.get $1 local.get $2 call $~lib/rt/itcms/__link - local.get $3 local.get $1 + local.get $0 i32.store offset=8 - local.get $3 + local.get $1 local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $3 + local.get $5 + local.get $1 + local.tee $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 - local.get $3 + local.get $0 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -38319,7 +37721,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -38333,7 +37735,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 3 @@ -38346,7 +37748,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 4 @@ -38359,7 +37761,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 5 @@ -38391,10 +37793,10 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i64) + (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) + (local $8 i64) (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -38406,43 +37808,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6 call $~lib/typedarray/Int64Array#constructor - local.tee $9 + local.tee $3 i32.store - local.get $9 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $9 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $9 + local.get $3 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set - local.get $9 + local.get $3 i32.const 3 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $9 + local.get $3 i32.const 5 i64.const 5 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 4176 i32.store offset=4 - local.get $3 - local.tee $0 + local.get $5 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -38451,102 +37852,103 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $7 - local.get $3 + local.set $6 + local.get $0 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.const 3 i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $9 + local.get $3 i32.load offset=4 - local.set $4 + local.set $9 loop $for-loop|0 - local.get $7 - local.get $8 - i32.gt_s + local.get $4 + local.get $6 + i32.lt_s if + local.get $9 local.get $4 - local.get $8 i32.const 3 i32.shl i32.add i64.load - local.set $5 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $8 - local.get $9 + local.get $4 + local.get $3 i32.const 4176 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) if local.get $2 - local.tee $1 + local.tee $0 i32.const 1 i32.add local.set $2 - local.get $6 - local.get $1 + local.get $7 + local.get $0 i32.const 3 i32.shl i32.add - local.get $5 + local.get $8 i64.store end - local.get $8 + local.get $4 i32.const 1 i32.add - local.set $8 + local.set $4 br $for-loop|0 end end - local.get $3 - local.get $6 + local.get $1 + local.get $7 local.get $2 i32.const 3 i32.shl - local.tee $1 + local.tee $0 call $~lib/rt/itcms/__renew local.tee $2 i32.store - local.get $3 + local.get $1 local.get $2 call $~lib/rt/itcms/__link - local.get $3 local.get $1 + local.get $0 i32.store offset=8 - local.get $3 + local.get $1 local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $3 + local.get $5 + local.get $1 + local.tee $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 - local.get $3 + local.get $0 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -38555,7 +37957,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -38569,7 +37971,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 3 @@ -38582,7 +37984,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 4 @@ -38595,7 +37997,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 5 @@ -38627,10 +38029,10 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i64) + (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) + (local $8 i64) (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -38642,43 +38044,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6 call $~lib/typedarray/Uint64Array#constructor - local.tee $9 + local.tee $3 i32.store - local.get $9 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $9 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $9 + local.get $3 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set - local.get $9 + local.get $3 i32.const 3 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $9 + local.get $3 i32.const 5 i64.const 5 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 4208 i32.store offset=4 - local.get $3 - local.tee $0 + local.get $5 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -38687,102 +38088,103 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $7 - local.get $3 + local.set $6 + local.get $0 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.const 3 i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $9 + local.get $3 i32.load offset=4 - local.set $4 + local.set $9 loop $for-loop|0 - local.get $7 - local.get $8 - i32.gt_s + local.get $4 + local.get $6 + i32.lt_s if + local.get $9 local.get $4 - local.get $8 i32.const 3 i32.shl i32.add i64.load - local.set $5 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $8 - local.get $9 + local.get $4 + local.get $3 i32.const 4208 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) if local.get $2 - local.tee $1 + local.tee $0 i32.const 1 i32.add local.set $2 - local.get $6 - local.get $1 + local.get $7 + local.get $0 i32.const 3 i32.shl i32.add - local.get $5 + local.get $8 i64.store end - local.get $8 + local.get $4 i32.const 1 i32.add - local.set $8 + local.set $4 br $for-loop|0 end end - local.get $3 - local.get $6 + local.get $1 + local.get $7 local.get $2 i32.const 3 i32.shl - local.tee $1 + local.tee $0 call $~lib/rt/itcms/__renew local.tee $2 i32.store - local.get $3 + local.get $1 local.get $2 call $~lib/rt/itcms/__link - local.get $3 local.get $1 + local.get $0 i32.store offset=8 - local.get $3 + local.get $1 local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $3 + local.get $5 + local.get $1 + local.tee $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 - local.get $3 + local.get $0 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -38791,7 +38193,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -38805,7 +38207,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 3 @@ -38818,7 +38220,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 4 @@ -38831,7 +38233,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 5 @@ -38863,10 +38265,10 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f32) + (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) + (local $8 f32) (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -38878,43 +38280,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6 call $~lib/typedarray/Float32Array#constructor - local.tee $9 + local.tee $3 i32.store - local.get $9 + local.get $3 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $9 + local.get $3 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $9 + local.get $3 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set - local.get $9 + local.get $3 i32.const 3 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $9 + local.get $3 i32.const 5 f32.const 5 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 4240 i32.store offset=4 - local.get $3 - local.tee $0 + local.get $5 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -38923,102 +38324,103 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $7 - local.get $3 + local.set $6 + local.get $0 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.const 2 i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $9 + local.get $3 i32.load offset=4 - local.set $4 + local.set $9 loop $for-loop|0 - local.get $7 - local.get $8 - i32.gt_s + local.get $4 + local.get $6 + i32.lt_s if + local.get $9 local.get $4 - local.get $8 i32.const 2 i32.shl i32.add f32.load - local.set $5 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $8 - local.get $9 + local.get $4 + local.get $3 i32.const 4240 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) if local.get $2 - local.tee $1 + local.tee $0 i32.const 1 i32.add local.set $2 - local.get $6 - local.get $1 + local.get $7 + local.get $0 i32.const 2 i32.shl i32.add - local.get $5 + local.get $8 f32.store end - local.get $8 + local.get $4 i32.const 1 i32.add - local.set $8 + local.set $4 br $for-loop|0 end end - local.get $3 - local.get $6 + local.get $1 + local.get $7 local.get $2 i32.const 2 i32.shl - local.tee $1 + local.tee $0 call $~lib/rt/itcms/__renew local.tee $2 i32.store - local.get $3 + local.get $1 local.get $2 call $~lib/rt/itcms/__link - local.get $3 local.get $1 + local.get $0 i32.store offset=8 - local.get $3 + local.get $1 local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $3 + local.get $5 + local.get $1 + local.tee $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 - local.get $3 + local.get $0 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -39027,7 +38429,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -39041,7 +38443,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 3 @@ -39054,7 +38456,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 4 @@ -39067,7 +38469,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 5 @@ -39099,10 +38501,10 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f64) + (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) + (local $8 f64) (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -39114,43 +38516,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6 call $~lib/typedarray/Float64Array#constructor - local.tee $9 + local.tee $3 i32.store - local.get $9 + local.get $3 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $9 + local.get $3 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $9 + local.get $3 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set - local.get $9 + local.get $3 i32.const 3 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $9 + local.get $3 i32.const 5 f64.const 5 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 4272 i32.store offset=4 - local.get $3 - local.tee $0 + local.get $5 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -39159,102 +38560,103 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $7 - local.get $3 + local.set $6 + local.get $0 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.const 3 i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $9 + local.get $3 i32.load offset=4 - local.set $4 + local.set $9 loop $for-loop|0 - local.get $7 - local.get $8 - i32.gt_s + local.get $4 + local.get $6 + i32.lt_s if + local.get $9 local.get $4 - local.get $8 i32.const 3 i32.shl i32.add f64.load - local.set $5 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $8 - local.get $9 + local.get $4 + local.get $3 i32.const 4272 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) if local.get $2 - local.tee $1 + local.tee $0 i32.const 1 i32.add local.set $2 - local.get $6 - local.get $1 + local.get $7 + local.get $0 i32.const 3 i32.shl i32.add - local.get $5 + local.get $8 f64.store end - local.get $8 + local.get $4 i32.const 1 i32.add - local.set $8 + local.set $4 br $for-loop|0 end end - local.get $3 - local.get $6 + local.get $1 + local.get $7 local.get $2 i32.const 3 i32.shl - local.tee $1 + local.tee $0 call $~lib/rt/itcms/__renew local.tee $2 i32.store - local.get $3 + local.get $1 local.get $2 call $~lib/rt/itcms/__link - local.get $3 local.get $1 + local.get $0 i32.store offset=8 - local.get $3 + local.get $1 local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $3 + local.get $5 + local.get $1 + local.tee $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 - local.get $3 + local.get $0 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -39263,7 +38665,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -39277,7 +38679,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 3 @@ -39290,7 +38692,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 4 @@ -39303,7 +38705,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 5 @@ -39353,14 +38755,14 @@ local.get $3 i32.const 7152 i32.store - local.get $0 - i32.const 255 - i32.and i32.const 7152 local.get $1 call $~lib/array/Array#__get i32.const 255 i32.and + local.get $0 + i32.const 255 + i32.and i32.ne if i32.const 0 @@ -39425,14 +38827,14 @@ local.get $3 i32.const 7152 i32.store - local.get $0 - i32.const 65535 - i32.and i32.const 7152 local.get $1 call $~lib/array/Array#__get i32.const 65535 i32.and + local.get $0 + i32.const 65535 + i32.and i32.ne if i32.const 0 @@ -42841,6 +42243,7 @@ (local $7 i32) (local $8 f32) (local $9 f64) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -42886,21 +42289,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -42924,6 +42327,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int8Array#constructor + local.tee $10 local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -42936,12 +42340,12 @@ i32.const 15 i32.const 11312 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=16 local.get $0 - local.get $4 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -42965,17 +42369,17 @@ local.set $7 i32.const 11100 i32.load - local.set $4 + local.set $3 loop $for-loop|0 + local.get $2 local.get $3 - local.get $4 i32.lt_s if - local.get $3 + local.get $2 local.get $6 i32.add local.get $7 - local.get $3 + local.get $2 i32.const 2 i32.shl i32.add @@ -42992,10 +42396,10 @@ i32.const 0 end i32.store8 - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end @@ -43004,12 +42408,12 @@ i32.const 15 i32.const 11392 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=16 local.get $0 - local.get $3 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $0 local.get $1 @@ -43043,7 +42447,7 @@ i32.load offset=4 i32.const 2 i32.add - local.set $4 + local.set $3 i32.const 11188 i32.load local.set $6 @@ -43056,7 +42460,7 @@ i32.lt_s if local.get $1 - local.get $4 + local.get $3 i32.add local.get $6 local.get $1 @@ -43096,7 +42500,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $0 - local.get $2 + local.get $4 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -43111,12 +42515,12 @@ i32.const 15 i32.const 11488 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 $0 - local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -43231,6 +42635,7 @@ (local $7 i32) (local $8 f32) (local $9 f64) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -43276,21 +42681,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -43314,6 +42719,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8Array#constructor + local.tee $10 local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -43326,12 +42732,12 @@ i32.const 63 i32.const 11520 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=16 local.get $0 - local.get $4 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -43355,17 +42761,17 @@ local.set $7 i32.const 11100 i32.load - local.set $4 + local.set $3 loop $for-loop|0 + local.get $2 local.get $3 - local.get $4 i32.lt_s if - local.get $3 + local.get $2 local.get $6 i32.add local.get $7 - local.get $3 + local.get $2 i32.const 2 i32.shl i32.add @@ -43382,10 +42788,10 @@ i32.const 0 end i32.store8 - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end @@ -43394,12 +42800,12 @@ i32.const 63 i32.const 11600 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=16 local.get $0 - local.get $3 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $0 local.get $1 @@ -43433,7 +42839,7 @@ i32.load offset=4 i32.const 2 i32.add - local.set $4 + local.set $3 i32.const 11188 i32.load local.set $6 @@ -43446,7 +42852,7 @@ i32.lt_s if local.get $1 - local.get $4 + local.get $3 i32.add local.get $6 local.get $1 @@ -43486,7 +42892,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $0 - local.get $2 + local.get $4 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -43501,12 +42907,12 @@ i32.const 63 i32.const 11696 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 $0 - local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -43622,6 +43028,7 @@ (local $8 i32) (local $9 f32) (local $10 f64) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -43705,6 +43112,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $11 local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -43719,10 +43127,10 @@ br_if $folding-inner0 local.get $1 i32.load offset=4 - local.set $6 + local.set $5 i32.const 11012 i32.load - local.set $7 + local.set $6 i32.const 11020 i32.load local.set $8 @@ -43732,22 +43140,22 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $5 i32.add - local.get $7 + local.get $6 local.get $0 i32.const 2 i32.shl i32.add i32.load - local.tee $5 + local.tee $7 i32.const 31 i32.shr_s i32.const -1 i32.xor - local.get $5 + local.get $7 i32.const 255 - local.get $5 + local.get $7 i32.sub i32.const 31 i32.shr_s @@ -43790,10 +43198,10 @@ i32.load offset=4 i32.const 3 i32.add - local.set $6 + local.set $5 i32.const 11092 i32.load - local.set $7 + local.set $6 i32.const 11100 i32.load local.set $8 @@ -43803,9 +43211,9 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $5 i32.add - local.get $7 + local.get $6 local.get $0 i32.const 2 i32.shl @@ -43879,22 +43287,22 @@ i32.load offset=4 i32.const 2 i32.add - local.set $5 + local.set $7 i32.const 11188 i32.load - local.set $6 + local.set $5 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|08 local.get $0 - local.get $7 + local.get $6 i32.lt_s if local.get $0 - local.get $5 + local.get $7 i32.add - local.get $6 + local.get $5 local.get $0 i32.const 3 i32.shl @@ -43959,33 +43367,33 @@ i32.load offset=4 i32.const 7 i32.add - local.set $3 + local.set $2 i32.const 11268 i32.load - local.set $4 + local.set $3 i32.const 11276 i32.load - local.set $5 + local.set $4 loop $for-loop|012 local.get $0 - local.get $5 + local.get $4 i32.lt_s if local.get $0 - local.get $3 + local.get $2 i32.add local.get $0 - local.get $4 + local.get $3 i32.add i32.load8_s - local.tee $2 + local.tee $1 i32.const 31 i32.shr_s i32.const -1 i32.xor - local.get $2 + local.get $1 i32.const 255 - local.get $2 + local.get $1 i32.sub i32.const 31 i32.shr_s @@ -44004,12 +43412,12 @@ i32.const 63 i32.const 11920 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 + local.get $11 local.get $1 - local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -44129,6 +43537,7 @@ (local $7 i32) (local $8 f32) (local $9 f64) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -44174,21 +43583,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -44212,6 +43621,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int16Array#constructor + local.tee $10 local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -44224,12 +43634,12 @@ i32.const 64 i32.const 11952 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=16 local.get $0 - local.get $4 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -44255,19 +43665,19 @@ local.set $7 i32.const 11100 i32.load - local.set $4 + local.set $3 loop $for-loop|0 + local.get $2 local.get $3 - local.get $4 i32.lt_s if local.get $6 - local.get $3 + local.get $2 i32.const 1 i32.shl i32.add local.get $7 - local.get $3 + local.get $2 i32.const 2 i32.shl i32.add @@ -44284,10 +43694,10 @@ i32.const 0 end i32.store16 - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end @@ -44296,12 +43706,12 @@ i32.const 64 i32.const 12048 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=16 local.get $0 - local.get $3 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $0 local.get $1 @@ -44337,7 +43747,7 @@ i32.load offset=4 i32.const 4 i32.add - local.set $4 + local.set $3 i32.const 11188 i32.load local.set $6 @@ -44349,7 +43759,7 @@ local.get $7 i32.lt_s if - local.get $4 + local.get $3 local.get $1 i32.const 1 i32.shl @@ -44392,7 +43802,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $0 - local.get $2 + local.get $4 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -44407,12 +43817,12 @@ i32.const 64 i32.const 12192 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 $0 - local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -44532,6 +43942,7 @@ (local $7 i32) (local $8 f32) (local $9 f64) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -44577,21 +43988,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -44615,6 +44026,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint16Array#constructor + local.tee $10 local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -44627,12 +44039,12 @@ i32.const 65 i32.const 12240 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=16 local.get $0 - local.get $4 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -44658,19 +44070,19 @@ local.set $7 i32.const 11100 i32.load - local.set $4 + local.set $3 loop $for-loop|0 + local.get $2 local.get $3 - local.get $4 i32.lt_s if local.get $6 - local.get $3 + local.get $2 i32.const 1 i32.shl i32.add local.get $7 - local.get $3 + local.get $2 i32.const 2 i32.shl i32.add @@ -44687,10 +44099,10 @@ i32.const 0 end i32.store16 - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end @@ -44699,12 +44111,12 @@ i32.const 65 i32.const 12336 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=16 local.get $0 - local.get $3 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $0 local.get $1 @@ -44740,7 +44152,7 @@ i32.load offset=4 i32.const 4 i32.add - local.set $4 + local.set $3 i32.const 11188 i32.load local.set $6 @@ -44752,7 +44164,7 @@ local.get $7 i32.lt_s if - local.get $4 + local.get $3 local.get $1 i32.const 1 i32.shl @@ -44795,7 +44207,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $0 - local.get $2 + local.get $4 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -44810,12 +44222,12 @@ i32.const 65 i32.const 12480 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 $0 - local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -44936,6 +44348,7 @@ (local $8 f32) (local $9 f64) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -44981,21 +44394,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -45019,6 +44432,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int32Array#constructor + local.tee $10 local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -45033,12 +44447,12 @@ i32.const 16 i32.const 12528 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=16 local.get $0 - local.get $3 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -45064,19 +44478,19 @@ local.set $7 i32.const 11100 i32.load - local.set $10 + local.set $11 loop $for-loop|0 - local.get $4 - local.get $10 + local.get $3 + local.get $11 i32.lt_s if local.get $6 - local.get $4 + local.get $3 i32.const 2 i32.shl - local.tee $3 + local.tee $2 i32.add - local.get $3 + local.get $2 local.get $7 i32.add f32.load @@ -45092,10 +44506,10 @@ i32.const 0 end i32.store - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $for-loop|0 end end @@ -45104,12 +44518,12 @@ i32.const 16 i32.const 12640 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=16 local.get $0 - local.get $4 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $0 local.get $1 @@ -45145,7 +44559,7 @@ i32.load offset=4 i32.const 8 i32.add - local.set $3 + local.set $2 i32.const 11188 i32.load local.set $6 @@ -45157,7 +44571,7 @@ local.get $7 i32.lt_s if - local.get $3 + local.get $2 local.get $1 i32.const 2 i32.shl @@ -45200,7 +44614,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $0 - local.get $2 + local.get $4 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -45215,12 +44629,12 @@ i32.const 16 i32.const 12832 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 $0 - local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -45341,6 +44755,7 @@ (local $8 f32) (local $9 f64) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -45386,21 +44801,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $4 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -45424,6 +44839,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint32Array#constructor + local.tee $10 local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -45438,12 +44854,12 @@ i32.const 66 i32.const 12896 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=16 local.get $0 - local.get $3 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -45469,19 +44885,19 @@ local.set $7 i32.const 11100 i32.load - local.set $10 + local.set $11 loop $for-loop|0 - local.get $4 - local.get $10 + local.get $3 + local.get $11 i32.lt_s if local.get $6 - local.get $4 + local.get $3 i32.const 2 i32.shl - local.tee $3 + local.tee $2 i32.add - local.get $3 + local.get $2 local.get $7 i32.add f32.load @@ -45497,10 +44913,10 @@ i32.const 0 end i32.store - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $for-loop|0 end end @@ -45509,12 +44925,12 @@ i32.const 66 i32.const 13008 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=16 local.get $0 - local.get $4 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $0 local.get $1 @@ -45550,7 +44966,7 @@ i32.load offset=4 i32.const 8 i32.add - local.set $3 + local.set $2 i32.const 11188 i32.load local.set $6 @@ -45562,7 +44978,7 @@ local.get $7 i32.lt_s if - local.get $3 + local.get $2 local.get $1 i32.const 2 i32.shl @@ -45605,7 +45021,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $0 - local.get $2 + local.get $4 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -45620,12 +45036,12 @@ i32.const 66 i32.const 13200 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 $0 - local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -45746,6 +45162,7 @@ (local $7 i32) (local $8 f32) (local $9 f64) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -45791,21 +45208,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $4 i32.store offset=4 - local.get $3 + local.get $4 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $4 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $4 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $4 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -45829,6 +45246,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int64Array#constructor + local.tee $10 local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -45841,12 +45259,12 @@ i32.const 67 i32.const 13264 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=16 local.get $0 - local.get $4 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -45866,7 +45284,7 @@ i32.load offset=4 i32.const 24 i32.add - local.set $4 + local.set $3 i32.const 11092 i32.load local.set $6 @@ -45878,7 +45296,7 @@ local.get $7 i32.lt_s if - local.get $4 + local.get $3 local.get $2 i32.const 3 i32.shl @@ -45957,7 +45375,7 @@ local.set $2 i32.const 11188 i32.load - local.set $4 + local.set $3 i32.const 11196 i32.load local.set $6 @@ -45972,7 +45390,7 @@ i32.shl local.tee $7 i32.add - local.get $4 + local.get $3 local.get $7 i32.add f64.load @@ -46008,7 +45426,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $0 - local.get $3 + local.get $4 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -46023,12 +45441,12 @@ i32.const 67 i32.const 13760 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=16 + local.get $10 local.get $0 - local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -46149,6 +45567,7 @@ (local $7 i32) (local $8 f32) (local $9 f64) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -46194,21 +45613,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $4 i32.store offset=4 - local.get $3 + local.get $4 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $4 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $4 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $4 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -46232,6 +45651,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint64Array#constructor + local.tee $10 local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -46244,12 +45664,12 @@ i32.const 68 i32.const 13872 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=16 local.get $0 - local.get $4 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -46269,7 +45689,7 @@ i32.load offset=4 i32.const 24 i32.add - local.set $4 + local.set $3 i32.const 11092 i32.load local.set $6 @@ -46281,7 +45701,7 @@ local.get $7 i32.lt_s if - local.get $4 + local.get $3 local.get $2 i32.const 3 i32.shl @@ -46360,7 +45780,7 @@ local.set $2 i32.const 11188 i32.load - local.set $4 + local.set $3 i32.const 11196 i32.load local.set $6 @@ -46375,7 +45795,7 @@ i32.shl local.tee $7 i32.add - local.get $4 + local.get $3 local.get $7 i32.add f64.load @@ -46411,7 +45831,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $0 - local.get $3 + local.get $4 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -46426,12 +45846,12 @@ i32.const 68 i32.const 14368 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=16 + local.get $10 local.get $0 - local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -46568,50 +45988,50 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $1 i64.const 0 i64.store offset=8 - local.get $3 + local.get $1 i32.const 0 i32.store offset=16 - local.get $3 + local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $0 + local.get $2 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $0 + local.get $2 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -46635,7 +46055,8 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $7 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 @@ -46643,13 +46064,13 @@ block $folding-inner0 i32.const 11020 i32.load - local.get $3 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $3 + local.get $1 i32.load offset=4 local.set $5 i32.const 11012 @@ -46657,30 +46078,28 @@ local.set $6 i32.const 11020 i32.load - local.set $7 + local.set $8 loop $for-loop|0 - local.get $1 - local.get $7 + local.get $0 + local.get $8 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.tee $8 - local.get $6 - i32.add - i32.load - local.set $9 + local.tee $9 local.get $5 - local.get $8 i32.add + local.get $6 local.get $9 + i32.add + i32.load f32.convert_i32_s f32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -46689,17 +46108,17 @@ i32.const 61 i32.const 14480 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 $3 local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - local.get $3 + local.get $1 i32.const 11088 i32.const 3 call $~lib/typedarray/Int32Array#set<~lib/array/Array> @@ -46708,62 +46127,62 @@ i32.const 61 i32.const 14592 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 $3 local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 - local.set $1 - local.get $0 + local.set $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 6 i32.add - local.get $3 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $3 + local.get $1 i32.load offset=4 i32.const 24 i32.add local.set $5 - local.get $0 + local.get $2 i32.load offset=4 local.set $6 - local.get $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 + local.set $2 loop $for-loop|01 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if local.get $5 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add local.get $6 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add i64.load f32.convert_i64_s f32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|01 end end @@ -46776,34 +46195,34 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $3 + local.get $1 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 local.set $0 - local.get $2 - i32.load offset=8 local.get $3 i32.load offset=8 + local.get $1 + i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $3 + local.get $1 i32.load offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.load offset=4 local.set $5 - local.get $2 + local.get $3 i32.load offset=8 - local.set $2 + local.set $3 loop $for-loop|03 local.get $0 - local.get $2 + local.get $3 i32.lt_s if - local.get $1 + local.get $2 local.get $0 i32.const 2 i32.shl @@ -46829,20 +46248,20 @@ i32.shr_u i32.const 4 i32.add - local.get $3 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $3 + local.get $1 i32.load offset=4 i32.const 16 i32.add - local.set $2 + local.set $3 local.get $4 i32.load offset=4 - local.set $1 + local.set $2 local.get $4 i32.load offset=8 i32.const 1 @@ -46853,12 +46272,12 @@ local.get $4 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2 i32.shl i32.add - local.get $1 + local.get $2 local.get $0 i32.const 1 i32.shl @@ -46877,48 +46296,48 @@ i32.const 11264 i32.store offset=16 i32.const 0 - local.set $2 + local.set $0 i32.const 11276 i32.load i32.const 7 i32.add - local.get $3 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $3 + local.get $1 i32.load offset=4 i32.const 28 i32.add - local.set $0 + local.set $1 i32.const 11268 i32.load - local.set $4 + local.set $3 i32.const 11276 i32.load - local.set $1 + local.set $2 loop $for-loop|09 - local.get $1 + local.get $0 local.get $2 - i32.gt_s + i32.lt_s if + local.get $1 local.get $0 - local.get $2 i32.const 2 i32.shl i32.add - local.get $2 - local.get $4 + local.get $0 + local.get $3 i32.add i32.load8_s 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|09 end end @@ -46927,12 +46346,12 @@ i32.const 61 i32.const 14720 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 - local.get $3 - local.get $2 + local.get $7 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -47049,7 +46468,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i64) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -47066,29 +46485,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i64.const 0 i64.store offset=8 - local.get $2 + local.get $1 i32.const 0 i32.store offset=16 - local.get $2 + local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $2 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $2 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -47133,7 +46552,8 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Float64Array#constructor - local.tee $2 + local.tee $8 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 @@ -47141,13 +46561,13 @@ block $folding-inner0 i32.const 11020 i32.load - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $2 + local.get $1 i32.load offset=4 local.set $5 i32.const 11012 @@ -47190,7 +46610,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $2 + local.get $1 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer @@ -47202,13 +46622,13 @@ i32.load i32.const 3 i32.add - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 24 i32.add @@ -47253,53 +46673,51 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $2 + local.get $1 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> i32.const 0 local.set $0 - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 6 i32.add - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 48 i32.add local.set $5 - local.get $1 + local.get $2 i32.load offset=4 local.set $6 - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|06 local.get $0 - local.get $1 + local.get $2 i32.lt_s if - local.get $6 + local.get $5 local.get $0 i32.const 3 i32.shl local.tee $7 i32.add - i64.load - local.set $8 - local.get $5 + local.get $6 local.get $7 i32.add - local.get $8 + i64.load f64.convert_i64_s f64.store local.get $0 @@ -47314,26 +46732,26 @@ 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 $2 local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> i32.const 0 - local.set $1 + local.set $0 local.get $3 i32.load offset=8 - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $0 + local.set $2 local.get $3 i32.load offset=4 local.set $5 @@ -47341,77 +46759,77 @@ i32.load offset=8 local.set $3 loop $for-loop|08 - local.get $1 + local.get $0 local.get $3 i32.lt_s if + local.get $2 local.get $0 - local.get $1 i32.const 3 i32.shl i32.add - local.get $1 + local.get $0 local.get $5 i32.add i32.load8_u f64.convert_i32_u f64.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|08 end end i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u i32.const 4 i32.add - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 32 i32.add local.set $3 local.get $4 i32.load offset=4 - local.set $0 + local.set $2 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.set $4 loop $for-loop|010 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add + local.get $2 local.get $0 - local.get $1 i32.const 1 i32.shl i32.add i32.load16_s 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|010 end end @@ -47419,48 +46837,48 @@ i32.const 11264 i32.store offset=16 i32.const 0 - local.set $3 + local.set $0 i32.const 11276 i32.load i32.const 7 i32.add - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 56 i32.add local.set $1 i32.const 11268 i32.load - local.set $4 + local.set $3 i32.const 11276 i32.load - local.set $0 + local.set $2 loop $for-loop|014 local.get $0 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s if local.get $1 - local.get $3 + local.get $0 i32.const 3 i32.shl i32.add + local.get $0 local.get $3 - local.get $4 i32.add i32.load8_s f64.convert_i32_s f64.store - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|014 end end @@ -47469,12 +46887,12 @@ i32.const 62 i32.const 15168 call $~lib/rt/__newArray - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=16 - local.get $2 - local.get $3 + local.get $8 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -47503,31 +46921,30 @@ (local $10 i32) (local $11 f32) (local $12 f64) - (local $13 i32) - (local $14 i64) - (local $15 f32) - (local $16 f64) + (local $13 i64) + (local $14 f32) + (local $15 f64) global.get $~lib/memory/__stack_pointer i32.const 32 i32.sub global.set $~lib/memory/__stack_pointer - 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-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 @@ -47545,7 +46962,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48187,65 +47604,65 @@ global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $3 + local.tee $4 i32.store offset=8 - 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 - local.get $3 + local.get $4 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $4 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 + local.set $2 i32.const 1 - local.get $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 1 i32.gt_s select - local.set $4 + local.set $0 i32.const 3 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 3 i32.gt_s select - local.set $0 + local.set $1 loop $for-loop|0 local.get $0 - local.get $4 - i32.gt_s + local.get $1 + i32.lt_s if - local.get $1 - local.get $4 + local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.const 1 i32.store - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|0 end end @@ -48258,7 +47675,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 @@ -48270,36 +47687,36 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.load offset=4 local.set $1 i32.const 0 - local.get $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 0 i32.gt_s select - local.set $4 + local.set $0 loop $for-loop|01 local.get $0 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if local.get $1 - local.get $4 + local.get $0 i32.const 2 i32.shl i32.add i32.const 0 i32.store - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|01 end end @@ -48312,7 +47729,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 @@ -48324,46 +47741,46 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 + local.set $2 i32.const 0 - local.get $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 0 i32.gt_s select - local.set $4 - local.get $0 + local.set $0 + local.get $1 i32.const 3 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|03 local.get $0 - local.get $4 - i32.gt_s + local.get $1 + i32.lt_s if - local.get $1 - local.get $4 + local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.const 1 i32.store - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|03 end end @@ -48376,7 +47793,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 @@ -48388,39 +47805,39 @@ call $~lib/builtins/abort unreachable end - 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.tee $0 + local.tee $1 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 $4 + local.set $0 loop $for-loop|05 local.get $0 - local.get $4 - i32.gt_s + local.get $1 + i32.lt_s if local.get $2 - local.get $4 + local.get $0 i32.const 2 i32.shl i32.add i32.const 2 i32.store - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|05 end end @@ -48433,7 +47850,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 @@ -48445,43 +47862,43 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 + local.set $2 i32.const 1 - local.get $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 1 i32.gt_s select - local.set $4 + local.set $0 i32.const 0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 + local.set $1 loop $for-loop|07 local.get $0 - local.get $4 - i32.gt_s + local.get $1 + i32.lt_s if - local.get $1 - local.get $4 + local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.const 0 i32.store - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|07 end end @@ -48494,7 +47911,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 @@ -48507,46 +47924,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#subarray - local.tee $2 + local.tee $3 i32.store offset=12 - local.get $2 + local.get $3 i32.load offset=4 local.set $1 i32.const 0 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 0 i32.gt_s select - local.set $4 + local.set $0 loop $for-loop|09 local.get $0 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if local.get $1 - local.get $4 + local.get $0 i32.const 2 i32.shl i32.add i32.const 0 i32.store - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|09 end end - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -48560,9 +47977,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.load offset=4 - local.get $2 + local.get $3 i32.load i32.sub i32.const 4 @@ -48575,7 +47992,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.load offset=8 i32.const 12 i32.ne @@ -48596,7 +48013,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/isInt32ArrayEqual i32.eqz @@ -48617,7 +48034,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 @@ -49582,7 +48999,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49590,17 +49007,17 @@ 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 @@ -49608,20 +49025,20 @@ i32.const 2896 i32.store offset=4 i32.const 0 - local.set $4 - local.get $3 + local.set $1 + 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 + local.set $2 loop $for-loop|011 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_s local.set $0 @@ -49629,16 +49046,16 @@ global.set $~argumentsLength local.get $5 local.get $0 + local.get $1 local.get $4 - local.get $3 i32.const 2896 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $5 - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|011 end end @@ -49659,7 +49076,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49667,17 +49084,17 @@ 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 @@ -49685,22 +49102,22 @@ i32.const 2928 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 i32.const 0 local.set $5 - 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 + local.set $2 loop $for-loop|010 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u local.set $0 @@ -49708,16 +49125,16 @@ global.set $~argumentsLength local.get $5 local.get $0 + local.get $1 local.get $4 - local.get $3 i32.const 2928 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $5 - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|010 end end @@ -49738,7 +49155,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49746,17 +49163,17 @@ 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 @@ -49764,22 +49181,22 @@ i32.const 2960 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 i32.const 0 local.set $5 - 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 + local.set $2 loop $for-loop|013 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u local.set $0 @@ -49787,16 +49204,16 @@ global.set $~argumentsLength local.get $5 local.get $0 + local.get $1 local.get $4 - local.get $3 i32.const 2960 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $5 - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|013 end end @@ -49817,7 +49234,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49825,17 +49242,17 @@ 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 @@ -49843,24 +49260,24 @@ i32.const 2992 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 i32.const 0 local.set $5 - 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 + local.set $2 loop $for-loop|014 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add @@ -49870,16 +49287,16 @@ global.set $~argumentsLength local.get $5 local.get $0 + local.get $1 local.get $4 - local.get $3 i32.const 2992 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $5 - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|014 end end @@ -49900,7 +49317,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49908,17 +49325,17 @@ 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 @@ -49926,24 +49343,24 @@ i32.const 3024 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 i32.const 0 local.set $5 - 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 + local.set $2 loop $for-loop|016 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add @@ -49953,16 +49370,16 @@ global.set $~argumentsLength local.get $5 local.get $0 + local.get $1 local.get $4 - local.get $3 i32.const 3024 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $5 - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|016 end end @@ -49983,7 +49400,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49991,17 +49408,17 @@ 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 @@ -50009,24 +49426,24 @@ i32.const 3056 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 i32.const 0 local.set $5 - 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 loop $for-loop|018 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add @@ -50036,16 +49453,16 @@ global.set $~argumentsLength local.get $5 local.get $0 + local.get $1 local.get $4 - local.get $3 i32.const 3056 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $5 - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|018 end end @@ -50064,7 +49481,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50072,17 +49489,17 @@ 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 @@ -50090,24 +49507,24 @@ i32.const 3088 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 i32.const 0 local.set $5 - 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 loop $for-loop|021 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add @@ -50117,16 +49534,16 @@ global.set $~argumentsLength local.get $5 local.get $0 + local.get $1 local.get $4 - local.get $3 i32.const 3088 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $5 - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|021 end end @@ -50145,7 +49562,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50153,17 +49570,17 @@ 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 @@ -50171,22 +49588,22 @@ i32.const 3120 i32.store offset=4 i32.const 0 - local.set $4 - 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|023 local.get $0 - local.get $4 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $4 i32.const 3 i32.shl i32.add @@ -50194,22 +49611,22 @@ local.set $9 i32.const 4 global.set $~argumentsLength - local.get $14 + local.get $13 local.get $9 - local.get $4 - local.get $2 + local.get $1 + local.get $3 i32.const 3120 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $14 - local.get $4 + local.set $13 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|023 end end - local.get $14 + local.get $13 i64.const 6 i64.ne br_if $folding-inner1 @@ -50224,7 +49641,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50232,17 +49649,17 @@ 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 @@ -50250,24 +49667,24 @@ i32.const 3152 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 i64.const 0 - local.set $14 - local.get $2 + local.set $13 + 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|025 local.get $0 - local.get $4 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $4 i32.const 3 i32.shl i32.add @@ -50275,22 +49692,22 @@ local.set $9 i32.const 4 global.set $~argumentsLength - local.get $14 + local.get $13 local.get $9 - local.get $4 - local.get $2 + local.get $1 + local.get $3 i32.const 3152 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $14 - local.get $4 + local.set $13 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|025 end end - local.get $14 + local.get $13 i64.const 6 i64.ne br_if $folding-inner1 @@ -50305,7 +49722,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50313,17 +49730,17 @@ 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 @@ -50331,22 +49748,22 @@ i32.const 3184 i32.store offset=4 i32.const 0 - local.set $4 - 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 2 i32.shr_u local.set $0 loop $for-loop|027 local.get $0 - local.get $4 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $4 i32.const 2 i32.shl i32.add @@ -50354,22 +49771,22 @@ local.set $11 i32.const 4 global.set $~argumentsLength - local.get $15 + local.get $14 local.get $11 - local.get $4 - local.get $2 + local.get $1 + local.get $3 i32.const 3184 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $15 - local.get $4 + local.set $14 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|027 end end - local.get $15 + local.get $14 f32.const 6 f32.ne br_if $folding-inner1 @@ -50384,7 +49801,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50392,17 +49809,17 @@ 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 @@ -50410,22 +49827,22 @@ i32.const 3216 i32.store offset=4 i32.const 0 - local.set $4 - 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|029 local.get $0 - local.get $4 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $4 i32.const 3 i32.shl i32.add @@ -50433,22 +49850,22 @@ local.set $12 i32.const 4 global.set $~argumentsLength - local.get $16 + local.get $15 local.get $12 - local.get $4 - local.get $2 + local.get $1 + local.get $3 i32.const 3216 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $16 - local.get $4 + local.set $15 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|029 end end - local.get $16 + local.get $15 f64.const 6 f64.ne br_if $folding-inner1 @@ -50463,7 +49880,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50514,7 +49931,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50565,7 +49982,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50616,7 +50033,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50667,7 +50084,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50718,7 +50135,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50769,7 +50186,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50820,7 +50237,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50871,7 +50288,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50922,7 +50339,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -50973,7 +50390,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -51024,7 +50441,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51032,17 +50449,17 @@ local.get $0 i32.const 3 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 @@ -51050,43 +50467,43 @@ i32.const 3248 i32.store offset=4 i32.const 0 - local.set $4 - 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 1 i32.sub - local.set $3 + local.set $6 loop $for-loop|031 - local.get $3 + local.get $6 i32.const 0 i32.ge_s if - local.get $1 - local.get $3 + local.get $2 + local.get $6 i32.add i32.load8_s local.set $0 i32.const 4 global.set $~argumentsLength - local.get $4 + local.get $1 local.get $0 + local.get $6 local.get $3 - local.get $2 i32.const 3248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $4 - local.get $3 + local.set $1 + local.get $6 i32.const 1 i32.sub - local.set $3 + local.set $6 br $for-loop|031 end end - local.get $4 + local.get $1 i32.const 255 i32.and i32.const 6 @@ -51103,7 +50520,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51111,17 +50528,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set @@ -51129,43 +50546,43 @@ i32.const 3280 i32.store offset=4 i32.const 0 - local.set $4 - 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 1 i32.sub - local.set $3 + local.set $6 loop $for-loop|033 - local.get $3 + local.get $6 i32.const 0 i32.ge_s if - local.get $1 - local.get $3 + local.get $2 + local.get $6 i32.add i32.load8_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $4 + local.get $1 local.get $0 + local.get $6 local.get $3 - local.get $2 i32.const 3280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $4 - local.get $3 + local.set $1 + local.get $6 i32.const 1 i32.sub - local.set $3 + local.set $6 br $for-loop|033 end end - local.get $4 + local.get $1 i32.const 255 i32.and i32.const 6 @@ -51182,7 +50599,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51190,17 +50607,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set @@ -51208,43 +50625,43 @@ i32.const 3312 i32.store offset=4 i32.const 0 - local.set $4 - 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 1 i32.sub - local.set $3 + local.set $6 loop $for-loop|036 - local.get $3 + local.get $6 i32.const 0 i32.ge_s if - local.get $1 - local.get $3 + local.get $2 + local.get $6 i32.add i32.load8_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $4 + local.get $1 local.get $0 + local.get $6 local.get $3 - local.get $2 i32.const 3312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $4 - local.get $3 + local.set $1 + local.get $6 i32.const 1 i32.sub - local.set $3 + local.set $6 br $for-loop|036 end end - local.get $4 + local.get $1 i32.const 255 i32.and i32.const 6 @@ -51261,7 +50678,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51269,17 +50686,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set @@ -51287,24 +50704,24 @@ i32.const 3344 i32.store offset=4 i32.const 0 - local.set $4 - 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 1 i32.shr_u i32.const 1 i32.sub - local.set $3 + local.set $6 loop $for-loop|038 - local.get $3 + local.get $6 i32.const 0 i32.ge_s if - local.get $1 - local.get $3 + local.get $2 + local.get $6 i32.const 1 i32.shl i32.add @@ -51312,22 +50729,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $4 + local.get $1 local.get $0 + local.get $6 local.get $3 - local.get $2 i32.const 3344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $4 - local.get $3 + local.set $1 + local.get $6 i32.const 1 i32.sub - local.set $3 + local.set $6 br $for-loop|038 end end - local.get $4 + local.get $1 i32.const 65535 i32.and i32.const 6 @@ -51344,7 +50761,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51352,17 +50769,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set @@ -51370,24 +50787,24 @@ i32.const 3376 i32.store offset=4 i32.const 0 - local.set $4 - 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 1 i32.shr_u i32.const 1 i32.sub - local.set $3 + local.set $6 loop $for-loop|040 - local.get $3 + local.get $6 i32.const 0 i32.ge_s if - local.get $1 - local.get $3 + local.get $2 + local.get $6 i32.const 1 i32.shl i32.add @@ -51395,22 +50812,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $4 + local.get $1 local.get $0 + local.get $6 local.get $3 - local.get $2 i32.const 3376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $4 - local.get $3 + local.set $1 + local.get $6 i32.const 1 i32.sub - local.set $3 + local.set $6 br $for-loop|040 end end - local.get $4 + local.get $1 i32.const 65535 i32.and i32.const 6 @@ -51427,7 +50844,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51435,17 +50852,17 @@ local.get $0 i32.const 3 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 @@ -51453,24 +50870,24 @@ i32.const 3408 i32.store offset=4 i32.const 0 - local.set $4 - 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 2 i32.shr_u i32.const 1 i32.sub - local.set $3 + local.set $6 loop $for-loop|042 - local.get $3 + local.get $6 i32.const 0 i32.ge_s if - local.get $1 - local.get $3 + local.get $2 + local.get $6 i32.const 2 i32.shl i32.add @@ -51478,22 +50895,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $4 + local.get $1 local.get $0 + local.get $6 local.get $3 - local.get $2 i32.const 3408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $4 - local.get $3 + local.set $1 + local.get $6 i32.const 1 i32.sub - local.set $3 + local.set $6 br $for-loop|042 end end - local.get $4 + local.get $1 i32.const 6 i32.ne br_if $folding-inner5 @@ -51508,7 +50925,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51516,17 +50933,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set @@ -51534,24 +50951,24 @@ i32.const 3440 i32.store offset=4 i32.const 0 - local.set $4 - 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 2 i32.shr_u i32.const 1 i32.sub - local.set $3 + local.set $6 loop $for-loop|044 - local.get $3 + local.get $6 i32.const 0 i32.ge_s if - local.get $1 - local.get $3 + local.get $2 + local.get $6 i32.const 2 i32.shl i32.add @@ -51559,22 +50976,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $4 + local.get $1 local.get $0 + local.get $6 local.get $3 - local.get $2 i32.const 3440 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $4 - local.get $3 + local.set $1 + local.get $6 i32.const 1 i32.sub - local.set $3 + local.set $6 br $for-loop|044 end end - local.get $4 + local.get $1 i32.const 6 i32.ne br_if $folding-inner5 @@ -51589,7 +51006,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51615,7 +51032,7 @@ i32.const 3472 i32.store offset=4 i64.const 0 - local.set $14 + local.set $13 local.get $1 i32.load offset=4 local.set $0 @@ -51625,14 +51042,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $3 + local.set $6 loop $for-loop|046 - local.get $3 + local.get $6 i32.const 0 i32.ge_s if local.get $0 - local.get $3 + local.get $6 i32.const 3 i32.shl i32.add @@ -51640,22 +51057,22 @@ local.set $9 i32.const 4 global.set $~argumentsLength - local.get $14 + local.get $13 local.get $9 - local.get $3 + local.get $6 local.get $1 i32.const 3472 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $14 - local.get $3 + local.set $13 + local.get $6 i32.const 1 i32.sub - local.set $3 + local.set $6 br $for-loop|046 end end - local.get $14 + local.get $13 i64.const 6 i64.ne br_if $folding-inner5 @@ -51670,7 +51087,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51696,7 +51113,7 @@ i32.const 3504 i32.store offset=4 i64.const 0 - local.set $14 + local.set $13 local.get $1 i32.load offset=4 local.set $0 @@ -51706,14 +51123,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $3 + local.set $6 loop $for-loop|048 - local.get $3 + local.get $6 i32.const 0 i32.ge_s if local.get $0 - local.get $3 + local.get $6 i32.const 3 i32.shl i32.add @@ -51721,22 +51138,22 @@ local.set $9 i32.const 4 global.set $~argumentsLength - local.get $14 + local.get $13 local.get $9 - local.get $3 + local.get $6 local.get $1 i32.const 3504 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $14 - local.get $3 + local.set $13 + local.get $6 i32.const 1 i32.sub - local.set $3 + local.set $6 br $for-loop|048 end end - local.get $14 + local.get $13 i64.const 6 i64.ne br_if $folding-inner5 @@ -51751,7 +51168,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51777,7 +51194,7 @@ i32.const 3536 i32.store offset=4 f32.const 0 - local.set $15 + local.set $14 local.get $1 i32.load offset=4 local.set $0 @@ -51787,14 +51204,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $3 + local.set $6 loop $for-loop|050 - local.get $3 + local.get $6 i32.const 0 i32.ge_s if local.get $0 - local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -51802,22 +51219,22 @@ local.set $11 i32.const 4 global.set $~argumentsLength - local.get $15 + local.get $14 local.get $11 - local.get $3 + local.get $6 local.get $1 i32.const 3536 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $15 - local.get $3 + local.set $14 + local.get $6 i32.const 1 i32.sub - local.set $3 + local.set $6 br $for-loop|050 end end - local.get $15 + local.get $14 f32.const 6 f32.ne br_if $folding-inner5 @@ -51832,7 +51249,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51858,7 +51275,7 @@ i32.const 3568 i32.store offset=4 f64.const 0 - local.set $16 + local.set $15 local.get $1 i32.load offset=4 local.set $0 @@ -51868,14 +51285,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $3 + local.set $6 loop $for-loop|052 - local.get $3 + local.get $6 i32.const 0 i32.ge_s if local.get $0 - local.get $3 + local.get $6 i32.const 3 i32.shl i32.add @@ -51883,22 +51300,22 @@ local.set $12 i32.const 4 global.set $~argumentsLength - local.get $16 + local.get $15 local.get $12 - local.get $3 + local.get $6 local.get $1 i32.const 3568 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $16 - local.get $3 + local.set $15 + local.get $6 i32.const 1 i32.sub - local.set $3 + local.set $6 br $for-loop|052 end end - local.get $16 + local.get $15 f64.const 6 f64.ne br_if $folding-inner5 @@ -51906,6 +51323,8 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51913,7 +51332,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51924,56 +51343,56 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $7 + local.tee $5 i32.store - local.get $7 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $7 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $7 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 3600 i32.store offset=4 - local.get $3 + local.get $0 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-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $7 + local.get $5 i32.load offset=8 - local.set $5 - local.get $7 + local.set $3 + local.get $5 i32.load offset=4 local.set $2 - local.get $0 + local.get $1 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.const 0 call $~lib/rt/itcms/__new local.tee $4 i32.store offset=4 loop $for-loop|02 - local.get $5 + local.get $3 local.get $6 i32.gt_s if @@ -51989,7 +51408,7 @@ i32.add local.get $1 local.get $6 - local.get $7 + local.get $5 i32.const 3600 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -52001,43 +51420,43 @@ br $for-loop|02 end end - local.get $0 + local.get $7 local.get $4 i32.store - local.get $0 + local.get $7 local.get $4 call $~lib/rt/itcms/__link - local.get $0 + local.get $7 local.get $4 i32.store offset=4 - local.get $0 - local.get $5 + local.get $7 + 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 $3 local.get $0 + local.get $7 i32.store offset=8 - local.get $0 + local.get $7 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner18 - local.get $0 + br_if $folding-inner20 + local.get $7 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 4 i32.ne - br_if $folding-inner19 - local.get $0 + br_if $folding-inner21 + local.get $7 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 9 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -52051,7 +51470,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52062,56 +51481,56 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $7 + local.tee $5 i32.store - local.get $7 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 3632 i32.store offset=4 - local.get $3 + local.get $0 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-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $7 + local.get $5 i32.load offset=8 - local.set $5 - local.get $7 + local.set $3 + local.get $5 i32.load offset=4 local.set $2 - local.get $0 + local.get $1 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.const 0 call $~lib/rt/itcms/__new local.tee $4 i32.store offset=4 loop $for-loop|04 - local.get $5 + local.get $3 local.get $6 i32.gt_s if @@ -52127,7 +51546,7 @@ i32.add local.get $1 local.get $6 - local.get $7 + local.get $5 i32.const 3632 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -52139,43 +51558,43 @@ br $for-loop|04 end end - local.get $0 + local.get $7 local.get $4 i32.store - local.get $0 + local.get $7 local.get $4 call $~lib/rt/itcms/__link - local.get $0 + local.get $7 local.get $4 i32.store offset=4 - local.get $0 - local.get $5 + local.get $7 + 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 $3 local.get $0 + local.get $7 i32.store offset=8 - local.get $0 + local.get $7 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner18 - local.get $0 + br_if $folding-inner20 + local.get $7 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 4 i32.ne - br_if $folding-inner19 - local.get $0 + br_if $folding-inner21 + local.get $7 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 9 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -52189,7 +51608,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52200,56 +51619,56 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $7 + local.tee $5 i32.store - local.get $7 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $7 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $7 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 3664 i32.store offset=4 - local.get $3 + local.get $0 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-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $7 + local.get $5 i32.load offset=8 - local.set $5 - local.get $7 + local.set $3 + local.get $5 i32.load offset=4 local.set $2 - local.get $0 + local.get $1 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.const 0 call $~lib/rt/itcms/__new local.tee $4 i32.store offset=4 loop $for-loop|06 - local.get $5 + local.get $3 local.get $6 i32.gt_s if @@ -52265,7 +51684,7 @@ i32.add local.get $1 local.get $6 - local.get $7 + local.get $5 i32.const 3664 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -52277,49 +51696,49 @@ br $for-loop|06 end end - local.get $0 + local.get $7 local.get $4 i32.store - local.get $0 + local.get $7 local.get $4 call $~lib/rt/itcms/__link - local.get $0 + local.get $7 local.get $4 i32.store offset=4 - local.get $0 - local.get $5 + local.get $7 + 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 $3 local.get $0 + local.get $7 i32.store offset=8 - local.get $0 + local.get $7 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner18 - local.get $0 + br_if $folding-inner20 + local.get $7 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 i32.ne - br_if $folding-inner19 - local.get $0 + br_if $folding-inner21 + local.get $7 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 9 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52327,7 +51746,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52353,17 +51772,17 @@ i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 3696 i32.store offset=4 - local.get $4 + local.get $5 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-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52372,7 +51791,7 @@ i32.load offset=8 i32.const 1 i32.shr_u - local.set $5 + local.set $4 local.get $8 i32.load offset=4 local.set $3 @@ -52383,21 +51802,21 @@ local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 1 i32.shl local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store offset=4 loop $for-loop|08 - local.get $5 - local.get $6 + local.get $4 + local.get $7 i32.gt_s if local.get $3 - local.get $6 + local.get $7 i32.const 1 i32.shl local.tee $1 @@ -52407,30 +51826,30 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $7 + local.get $6 i32.add local.get $0 - local.get $6 + local.get $7 local.get $8 i32.const 3696 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|08 end end local.get $10 - local.get $7 + local.get $6 i32.store local.get $10 - local.get $7 + local.get $6 call $~lib/rt/itcms/__link local.get $10 - local.get $7 + local.get $6 i32.store offset=4 local.get $10 local.get $2 @@ -52439,7 +51858,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 local.get $10 i32.store offset=8 local.get $10 @@ -52447,25 +51866,25 @@ call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 local.get $10 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 4 i32.ne - br_if $folding-inner19 + br_if $folding-inner21 local.get $10 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 9 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52473,7 +51892,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52499,17 +51918,17 @@ i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 3728 i32.store offset=4 - local.get $4 + local.get $5 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-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52518,7 +51937,7 @@ i32.load offset=8 i32.const 1 i32.shr_u - local.set $5 + local.set $4 local.get $8 i32.load offset=4 local.set $3 @@ -52529,21 +51948,21 @@ local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 1 i32.shl local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store offset=4 loop $for-loop|012 - local.get $5 - local.get $6 + local.get $4 + local.get $7 i32.gt_s if local.get $3 - local.get $6 + local.get $7 i32.const 1 i32.shl local.tee $1 @@ -52553,30 +51972,30 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $7 + local.get $6 i32.add local.get $0 - local.get $6 + local.get $7 local.get $8 i32.const 3728 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|012 end end local.get $10 - local.get $7 + local.get $6 i32.store local.get $10 - local.get $7 + local.get $6 call $~lib/rt/itcms/__link local.get $10 - local.get $7 + local.get $6 i32.store offset=4 local.get $10 local.get $2 @@ -52585,7 +52004,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 local.get $10 i32.store offset=8 local.get $10 @@ -52593,25 +52012,25 @@ call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 local.get $10 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 4 i32.ne - br_if $folding-inner19 + br_if $folding-inner21 local.get $10 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 9 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52619,7 +52038,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52645,17 +52064,17 @@ i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 3760 i32.store offset=4 - local.get $4 + local.get $5 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-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52664,7 +52083,7 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $5 + local.set $4 local.get $8 i32.load offset=4 local.set $3 @@ -52675,21 +52094,21 @@ local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 2 i32.shl local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store offset=4 loop $for-loop|015 - local.get $5 - local.get $6 + local.get $4 + local.get $7 i32.gt_s if local.get $3 - local.get $6 + local.get $7 i32.const 2 i32.shl local.tee $1 @@ -52699,30 +52118,30 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $7 + local.get $6 i32.add local.get $0 - local.get $6 + local.get $7 local.get $8 i32.const 3760 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|015 end end local.get $10 - local.get $7 + local.get $6 i32.store local.get $10 - local.get $7 + local.get $6 call $~lib/rt/itcms/__link local.get $10 - local.get $7 + local.get $6 i32.store offset=4 local.get $10 local.get $2 @@ -52731,7 +52150,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 local.get $10 i32.store offset=8 local.get $10 @@ -52739,25 +52158,25 @@ call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 local.get $10 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 4 i32.ne - br_if $folding-inner19 + br_if $folding-inner21 local.get $10 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 9 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52765,7 +52184,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52791,17 +52210,17 @@ i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 3792 i32.store offset=4 - local.get $4 + local.get $5 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-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52810,7 +52229,7 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $5 + local.set $4 local.get $8 i32.load offset=4 local.set $3 @@ -52821,21 +52240,21 @@ local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 2 i32.shl local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store offset=4 loop $for-loop|017 - local.get $5 - local.get $6 + local.get $4 + local.get $7 i32.gt_s if local.get $3 - local.get $6 + local.get $7 i32.const 2 i32.shl local.tee $1 @@ -52845,30 +52264,30 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $7 + local.get $6 i32.add local.get $0 - local.get $6 + local.get $7 local.get $8 i32.const 3792 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|017 end end local.get $10 - local.get $7 + local.get $6 i32.store local.get $10 - local.get $7 + local.get $6 call $~lib/rt/itcms/__link local.get $10 - local.get $7 + local.get $6 i32.store offset=4 local.get $10 local.get $2 @@ -52877,7 +52296,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 local.get $10 i32.store offset=8 local.get $10 @@ -52885,25 +52304,25 @@ call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 local.get $10 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 4 i32.ne - br_if $folding-inner19 + br_if $folding-inner21 local.get $10 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 9 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52911,7 +52330,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52922,42 +52341,42 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $7 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $7 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 i32.const 3824 i32.store offset=4 - local.get $5 + local.get $4 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-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $6 + local.get $7 i32.load offset=8 i32.const 3 i32.shr_u local.set $3 - local.get $6 + local.get $7 i32.load offset=4 local.set $2 local.get $0 @@ -52973,15 +52392,15 @@ local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store offset=4 loop $for-loop|019 local.get $3 - local.get $7 + local.get $6 i32.gt_s if local.get $2 - local.get $7 + local.get $6 i32.const 3 i32.shl local.tee $0 @@ -52991,30 +52410,30 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $5 i32.add local.get $9 - local.get $7 local.get $6 + local.get $7 i32.const 3824 i32.load call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|019 end end local.get $8 - local.get $4 + local.get $5 i32.store local.get $8 - local.get $4 + local.get $5 call $~lib/rt/itcms/__link local.get $8 - local.get $4 + local.get $5 i32.store offset=4 local.get $8 local.get $1 @@ -53023,7 +52442,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 local.get $8 i32.store offset=8 local.get $8 @@ -53031,25 +52450,25 @@ call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner18 + br_if $folding-inner20 local.get $8 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 4 i64.ne - br_if $folding-inner19 + br_if $folding-inner21 local.get $8 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 9 i64.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -53057,7 +52476,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53068,42 +52487,42 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $6 + local.get $7 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $6 + local.get $7 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 i32.const 3856 i32.store offset=4 - local.get $5 + local.get $4 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-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $6 + local.get $7 i32.load offset=8 i32.const 3 i32.shr_u local.set $3 - local.get $6 + local.get $7 i32.load offset=4 local.set $2 local.get $0 @@ -53119,15 +52538,15 @@ local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store offset=4 loop $for-loop|022 local.get $3 - local.get $7 + local.get $6 i32.gt_s if local.get $2 - local.get $7 + local.get $6 i32.const 3 i32.shl local.tee $0 @@ -53137,30 +52556,30 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $5 i32.add local.get $9 - local.get $7 local.get $6 + local.get $7 i32.const 3856 i32.load call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|022 end end local.get $8 - local.get $4 + local.get $5 i32.store local.get $8 - local.get $4 + local.get $5 call $~lib/rt/itcms/__link local.get $8 - local.get $4 + local.get $5 i32.store offset=4 local.get $8 local.get $1 @@ -53169,7 +52588,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 local.get $8 i32.store offset=8 local.get $8 @@ -53177,25 +52596,25 @@ call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner18 + br_if $folding-inner20 local.get $8 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 4 i64.ne - br_if $folding-inner19 + br_if $folding-inner21 local.get $8 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 9 i64.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -53203,7 +52622,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53214,42 +52633,42 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $6 + local.get $7 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $6 + local.get $7 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 i32.const 3888 i32.store offset=4 - local.get $5 + local.get $4 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-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $6 + local.get $7 i32.load offset=8 i32.const 2 i32.shr_u local.set $3 - local.get $6 + local.get $7 i32.load offset=4 local.set $2 local.get $0 @@ -53265,15 +52684,15 @@ local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store offset=4 loop $for-loop|024 local.get $3 - local.get $7 + local.get $6 i32.gt_s if local.get $2 - local.get $7 + local.get $6 i32.const 2 i32.shl local.tee $0 @@ -53283,30 +52702,30 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $5 i32.add local.get $11 - local.get $7 local.get $6 + local.get $7 i32.const 3888 i32.load call_indirect $0 (type $f32_i32_i32_=>_f32) f32.store - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|024 end end local.get $8 - local.get $4 + local.get $5 i32.store local.get $8 - local.get $4 + local.get $5 call $~lib/rt/itcms/__link local.get $8 - local.get $4 + local.get $5 i32.store offset=4 local.get $8 local.get $1 @@ -53315,7 +52734,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 local.get $8 i32.store offset=8 local.get $8 @@ -53323,25 +52742,25 @@ call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne - br_if $folding-inner18 + br_if $folding-inner20 local.get $8 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 4 f32.ne - br_if $folding-inner19 + br_if $folding-inner21 local.get $8 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 9 f32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -53349,7 +52768,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53360,42 +52779,42 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $6 + local.get $7 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $6 + local.get $7 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 i32.const 3920 i32.store offset=4 - local.get $5 + local.get $4 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-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $6 + local.get $7 i32.load offset=8 i32.const 3 i32.shr_u local.set $3 - local.get $6 + local.get $7 i32.load offset=4 local.set $2 local.get $0 @@ -53411,15 +52830,15 @@ local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store offset=4 loop $for-loop|026 local.get $3 - local.get $7 + local.get $6 i32.gt_s if local.get $2 - local.get $7 + local.get $6 i32.const 3 i32.shl local.tee $0 @@ -53429,30 +52848,30 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $5 i32.add local.get $12 - local.get $7 local.get $6 + local.get $7 i32.const 3920 i32.load call_indirect $0 (type $f64_i32_i32_=>_f64) f64.store - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|026 end end local.get $8 - local.get $4 + local.get $5 i32.store local.get $8 - local.get $4 + local.get $5 call $~lib/rt/itcms/__link local.get $8 - local.get $4 + local.get $5 i32.store offset=4 local.get $8 local.get $1 @@ -53461,7 +52880,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 local.get $8 i32.store offset=8 local.get $8 @@ -53469,19 +52888,19 @@ call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne - br_if $folding-inner18 + br_if $folding-inner20 local.get $8 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 4 f64.ne - br_if $folding-inner19 + br_if $folding-inner21 local.get $8 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 9 f64.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -53504,7 +52923,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53530,21 +52949,21 @@ i32.const 4304 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 - local.set $1 + local.set $2 loop $for-loop|045 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_s local.set $0 @@ -53552,17 +52971,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $4 + local.get $1 local.get $5 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 $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|045 end end @@ -53574,21 +52993,21 @@ i32.const 4336 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.047 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 - local.set $1 + local.set $2 loop $for-loop|049 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_s local.set $0 @@ -53596,17 +53015,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 4336 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.047 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|049 end end @@ -53624,7 +53043,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53650,21 +53069,21 @@ i32.const 4368 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 - local.set $1 + local.set $2 loop $for-loop|051 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u local.set $0 @@ -53672,17 +53091,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $4 + local.get $1 local.get $5 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 $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|051 end end @@ -53694,21 +53113,21 @@ i32.const 4400 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.053 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 - local.set $1 + local.set $2 loop $for-loop|054 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u local.set $0 @@ -53716,17 +53135,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 4400 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.053 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|054 end end @@ -53744,7 +53163,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53770,21 +53189,21 @@ i32.const 4432 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.057 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 - local.set $1 + local.set $2 loop $for-loop|058 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u local.set $0 @@ -53792,17 +53211,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 4432 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.057 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|058 end end @@ -53814,21 +53233,21 @@ i32.const 4464 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.060 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 - local.set $1 + local.set $2 loop $for-loop|061 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u local.set $0 @@ -53836,17 +53255,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 4464 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.060 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|061 end end @@ -53864,7 +53283,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53890,23 +53309,23 @@ i32.const 4496 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|063 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add @@ -53916,17 +53335,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $4 + local.get $1 local.get $5 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 $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|063 end end @@ -53938,23 +53357,23 @@ i32.const 4528 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.065 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|066 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add @@ -53964,17 +53383,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 4528 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.065 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|066 end end @@ -53992,7 +53411,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54018,23 +53437,23 @@ i32.const 4560 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|068 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add @@ -54044,17 +53463,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $4 + local.get $1 local.get $5 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 $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|068 end end @@ -54066,23 +53485,23 @@ i32.const 4592 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.070 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|071 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add @@ -54092,17 +53511,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 4592 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.070 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|071 end end @@ -54120,7 +53539,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54146,23 +53565,23 @@ i32.const 4624 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|073 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add @@ -54172,17 +53591,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $4 + local.get $1 local.get $5 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 $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|073 end end @@ -54194,23 +53613,23 @@ i32.const 4656 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.075 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|076 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add @@ -54220,17 +53639,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 4656 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.075 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|076 end end @@ -54248,7 +53667,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54274,23 +53693,23 @@ i32.const 4688 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|078 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add @@ -54300,17 +53719,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $4 + local.get $1 local.get $5 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 $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|078 end end @@ -54322,23 +53741,23 @@ i32.const 4720 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.080 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|081 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add @@ -54348,17 +53767,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 4720 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.080 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|081 end end @@ -54376,7 +53795,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54384,17 +53803,17 @@ local.get $0 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 @@ -54402,23 +53821,23 @@ i32.const 4752 i32.store offset=4 i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 - local.get $3 + local.set $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|083 local.get $0 - local.get $5 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $5 i32.const 3 i32.shl i32.add @@ -54428,17 +53847,17 @@ global.set $~argumentsLength i32.const 1 local.get $9 - local.get $5 - local.get $3 + local.get $1 + 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 $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|083 end end @@ -54450,23 +53869,23 @@ i32.const 4784 i32.store offset=4 i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.085 (result i32) - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 - local.get $3 + local.set $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|086 local.get $0 - local.get $5 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $5 i32.const 3 i32.shl i32.add @@ -54476,17 +53895,17 @@ global.set $~argumentsLength i32.const 1 local.get $9 - local.get $5 - local.get $3 + local.get $1 + 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.085 drop - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|086 end end @@ -54504,7 +53923,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54512,17 +53931,17 @@ local.get $0 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 @@ -54530,23 +53949,23 @@ i32.const 4816 i32.store offset=4 i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 - local.get $3 + local.set $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|088 local.get $0 - local.get $5 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $5 i32.const 3 i32.shl i32.add @@ -54556,17 +53975,17 @@ global.set $~argumentsLength i32.const 1 local.get $9 - local.get $5 - local.get $3 + local.get $1 + 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 $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|088 end end @@ -54578,23 +53997,23 @@ i32.const 4848 i32.store offset=4 i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.090 (result i32) - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 - local.get $3 + local.set $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|091 local.get $0 - local.get $5 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $5 i32.const 3 i32.shl i32.add @@ -54604,17 +54023,17 @@ global.set $~argumentsLength i32.const 1 local.get $9 - local.get $5 - local.get $3 + local.get $1 + 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.090 drop - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|091 end end @@ -54632,7 +54051,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54640,17 +54059,17 @@ local.get $0 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 @@ -54658,23 +54077,23 @@ i32.const 4880 i32.store offset=4 i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 - local.get $3 + local.set $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 loop $for-loop|093 local.get $0 - local.get $5 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $5 i32.const 2 i32.shl i32.add @@ -54684,17 +54103,17 @@ global.set $~argumentsLength i32.const 1 local.get $11 - local.get $5 - local.get $3 + local.get $1 + 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 $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|093 end end @@ -54706,23 +54125,23 @@ i32.const 4912 i32.store offset=4 i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.095 (result i32) - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 - local.get $3 + local.set $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 loop $for-loop|096 local.get $0 - local.get $5 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $5 i32.const 2 i32.shl i32.add @@ -54732,17 +54151,17 @@ global.set $~argumentsLength i32.const 1 local.get $11 - local.get $5 - local.get $3 + local.get $1 + 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.095 drop - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|096 end end @@ -54760,7 +54179,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54768,17 +54187,17 @@ local.get $0 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 @@ -54786,23 +54205,23 @@ i32.const 4944 i32.store offset=4 i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 - local.get $3 + local.set $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|098 local.get $0 - local.get $5 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $5 i32.const 3 i32.shl i32.add @@ -54812,17 +54231,17 @@ global.set $~argumentsLength i32.const 1 local.get $12 - local.get $5 - local.get $3 + local.get $1 + 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 $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|098 end end @@ -54834,23 +54253,23 @@ i32.const 4976 i32.store offset=4 i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0100 (result i32) - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 - local.get $3 + local.set $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0101 local.get $0 - local.get $5 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $5 i32.const 3 i32.shl i32.add @@ -54860,17 +54279,17 @@ global.set $~argumentsLength i32.const 1 local.get $12 - local.get $5 - local.get $3 + local.get $1 + 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.0100 drop - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|0101 end end @@ -54888,7 +54307,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54896,17 +54315,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set @@ -54915,10 +54334,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 local.set $3 - local.get $5 + local.get $4 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 @@ -54934,7 +54353,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5008 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54958,10 +54377,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 local.set $3 - local.get $5 + local.get $4 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0105 @@ -54977,7 +54396,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5040 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55007,7 +54426,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55015,17 +54434,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set @@ -55034,10 +54453,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 local.set $3 - local.get $5 + local.get $4 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 @@ -55053,7 +54472,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5072 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55077,10 +54496,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 local.set $3 - local.get $5 + local.get $4 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0110 @@ -55096,7 +54515,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5104 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55126,7 +54545,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55134,17 +54553,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set @@ -55153,10 +54572,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 local.set $3 - local.get $5 + local.get $4 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0114 @@ -55172,7 +54591,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5136 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55196,10 +54615,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 local.set $3 - local.get $5 + local.get $4 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0117 @@ -55215,7 +54634,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5168 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55245,7 +54664,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55253,17 +54672,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set @@ -55272,10 +54691,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 local.set $3 - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -55295,7 +54714,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5200 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55319,10 +54738,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 local.set $3 - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -55342,7 +54761,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5232 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55372,7 +54791,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55380,17 +54799,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set @@ -55399,10 +54818,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 local.set $3 - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -55422,7 +54841,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5264 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55446,10 +54865,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 local.set $3 - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -55469,7 +54888,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5296 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55499,7 +54918,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55507,17 +54926,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set @@ -55526,10 +54945,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 local.set $3 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -55549,7 +54968,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5328 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55573,10 +54992,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 local.set $3 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -55596,7 +55015,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5360 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55626,7 +55045,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55634,17 +55053,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set @@ -55653,10 +55072,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 local.set $3 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -55676,7 +55095,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5392 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55700,10 +55119,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 local.set $3 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -55723,7 +55142,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5424 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55753,7 +55172,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55880,7 +55299,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56007,7 +55426,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56134,7 +55553,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56261,7 +55680,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56380,7 +55799,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56499,7 +55918,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56618,7 +56037,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56745,7 +56164,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56872,7 +56291,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56999,7 +56418,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57126,7 +56545,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57253,7 +56672,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57380,7 +56799,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57507,7 +56926,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57634,7 +57053,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57660,21 +57079,21 @@ i32.const 6416 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 - local.set $1 + local.set $2 loop $for-loop|0217 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_s local.set $0 @@ -57682,7 +57101,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 6416 i32.load @@ -57690,10 +57109,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0217 end end @@ -57705,21 +57124,21 @@ i32.const 6448 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0219 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 - local.set $1 + local.set $2 loop $for-loop|0220 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_s local.set $0 @@ -57727,7 +57146,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 6448 i32.load @@ -57735,10 +57154,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0219 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0220 end end @@ -57756,7 +57175,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57782,21 +57201,21 @@ i32.const 6480 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 - local.set $1 + local.set $2 loop $for-loop|0222 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u local.set $0 @@ -57804,7 +57223,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 6480 i32.load @@ -57812,10 +57231,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0222 end end @@ -57827,21 +57246,21 @@ i32.const 6512 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0224 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 - local.set $1 + local.set $2 loop $for-loop|0225 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u local.set $0 @@ -57849,7 +57268,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 6512 i32.load @@ -57857,10 +57276,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0224 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0225 end end @@ -57878,7 +57297,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57904,21 +57323,21 @@ i32.const 6544 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0228 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 - local.set $1 + local.set $2 loop $for-loop|0229 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u local.set $0 @@ -57926,7 +57345,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 6544 i32.load @@ -57934,10 +57353,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0228 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0229 end end @@ -57949,21 +57368,21 @@ i32.const 6576 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0231 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 - local.set $1 + local.set $2 loop $for-loop|0232 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u local.set $0 @@ -57971,7 +57390,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 6576 i32.load @@ -57979,10 +57398,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0231 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0232 end end @@ -58000,7 +57419,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58026,23 +57445,23 @@ i32.const 6608 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|0234 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add @@ -58052,7 +57471,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 6608 i32.load @@ -58060,10 +57479,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0234 end end @@ -58075,23 +57494,23 @@ i32.const 6640 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0236 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|0237 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add @@ -58101,7 +57520,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 6640 i32.load @@ -58109,10 +57528,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0236 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0237 end end @@ -58130,7 +57549,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58156,23 +57575,23 @@ i32.const 6672 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|0239 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add @@ -58182,7 +57601,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 6672 i32.load @@ -58190,10 +57609,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0239 end end @@ -58205,23 +57624,23 @@ i32.const 6704 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0241 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|0242 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add @@ -58231,7 +57650,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 6704 i32.load @@ -58239,10 +57658,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0241 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0242 end end @@ -58260,7 +57679,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58286,23 +57705,23 @@ i32.const 6736 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|0244 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add @@ -58312,7 +57731,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 6736 i32.load @@ -58320,10 +57739,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0244 end end @@ -58335,23 +57754,23 @@ i32.const 6768 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0246 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|0247 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add @@ -58361,7 +57780,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 6768 i32.load @@ -58369,10 +57788,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0246 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0247 end end @@ -58390,7 +57809,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58416,23 +57835,23 @@ i32.const 6800 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|0249 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add @@ -58442,7 +57861,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 6800 i32.load @@ -58450,10 +57869,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0249 end end @@ -58465,23 +57884,23 @@ i32.const 6832 i32.store offset=4 i32.const 0 - local.set $4 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0251 (result i32) local.get $5 i32.load offset=4 - local.set $2 + local.set $3 local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|0252 local.get $1 - local.get $4 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add @@ -58491,7 +57910,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $4 + local.get $1 local.get $5 i32.const 6832 i32.load @@ -58499,10 +57918,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0251 drop - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0252 end end @@ -58520,7 +57939,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58528,17 +57947,17 @@ local.get $0 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 @@ -58546,23 +57965,23 @@ i32.const 6864 i32.store offset=4 i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 - local.get $3 + local.set $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0254 local.get $0 - local.get $5 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $5 i32.const 3 i32.shl i32.add @@ -58572,18 +57991,18 @@ global.set $~argumentsLength i32.const 0 local.get $9 - local.get $5 - local.get $3 + local.get $1 + 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 $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|0254 end end @@ -58595,23 +58014,23 @@ i32.const 6896 i32.store offset=4 i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0256 (result i32) - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 - local.get $3 + local.set $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0257 local.get $0 - local.get $5 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $5 i32.const 3 i32.shl i32.add @@ -58621,18 +58040,18 @@ global.set $~argumentsLength i32.const 0 local.get $9 - local.get $5 - local.get $3 + local.get $1 + 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.0256 drop - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|0257 end end @@ -58650,7 +58069,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58658,17 +58077,17 @@ local.get $0 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 @@ -58676,23 +58095,23 @@ i32.const 6928 i32.store offset=4 i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 - local.get $3 + local.set $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0259 local.get $0 - local.get $5 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $5 i32.const 3 i32.shl i32.add @@ -58702,18 +58121,18 @@ global.set $~argumentsLength i32.const 0 local.get $9 - local.get $5 - local.get $3 + local.get $1 + 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 $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|0259 end end @@ -58725,23 +58144,23 @@ i32.const 6960 i32.store offset=4 i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0261 (result i32) - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 - local.get $3 + local.set $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0262 local.get $0 - local.get $5 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $5 i32.const 3 i32.shl i32.add @@ -58751,18 +58170,18 @@ global.set $~argumentsLength i32.const 0 local.get $9 - local.get $5 - local.get $3 + local.get $1 + 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.0261 drop - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|0262 end end @@ -58780,7 +58199,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58788,17 +58207,17 @@ local.get $0 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 @@ -58806,23 +58225,23 @@ i32.const 6992 i32.store offset=4 i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 - local.get $3 + local.set $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 loop $for-loop|0264 local.get $0 - local.get $5 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $5 i32.const 2 i32.shl i32.add @@ -58832,18 +58251,18 @@ global.set $~argumentsLength i32.const 0 local.get $11 - local.get $5 - local.get $3 + local.get $1 + 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 $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|0264 end end @@ -58855,23 +58274,23 @@ i32.const 7024 i32.store offset=4 i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0266 (result i32) - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 - local.get $3 + local.set $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 loop $for-loop|0267 local.get $0 - local.get $5 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $5 i32.const 2 i32.shl i32.add @@ -58881,18 +58300,18 @@ global.set $~argumentsLength i32.const 0 local.get $11 - local.get $5 - local.get $3 + local.get $1 + 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.0266 drop - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|0267 end end @@ -58910,7 +58329,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58918,17 +58337,17 @@ local.get $0 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 @@ -58936,23 +58355,23 @@ i32.const 7056 i32.store offset=4 i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 - local.get $3 + local.set $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0269 local.get $0 - local.get $5 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $5 i32.const 3 i32.shl i32.add @@ -58962,18 +58381,18 @@ global.set $~argumentsLength i32.const 0 local.get $12 - local.get $5 - local.get $3 + local.get $1 + 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 $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|0269 end end @@ -58985,23 +58404,23 @@ i32.const 7088 i32.store offset=4 i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0271 (result i32) - local.get $3 + local.get $4 i32.load offset=4 - local.set $1 - local.get $3 + local.set $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0272 local.get $0 - local.get $5 + local.get $1 i32.gt_s if + local.get $2 local.get $1 - local.get $5 i32.const 3 i32.shl i32.add @@ -59011,18 +58430,18 @@ global.set $~argumentsLength i32.const 0 local.get $12 - local.get $5 - local.get $3 + local.get $1 + 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.0271 drop - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|0272 end end @@ -59040,7 +58459,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59053,14 +58472,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 @@ -59070,7 +58489,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 @@ -59080,7 +58499,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 @@ -59091,33 +58510,33 @@ i32.const 7200 i32.store offset=8 i32.const 0 - local.set $4 - local.get $3 + local.set $0 + 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 + local.set $2 loop $for-loop|054274 - local.get $1 - local.get $4 - i32.gt_s + local.get $0 + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $0 + local.get $3 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength + local.get $0 local.get $4 - local.get $3 i32.const 7200 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|054274 end end @@ -59136,7 +58555,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59149,14 +58568,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 @@ -59167,7 +58586,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 @@ -59178,7 +58597,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 @@ -59190,34 +58609,34 @@ i32.const 7232 i32.store offset=8 i32.const 0 - local.set $5 - local.get $3 + local.set $0 + 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|0276 - local.get $1 - local.get $5 - i32.gt_s + local.set $2 + loop $for-loop|056 + local.get $0 + local.get $2 + i32.lt_s if - local.get $2 - local.get $5 + local.get $0 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $3 + local.get $0 + local.get $4 i32.const 7232 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $5 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|0276 + local.set $0 + br $for-loop|056 end end global.get $std/typedarray/forEachCallCount @@ -59235,7 +58654,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59248,14 +58667,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 @@ -59266,7 +58685,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 @@ -59277,7 +58696,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 @@ -59289,34 +58708,34 @@ i32.const 7264 i32.store offset=8 i32.const 0 - local.set $5 - local.get $3 + local.set $0 + 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|0279 - local.get $1 - local.get $5 - i32.gt_s + local.set $2 + loop $for-loop|059 + local.get $0 + local.get $2 + i32.lt_s if - local.get $2 - local.get $5 + local.get $0 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $3 + local.get $0 + local.get $4 i32.const 7264 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $5 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|0279 + local.set $0 + br $for-loop|059 end end global.get $std/typedarray/forEachCallCount @@ -59334,7 +58753,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59347,14 +58766,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 @@ -59364,7 +58783,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 @@ -59374,7 +58793,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 @@ -59385,38 +58804,38 @@ i32.const 7296 i32.store offset=8 i32.const 0 - local.set $4 - local.get $3 + local.set $0 + 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|056 - local.get $1 - local.get $4 - i32.gt_s + local.set $2 + loop $for-loop|061278 + local.get $0 + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $0 i32.const 1 i32.shl i32.add i32.load16_s i32.const 3 global.set $~argumentsLength + local.get $0 local.get $4 - local.get $3 i32.const 7296 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 - br $for-loop|056 + local.set $0 + br $for-loop|061278 end end global.get $std/typedarray/forEachCallCount @@ -59434,7 +58853,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59447,14 +58866,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 @@ -59465,7 +58884,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 @@ -59476,7 +58895,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 @@ -59488,38 +58907,38 @@ i32.const 7328 i32.store offset=8 i32.const 0 - local.set $4 - local.get $3 + local.set $0 + 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|058282 - local.get $1 - local.get $4 - i32.gt_s + local.set $2 + loop $for-loop|063280 + local.get $0 + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $0 i32.const 1 i32.shl i32.add i32.load16_u i32.const 3 global.set $~argumentsLength + local.get $0 local.get $4 - local.get $3 i32.const 7328 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 - br $for-loop|058282 + local.set $0 + br $for-loop|063280 end end global.get $std/typedarray/forEachCallCount @@ -59537,7 +58956,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59550,14 +58969,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 @@ -59566,7 +58985,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 @@ -59575,7 +58994,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 @@ -59585,38 +59004,38 @@ i32.const 7360 i32.store offset=8 i32.const 0 - local.set $4 - local.get $3 + local.set $0 + 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|060 - local.get $1 - local.get $4 - i32.gt_s + local.set $2 + loop $for-loop|065 + local.get $0 + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $4 - local.get $3 i32.const 7360 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 - br $for-loop|060 + local.set $0 + br $for-loop|065 end end global.get $std/typedarray/forEachCallCount @@ -59634,7 +59053,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59647,14 +59066,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 @@ -59663,7 +59082,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 @@ -59672,7 +59091,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 @@ -59682,38 +59101,38 @@ i32.const 7392 i32.store offset=8 i32.const 0 - local.set $4 - local.get $3 + local.set $0 + 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|062 - local.get $1 - local.get $4 - i32.gt_s + local.set $2 + loop $for-loop|067 + local.get $0 + local.get $2 + i32.lt_s if - local.get $2 - local.get $4 + local.get $3 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $4 - local.get $3 i32.const 7392 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 - br $for-loop|062 + local.set $0 + br $for-loop|067 end end global.get $std/typedarray/forEachCallCount @@ -59731,7 +59150,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59744,14 +59163,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 @@ -59761,7 +59180,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 @@ -59771,7 +59190,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 @@ -59782,38 +59201,38 @@ i32.const 7424 i32.store offset=8 i32.const 0 - local.set $4 - local.get $2 + local.set $0 + 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|064 + local.set $1 + loop $for-loop|069 local.get $0 - local.get $4 - i32.gt_s + local.get $1 + i32.lt_s if - local.get $1 - local.get $4 + local.get $2 + local.get $0 i32.const 3 i32.shl i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $4 - local.get $2 + local.get $0 + local.get $3 i32.const 7424 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 - br $for-loop|064 + local.set $0 + br $for-loop|069 end end global.get $std/typedarray/forEachCallCount @@ -59831,7 +59250,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59844,14 +59263,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 @@ -59861,7 +59280,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 @@ -59871,7 +59290,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 @@ -59882,38 +59301,38 @@ i32.const 7456 i32.store offset=8 i32.const 0 - local.set $4 - local.get $2 + local.set $0 + 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|066287 + local.set $1 + loop $for-loop|071285 local.get $0 - local.get $4 - i32.gt_s + local.get $1 + i32.lt_s if - local.get $1 - local.get $4 + local.get $2 + local.get $0 i32.const 3 i32.shl i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $4 - local.get $2 + local.get $0 + local.get $3 i32.const 7456 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 - br $for-loop|066287 + local.set $0 + br $for-loop|071285 end end global.get $std/typedarray/forEachCallCount @@ -59931,7 +59350,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59944,14 +59363,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 @@ -59961,7 +59380,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 @@ -59971,7 +59390,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 @@ -59982,38 +59401,38 @@ i32.const 7488 i32.store offset=8 i32.const 0 - local.set $4 - local.get $2 + local.set $0 + 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|068289 + local.set $1 + loop $for-loop|073287 local.get $0 - local.get $4 - i32.gt_s + local.get $1 + i32.lt_s if - local.get $1 - local.get $4 + local.get $2 + local.get $0 i32.const 2 i32.shl i32.add f32.load i32.const 3 global.set $~argumentsLength - local.get $4 - local.get $2 + local.get $0 + local.get $3 i32.const 7488 i32.load call_indirect $0 (type $f32_i32_i32_=>_none) - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 - br $for-loop|068289 + local.set $0 + br $for-loop|073287 end end global.get $std/typedarray/forEachCallCount @@ -60031,7 +59450,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60044,14 +59463,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 @@ -60061,7 +59480,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 @@ -60071,7 +59490,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 @@ -60082,38 +59501,38 @@ i32.const 7520 i32.store offset=8 i32.const 0 - local.set $4 - local.get $2 + local.set $0 + 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|070 + local.set $1 + loop $for-loop|075 local.get $0 - local.get $4 - i32.gt_s + local.get $1 + i32.lt_s if - local.get $1 - local.get $4 + local.get $2 + local.get $0 i32.const 3 i32.shl i32.add f64.load i32.const 3 global.set $~argumentsLength - local.get $4 - local.get $2 + local.get $0 + local.get $3 i32.const 7520 i32.load call_indirect $0 (type $f64_i32_i32_=>_none) - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 - br $for-loop|070 + local.set $0 + br $for-loop|075 end end global.get $std/typedarray/forEachCallCount @@ -60149,9 +59568,9 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/typedarray/Float64Array#constructor - local.tee $5 + local.tee $2 i32.store offset=12 - local.get $5 + local.get $2 i32.const 0 f64.const nan:0x8000000000000 call $~lib/typedarray/Float64Array#__set @@ -60160,25 +59579,25 @@ i32.const -1 local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $5 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $5 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|0 local.get $1 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 + local.get $3 local.get $1 local.tee $0 i32.const 3 @@ -60210,32 +59629,32 @@ unreachable end i32.const 0 - local.set $4 + local.set $0 block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) i32.const 0 - local.get $5 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $3 i32.const 0 - local.get $1 + local.get $3 select i32.eqz br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $5 + local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|0291 - local.get $1 - local.get $4 - i32.gt_s + local.set $1 + loop $while-continue|0289 + local.get $0 + local.get $3 + i32.lt_s if i32.const 1 i32.const 1 + local.get $1 local.get $0 - local.get $4 i32.const 3 i32.shl i32.add @@ -60249,11 +59668,11 @@ select br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 - br $while-continue|0291 + local.set $0 + br $while-continue|0289 end end i32.const 0 @@ -60270,9 +59689,9 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/typedarray/Float32Array#constructor - local.tee $5 + local.tee $2 i32.store offset=24 - local.get $5 + local.get $2 i32.const 0 f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set @@ -60281,25 +59700,25 @@ i32.const -1 local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $5 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $5 + local.get $2 i32.load offset=4 - local.set $2 - loop $while-continue|0292 + local.set $3 + loop $while-continue|0290 local.get $1 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 + local.get $3 local.get $1 local.tee $0 i32.const 2 @@ -60313,7 +59732,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|0292 + br $while-continue|0290 end end i32.const -1 @@ -60331,32 +59750,32 @@ unreachable end i32.const 0 - local.set $4 + local.set $0 block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) i32.const 0 - local.get $5 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $3 i32.const 0 - local.get $1 + local.get $3 select i32.eqz br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $5 + local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|073 - local.get $1 - local.get $4 - i32.gt_s + local.set $1 + loop $while-continue|078 + local.get $0 + local.get $3 + i32.lt_s if i32.const 1 i32.const 1 + local.get $1 local.get $0 - local.get $4 i32.const 2 i32.shl i32.add @@ -60370,11 +59789,11 @@ select br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 - br $while-continue|073 + local.set $0 + br $while-continue|078 end end i32.const 0 @@ -60395,7 +59814,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60445,7 +59864,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -60453,7 +59872,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -60479,7 +59898,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60491,7 +59910,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60541,7 +59960,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 local.get $2 call $~lib/typedarray/Uint8Array#toString local.set $1 @@ -60556,7 +59975,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60568,7 +59987,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60618,7 +60037,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 local.get $2 call $~lib/typedarray/Uint8Array#toString local.set $1 @@ -60633,7 +60052,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60645,7 +60064,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60695,7 +60114,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -60703,7 +60122,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -60729,7 +60148,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60741,7 +60160,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60791,7 +60210,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -60799,7 +60218,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -60825,7 +60244,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60837,7 +60256,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60887,7 +60306,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -60895,7 +60314,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -60921,7 +60340,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60933,7 +60352,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60983,7 +60402,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -60991,7 +60410,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -61017,7 +60436,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -61029,7 +60448,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61066,7 +60485,12 @@ i32.const 9584 i32.store offset=12 local.get $2 - call $~lib/typedarray/Int64Array#join + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + call $~lib/util/string/joinIntegerArray local.set $1 global.get $~lib/memory/__stack_pointer local.tee $0 @@ -61079,7 +60503,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -61087,7 +60511,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -61096,7 +60520,12 @@ i32.const 9584 i32.store local.get $2 - call $~lib/typedarray/Int64Array#join + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + call $~lib/util/string/joinIntegerArray local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -61113,7 +60542,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -61125,7 +60554,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61175,7 +60604,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -61183,7 +60612,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -61209,7 +60638,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -61221,7 +60650,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61271,7 +60700,7 @@ i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner24 + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -61279,7 +60708,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -61305,7 +60734,7 @@ i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner25 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -61317,7 +60746,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61367,7 +60796,7 @@ i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner24 + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -61375,7 +60804,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -61401,7 +60830,7 @@ i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner25 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -61461,7 +60890,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61480,14 +60909,14 @@ i32.load local.tee $3 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $5 i32.store offset=4 - loop $for-loop|037 + loop $for-loop|028 local.get $2 local.get $3 i32.lt_s if - local.get $4 + local.get $5 local.get $2 i32.const 10928 local.get $2 @@ -61498,32 +60927,32 @@ i32.const 1 i32.add local.set $2 - br $for-loop|037 + br $for-loop|028 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $4 + local.get $5 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub - local.get $4 + local.get $5 i32.load offset=8 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $5 + local.tee $4 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -61535,12 +60964,12 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 i32.store - local.get $5 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -61552,16 +60981,16 @@ local.tee $1 i32.store local.get $1 - local.get $5 + local.get $4 i32.store local.get $1 - local.get $5 + local.get $4 call $~lib/rt/itcms/__link local.get $1 local.get $0 i32.store offset=8 local.get $1 - local.get $5 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -61577,14 +61006,14 @@ local.get $3 i32.lt_s if - local.get $4 + local.get $5 local.get $2 call $~lib/typedarray/Int8Array#__get local.get $1 local.get $2 call $~lib/typedarray/Int8Array#__get i32.ne - br_if $folding-inner26 + br_if $folding-inner24 local.get $2 i32.const 1 i32.add @@ -61605,7 +61034,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61626,7 +61055,7 @@ call $~lib/typedarray/Uint8Array#constructor local.tee $3 i32.store offset=4 - loop $for-loop|039 + loop $for-loop|030 local.get $1 local.get $2 i32.lt_s @@ -61643,7 +61072,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|039 + br $for-loop|030 end end global.get $~lib/memory/__stack_pointer @@ -61680,7 +61109,7 @@ i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|140 + loop $for-loop|131 local.get $1 local.get $2 i32.lt_s @@ -61692,12 +61121,12 @@ local.get $1 call $~lib/typedarray/Uint8Array#__get i32.ne - br_if $folding-inner26 + br_if $folding-inner24 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|140 + br $for-loop|131 end end global.get $~lib/memory/__stack_pointer @@ -61713,7 +61142,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61732,14 +61161,14 @@ i32.load local.tee $3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $5 i32.store offset=4 - loop $for-loop|043 + loop $for-loop|034 local.get $2 local.get $3 i32.lt_s if - local.get $4 + local.get $5 local.get $2 i32.const 10928 local.get $2 @@ -61751,32 +61180,32 @@ i32.const 1 i32.add local.set $2 - br $for-loop|043 + br $for-loop|034 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $4 + local.get $5 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub - local.get $4 + local.get $5 i32.load offset=8 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $5 + local.tee $4 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -61788,12 +61217,12 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 i32.store - local.get $5 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -61805,16 +61234,16 @@ local.tee $1 i32.store local.get $1 - local.get $5 + local.get $4 i32.store local.get $1 - local.get $5 + local.get $4 call $~lib/rt/itcms/__link local.get $1 local.get $0 i32.store offset=8 local.get $1 - local.get $5 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -61825,24 +61254,24 @@ i32.store offset=16 i32.const 0 local.set $2 - loop $for-loop|144 + loop $for-loop|135 local.get $2 local.get $3 i32.lt_s if - local.get $4 + local.get $5 local.get $2 call $~lib/typedarray/Uint8ClampedArray#__get local.get $1 local.get $2 call $~lib/typedarray/Uint8ClampedArray#__get i32.ne - br_if $folding-inner26 + br_if $folding-inner24 local.get $2 i32.const 1 i32.add local.set $2 - br $for-loop|144 + br $for-loop|135 end end global.get $~lib/memory/__stack_pointer @@ -61858,7 +61287,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61877,14 +61306,14 @@ i32.load local.tee $2 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $5 i32.store offset=4 - loop $for-loop|047 + loop $for-loop|037 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $5 local.get $1 i32.const 10928 local.get $1 @@ -61895,27 +61324,27 @@ i32.const 1 i32.add local.set $1 - br $for-loop|047 + br $for-loop|037 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $4 + local.get $5 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub - local.get $4 + local.get $5 i32.load offset=8 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub i32.add @@ -61932,7 +61361,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -61943,23 +61372,23 @@ local.tee $0 i32.const 1 i32.and - br_if $folding-inner27 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 local.get $3 i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 local.get $0 i32.store offset=8 - local.get $5 + local.get $4 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -61967,28 +61396,28 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $5 + local.get $4 i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|148 + loop $for-loop|138 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $5 local.get $1 call $~lib/typedarray/Int16Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/typedarray/Int16Array#__get i32.ne - br_if $folding-inner26 + br_if $folding-inner24 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|148 + br $for-loop|138 end end global.get $~lib/memory/__stack_pointer @@ -62004,7 +61433,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62023,14 +61452,14 @@ i32.load local.tee $2 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $5 i32.store offset=4 - loop $for-loop|053 + loop $for-loop|041 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $5 local.get $1 i32.const 10928 local.get $1 @@ -62042,27 +61471,27 @@ i32.const 1 i32.add local.set $1 - br $for-loop|053 + br $for-loop|041 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $4 + local.get $5 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub - local.get $4 + local.get $5 i32.load offset=8 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub i32.add @@ -62079,7 +61508,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -62090,23 +61519,23 @@ local.tee $0 i32.const 1 i32.and - br_if $folding-inner27 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 local.get $3 i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 local.get $0 i32.store offset=8 - local.get $5 + local.get $4 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -62114,28 +61543,28 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $5 + local.get $4 i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|154 + loop $for-loop|142 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $5 local.get $1 call $~lib/typedarray/Uint16Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/typedarray/Uint16Array#__get i32.ne - br_if $folding-inner26 + br_if $folding-inner24 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|154 + br $for-loop|142 end end global.get $~lib/memory/__stack_pointer @@ -62151,7 +61580,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62170,14 +61599,14 @@ i32.load local.tee $2 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $5 i32.store offset=4 - loop $for-loop|057 + loop $for-loop|047 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $5 local.get $1 i32.const 10928 local.get $1 @@ -62187,27 +61616,27 @@ i32.const 1 i32.add local.set $1 - br $for-loop|057 + br $for-loop|047 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $4 + local.get $5 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub - local.get $4 + local.get $5 i32.load offset=8 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub i32.add @@ -62224,7 +61653,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -62235,23 +61664,23 @@ local.tee $0 i32.const 3 i32.and - br_if $folding-inner27 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 local.get $3 i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 local.get $0 i32.store offset=8 - local.get $5 + local.get $4 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -62259,28 +61688,28 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $5 + local.get $4 i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|158 + loop $for-loop|148 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $5 local.get $1 call $~lib/typedarray/Int32Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/typedarray/Int32Array#__get i32.ne - br_if $folding-inner26 + br_if $folding-inner24 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|158 + br $for-loop|148 end end global.get $~lib/memory/__stack_pointer @@ -62296,7 +61725,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62315,14 +61744,14 @@ i32.load local.tee $2 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $5 i32.store offset=4 - loop $for-loop|065 + loop $for-loop|053 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $5 local.get $1 i32.const 10928 local.get $1 @@ -62332,27 +61761,27 @@ i32.const 1 i32.add local.set $1 - br $for-loop|065 + br $for-loop|053 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $4 + local.get $5 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub - local.get $4 + local.get $5 i32.load offset=8 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub i32.add @@ -62369,7 +61798,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -62380,23 +61809,23 @@ local.tee $0 i32.const 3 i32.and - br_if $folding-inner27 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 local.get $3 i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 local.get $0 i32.store offset=8 - local.get $5 + local.get $4 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -62404,28 +61833,28 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $5 + local.get $4 i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|166 + loop $for-loop|154 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $5 local.get $1 call $~lib/typedarray/Uint32Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/typedarray/Uint32Array#__get i32.ne - br_if $folding-inner26 + br_if $folding-inner24 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|166 + br $for-loop|154 end end global.get $~lib/memory/__stack_pointer @@ -62441,7 +61870,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62460,14 +61889,14 @@ i32.load local.tee $2 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $5 i32.store offset=4 - loop $for-loop|069 + loop $for-loop|057 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $5 local.get $1 i32.const 10928 local.get $1 @@ -62478,27 +61907,27 @@ i32.const 1 i32.add local.set $1 - br $for-loop|069 + br $for-loop|057 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $4 + local.get $5 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub - local.get $4 + local.get $5 i32.load offset=8 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub i32.add @@ -62515,7 +61944,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -62526,23 +61955,23 @@ local.tee $0 i32.const 7 i32.and - br_if $folding-inner27 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 local.get $3 i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 local.get $0 i32.store offset=8 - local.get $5 + local.get $4 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -62550,28 +61979,28 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $5 + local.get $4 i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|170 + loop $for-loop|158 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $5 local.get $1 call $~lib/typedarray/Int64Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/typedarray/Int64Array#__get i64.ne - br_if $folding-inner26 + br_if $folding-inner24 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|170 + br $for-loop|158 end end global.get $~lib/memory/__stack_pointer @@ -62587,7 +62016,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62606,14 +62035,14 @@ i32.load local.tee $2 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $5 i32.store offset=4 - loop $for-loop|072 + loop $for-loop|060 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $5 local.get $1 i32.const 10928 local.get $1 @@ -62624,27 +62053,27 @@ i32.const 1 i32.add local.set $1 - br $for-loop|072 + br $for-loop|060 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $4 + local.get $5 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub - local.get $4 + local.get $5 i32.load offset=8 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub i32.add @@ -62661,7 +62090,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -62672,23 +62101,23 @@ local.tee $0 i32.const 7 i32.and - br_if $folding-inner27 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 local.get $3 i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 local.get $0 i32.store offset=8 - local.get $5 + local.get $4 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -62696,28 +62125,28 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $5 + local.get $4 i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|173 + loop $for-loop|161 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $5 local.get $1 call $~lib/typedarray/Uint64Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/typedarray/Uint64Array#__get i64.ne - br_if $folding-inner26 + br_if $folding-inner24 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|173 + br $for-loop|161 end end global.get $~lib/memory/__stack_pointer @@ -62733,7 +62162,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62752,14 +62181,14 @@ i32.load local.tee $2 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $5 i32.store offset=4 - loop $for-loop|075 + loop $for-loop|064 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $5 local.get $1 i32.const 10928 local.get $1 @@ -62770,27 +62199,27 @@ i32.const 1 i32.add local.set $1 - br $for-loop|075 + br $for-loop|064 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $4 + local.get $5 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub - local.get $4 + local.get $5 i32.load offset=8 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub i32.add @@ -62807,7 +62236,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -62818,23 +62247,23 @@ local.tee $0 i32.const 3 i32.and - br_if $folding-inner27 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 local.get $3 i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 local.get $0 i32.store offset=8 - local.get $5 + local.get $4 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -62842,28 +62271,28 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $5 + local.get $4 i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|176 + loop $for-loop|165 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $5 local.get $1 call $~lib/typedarray/Float32Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/typedarray/Float32Array#__get f32.ne - br_if $folding-inner26 + br_if $folding-inner24 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|176 + br $for-loop|165 end end global.get $~lib/memory/__stack_pointer @@ -62879,7 +62308,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62898,14 +62327,14 @@ i32.load local.tee $2 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $5 i32.store offset=4 - loop $for-loop|079 + loop $for-loop|070 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $5 local.get $1 i32.const 10928 local.get $1 @@ -62916,27 +62345,27 @@ i32.const 1 i32.add local.set $1 - br $for-loop|079 + br $for-loop|070 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $4 + local.get $5 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub - local.get $4 + local.get $5 i32.load offset=8 - local.get $4 + local.get $5 i32.load offset=4 - local.get $4 + local.get $5 i32.load i32.sub i32.add @@ -62953,7 +62382,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -62964,23 +62393,23 @@ local.tee $0 i32.const 7 i32.and - br_if $folding-inner27 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 local.get $3 i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 local.get $0 i32.store offset=8 - local.get $5 + local.get $4 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -62988,28 +62417,28 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $5 + local.get $4 i32.store offset=16 i32.const 0 local.set $1 - loop $for-loop|180 + loop $for-loop|171 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $5 local.get $1 call $~lib/typedarray/Float64Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/typedarray/Float64Array#__get f64.ne - br_if $folding-inner26 + br_if $folding-inner24 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|180 + br $for-loop|171 end end global.get $~lib/memory/__stack_pointer @@ -63030,92 +62459,95 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $6 + local.tee $4 + local.tee $10 i32.store offset=24 global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $1 + local.get $0 i32.const 0 f32.const 400 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 1 f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 2 f32.const inf call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.tee $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 0 i64.const -10 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $8 i32.const 1 i64.const 100 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $8 i32.const 2 i64.const 10 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $8 i32.const 3 i64.const 300 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 2 call $~lib/typedarray/Int32Array#constructor - local.tee $0 + local.tee $7 i32.store offset=16 - local.get $0 + local.get $7 i32.const 0 i32.const 300 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $7 i32.const 1 i32.const -1 call $~lib/typedarray/Int32Array#__set - local.get $6 + i32.const 0 + local.set $6 + local.get $10 i32.load offset=8 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.add i32.lt_s - br_if $folding-inner17 - local.get $6 + br_if $folding-inner19 + local.get $10 i32.load offset=4 i32.const 1 i32.add - local.set $5 - local.get $1 - i32.load offset=4 local.set $3 - local.get $1 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 - loop $for-loop|077 - local.get $2 - local.get $13 + local.set $1 + loop $for-loop|082 + local.get $1 + local.get $6 i32.gt_s if - local.get $5 - local.get $13 - i32.add local.get $3 - local.get $13 + local.get $6 + i32.add + local.get $2 + local.get $6 i32.const 2 i32.shl i32.add @@ -63136,52 +62568,52 @@ i32.const 0 end i32.store8 - local.get $13 + local.get $6 i32.const 1 i32.add - local.set $13 - br $for-loop|077 + local.set $6 + br $for-loop|082 end end - local.get $6 - local.get $7 + local.get $10 + local.get $8 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> i32.const 0 - local.set $13 - local.get $6 + local.set $6 + local.get $10 i32.load offset=8 - local.get $0 + local.get $7 i32.load offset=8 i32.const 2 i32.shr_u i32.const 8 i32.add i32.lt_s - br_if $folding-inner17 - local.get $6 + br_if $folding-inner19 + local.get $10 i32.load offset=4 i32.const 8 i32.add local.set $2 - local.get $0 + local.get $7 i32.load offset=4 local.set $1 - local.get $0 + local.get $7 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 - loop $for-loop|081295 + loop $for-loop|086312 local.get $0 - local.get $13 + local.get $6 i32.gt_s if local.get $2 - local.get $13 + local.get $6 i32.add local.get $1 - local.get $13 + local.get $6 i32.const 2 i32.shl i32.add @@ -63200,11 +62632,11 @@ i32.or i32.and i32.store8 - local.get $13 + local.get $6 i32.const 1 i32.add - local.set $13 - br $for-loop|081295 + local.set $6 + br $for-loop|086312 end end i32.const 10 @@ -63216,7 +62648,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $6 + local.get $10 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer @@ -63243,77 +62675,75 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 0 i32.const -10 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 100 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 10 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 3 i32.const 300 call $~lib/typedarray/Int16Array#__set i32.const 0 - local.set $13 - local.get $6 + local.set $6 + local.get $10 i32.load offset=8 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u i32.lt_s - br_if $folding-inner17 - local.get $6 + br_if $folding-inner19 + local.get $10 i32.load offset=4 - local.set $5 + local.set $3 local.get $0 i32.load offset=4 - local.set $3 + local.set $2 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 - loop $for-loop|085 - local.get $2 - local.get $13 + local.set $1 + loop $for-loop|090 + local.get $1 + local.get $6 i32.gt_s if local.get $3 - local.get $13 + local.get $6 + i32.add + i32.const 255 + local.get $2 + local.get $6 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $0 + local.get $0 i32.const 255 i32.gt_u - local.set $0 - local.get $5 - local.get $13 - i32.add - i32.const 255 - local.get $1 - local.get $0 select i32.store8 - local.get $13 + local.get $6 i32.const 1 i32.add - local.set $13 - br $for-loop|085 + local.set $6 + br $for-loop|090 end end - local.get $6 - local.get $4 + local.get $10 + local.get $5 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> i32.const 10 @@ -63325,7 +62755,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $6 + local.get $4 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> i32.const 0 @@ -63337,7 +62767,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63372,7 +62802,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -63408,19 +62838,19 @@ call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner28 + br_if $folding-inner26 local.get $2 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 2 i32.ne - br_if $folding-inner29 + br_if $folding-inner27 local.get $2 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 15376 i32.store offset=8 @@ -63435,19 +62865,19 @@ call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne - br_if $folding-inner31 + br_if $folding-inner29 local.get $2 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 2 i32.ne - br_if $folding-inner32 + br_if $folding-inner30 local.get $2 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner33 + br_if $folding-inner31 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63461,7 +62891,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63496,15 +62926,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of183 - block $0of184 - block $outOfRange85 + block $1of174 + block $0of175 + block $outOfRange76 global.get $~argumentsLength - br_table $0of184 $1of183 $outOfRange85 + br_table $0of175 $1of174 $outOfRange76 end unreachable end @@ -63532,19 +62962,19 @@ call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner28 + br_if $folding-inner26 local.get $2 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 2 i32.ne - br_if $folding-inner29 + br_if $folding-inner27 local.get $2 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 3 i32.ne - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 15440 i32.store offset=8 @@ -63559,19 +62989,19 @@ call $~lib/typedarray/Uint8Array#__get i32.const 3 i32.ne - br_if $folding-inner31 + br_if $folding-inner29 local.get $2 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 2 i32.ne - br_if $folding-inner32 + br_if $folding-inner30 local.get $2 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner33 + br_if $folding-inner31 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63585,7 +63015,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63620,15 +63050,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of187 - block $0of188 - block $outOfRange89 + block $1of178 + block $0of179 + block $outOfRange80 global.get $~argumentsLength - br_table $0of188 $1of187 $outOfRange89 + br_table $0of179 $1of178 $outOfRange80 end unreachable end @@ -63656,19 +63086,19 @@ call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner28 + br_if $folding-inner26 local.get $2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 i32.ne - br_if $folding-inner29 + br_if $folding-inner27 local.get $2 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 i32.ne - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 15504 i32.store offset=8 @@ -63683,19 +63113,19 @@ call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 i32.ne - br_if $folding-inner31 + br_if $folding-inner29 local.get $2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 i32.ne - br_if $folding-inner32 + br_if $folding-inner30 local.get $2 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner33 + br_if $folding-inner31 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63709,7 +63139,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63744,15 +63174,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of191 - block $0of192 - block $outOfRange93 + block $1of182 + block $0of183 + block $outOfRange84 global.get $~argumentsLength - br_table $0of192 $1of191 $outOfRange93 + br_table $0of183 $1of182 $outOfRange84 end unreachable end @@ -63782,19 +63212,19 @@ call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner28 + br_if $folding-inner26 local.get $2 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 2 i32.ne - br_if $folding-inner29 + br_if $folding-inner27 local.get $2 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 3 i32.ne - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 15568 i32.store offset=8 @@ -63811,19 +63241,19 @@ call $~lib/typedarray/Int16Array#__get i32.const 3 i32.ne - br_if $folding-inner31 + br_if $folding-inner29 local.get $2 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 2 i32.ne - br_if $folding-inner32 + br_if $folding-inner30 local.get $2 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner33 + br_if $folding-inner31 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63837,7 +63267,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63872,15 +63302,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of195 - block $0of196 - block $outOfRange97 + block $1of186 + block $0of187 + block $outOfRange88 global.get $~argumentsLength - br_table $0of196 $1of195 $outOfRange97 + br_table $0of187 $1of186 $outOfRange88 end unreachable end @@ -63910,19 +63340,19 @@ call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner28 + br_if $folding-inner26 local.get $2 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 2 i32.ne - br_if $folding-inner29 + br_if $folding-inner27 local.get $2 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 3 i32.ne - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 15632 i32.store offset=8 @@ -63939,19 +63369,19 @@ call $~lib/typedarray/Uint16Array#__get i32.const 3 i32.ne - br_if $folding-inner31 + br_if $folding-inner29 local.get $2 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 2 i32.ne - br_if $folding-inner32 + br_if $folding-inner30 local.get $2 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner33 + br_if $folding-inner31 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63965,7 +63395,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -64000,15 +63430,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of199 - block $0of1100 - block $outOfRange101 + block $1of190 + block $0of191 + block $outOfRange92 global.get $~argumentsLength - br_table $0of1100 $1of199 $outOfRange101 + br_table $0of191 $1of190 $outOfRange92 end unreachable end @@ -64038,19 +63468,19 @@ call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner28 + br_if $folding-inner26 local.get $2 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne - br_if $folding-inner29 + br_if $folding-inner27 local.get $2 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 3 i32.ne - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 15696 i32.store offset=8 @@ -64067,19 +63497,19 @@ call $~lib/typedarray/Int32Array#__get i32.const 3 i32.ne - br_if $folding-inner31 + br_if $folding-inner29 local.get $2 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne - br_if $folding-inner32 + br_if $folding-inner30 local.get $2 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner33 + br_if $folding-inner31 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -64093,7 +63523,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -64128,15 +63558,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1103 - block $0of1104 - block $outOfRange105 + block $1of194 + block $0of195 + block $outOfRange96 global.get $~argumentsLength - br_table $0of1104 $1of1103 $outOfRange105 + br_table $0of195 $1of194 $outOfRange96 end unreachable end @@ -64166,19 +63596,19 @@ call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner28 + br_if $folding-inner26 local.get $2 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 2 i32.ne - br_if $folding-inner29 + br_if $folding-inner27 local.get $2 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 3 i32.ne - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 15760 i32.store offset=8 @@ -64195,19 +63625,19 @@ call $~lib/typedarray/Uint32Array#__get i32.const 3 i32.ne - br_if $folding-inner31 + br_if $folding-inner29 local.get $2 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 2 i32.ne - br_if $folding-inner32 + br_if $folding-inner30 local.get $2 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner33 + br_if $folding-inner31 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -64221,7 +63651,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -64256,15 +63686,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1107 - block $0of1108 - block $outOfRange109 + block $1of198 + block $0of199 + block $outOfRange100 global.get $~argumentsLength - br_table $0of1108 $1of1107 $outOfRange109 + br_table $0of199 $1of198 $outOfRange100 end unreachable end @@ -64294,19 +63724,19 @@ call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner28 + br_if $folding-inner26 local.get $2 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 2 i64.ne - br_if $folding-inner29 + br_if $folding-inner27 local.get $2 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 3 i64.ne - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 15824 i32.store offset=8 @@ -64323,19 +63753,19 @@ call $~lib/typedarray/Int64Array#__get i64.const 3 i64.ne - br_if $folding-inner31 + br_if $folding-inner29 local.get $2 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 2 i64.ne - br_if $folding-inner32 + br_if $folding-inner30 local.get $2 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner33 + br_if $folding-inner31 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -64349,7 +63779,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -64384,15 +63814,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1111 - block $0of1112 - block $outOfRange113 + block $1of1102 + block $0of1103 + block $outOfRange104 global.get $~argumentsLength - br_table $0of1112 $1of1111 $outOfRange113 + br_table $0of1103 $1of1102 $outOfRange104 end unreachable end @@ -64422,19 +63852,19 @@ call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner28 + br_if $folding-inner26 local.get $2 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 2 i64.ne - br_if $folding-inner29 + br_if $folding-inner27 local.get $2 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 3 i64.ne - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 15888 i32.store offset=8 @@ -64451,19 +63881,19 @@ call $~lib/typedarray/Uint64Array#__get i64.const 3 i64.ne - br_if $folding-inner31 + br_if $folding-inner29 local.get $2 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 2 i64.ne - br_if $folding-inner32 + br_if $folding-inner30 local.get $2 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner33 + br_if $folding-inner31 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -64477,7 +63907,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -64512,15 +63942,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1115 - block $0of1116 - block $outOfRange117 + block $1of1106 + block $0of1107 + block $outOfRange108 global.get $~argumentsLength - br_table $0of1116 $1of1115 $outOfRange117 + br_table $0of1107 $1of1106 $outOfRange108 end unreachable end @@ -64550,19 +63980,19 @@ call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne - br_if $folding-inner28 + br_if $folding-inner26 local.get $2 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 2 f32.ne - br_if $folding-inner29 + br_if $folding-inner27 local.get $2 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 3 f32.ne - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 15952 i32.store offset=8 @@ -64579,19 +64009,19 @@ call $~lib/typedarray/Float32Array#__get f32.const 3 f32.ne - br_if $folding-inner31 + br_if $folding-inner29 local.get $2 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 2 f32.ne - br_if $folding-inner32 + br_if $folding-inner30 local.get $2 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne - br_if $folding-inner33 + br_if $folding-inner31 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -64603,7 +64033,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -64640,19 +64070,19 @@ call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne - br_if $folding-inner28 + br_if $folding-inner26 local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 2 f64.ne - br_if $folding-inner29 + br_if $folding-inner27 local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 3 f64.ne - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 15984 i32.store offset=8 @@ -64669,19 +64099,19 @@ call $~lib/typedarray/Float64Array#__get f64.const 3 f64.ne - br_if $folding-inner31 + br_if $folding-inner29 local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 2 f64.ne - br_if $folding-inner32 + br_if $folding-inner30 local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne - br_if $folding-inner33 + br_if $folding-inner31 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -64692,12 +64122,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|086 + loop $while-continue|091 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|086 + br $while-continue|091 end end end @@ -64825,66 +64255,66 @@ call $~lib/builtins/abort unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1911 - i32.const 47 + i32.const 0 + i32.const 1568 + i32.const 675 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 388 - i32.const 3 + i32.const 676 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 389 - i32.const 3 + i32.const 672 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 390 - i32.const 3 + i32.const 673 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 + i32.const 1360 + i32.const 1632 + i32.const 1911 + i32.const 47 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 675 - i32.const 5 + i32.const 388 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 676 - i32.const 5 + i32.const 389 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 672 - i32.const 5 + i32.const 390 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 673 - i32.const 5 + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end @@ -65987,11 +65417,11 @@ i32.const 0 i32.gt_s select - local.tee $2 - call $~lib/typedarray/Int32Array#constructor local.tee $3 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 i32.store - local.get $3 + local.get $2 i32.load offset=4 local.get $0 i32.load offset=4 @@ -65999,7 +65429,7 @@ i32.const 2 i32.shl i32.add - local.get $2 + local.get $3 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -66007,7 +65437,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) (func $~lib/typedarray/Uint8Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -66049,11 +65479,9 @@ i32.add local.tee $1 i32.const 0 - i32.gt_s - local.set $2 local.get $1 i32.const 0 - local.get $2 + i32.gt_s select else local.get $1 @@ -66140,11 +65568,9 @@ i32.add local.tee $1 i32.const 0 - i32.gt_s - local.set $2 local.get $1 i32.const 0 - local.get $2 + i32.gt_s select else local.get $1 @@ -66233,11 +65659,9 @@ i32.add local.tee $1 i32.const 0 - i32.gt_s - local.set $2 local.get $1 i32.const 0 - local.get $2 + i32.gt_s select else local.get $1 @@ -66330,11 +65754,9 @@ i32.add local.tee $1 i32.const 0 - i32.gt_s - local.set $2 local.get $1 i32.const 0 - local.get $2 + i32.gt_s select else local.get $1 @@ -66427,11 +65849,9 @@ i32.add local.tee $1 i32.const 0 - i32.gt_s - local.set $2 local.get $1 i32.const 0 - local.get $2 + i32.gt_s select else local.get $1 @@ -66524,11 +65944,9 @@ i32.add local.tee $1 i32.const 0 - i32.gt_s - local.set $2 local.get $1 i32.const 0 - local.get $2 + i32.gt_s select else local.get $1 @@ -66621,11 +66039,9 @@ i32.add local.tee $1 i32.const 0 - i32.gt_s - local.set $2 local.get $1 i32.const 0 - local.get $2 + i32.gt_s select else local.get $1 @@ -66718,11 +66134,9 @@ i32.add local.tee $1 i32.const 0 - i32.gt_s - local.set $2 local.get $1 i32.const 0 - local.get $2 + i32.gt_s select else local.get $1 @@ -66909,52 +66323,50 @@ global.get $~lib/memory/__stack_pointer 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 $3 - local.get $1 - i32.const 0 - local.get $1 + local.tee $2 + local.get $2 i32.const 0 i32.gt_s select - local.tee $2 - i32.gt_s - local.set $4 + local.tee $3 + local.get $1 i32.const 0 - local.get $3 - local.get $3 + local.get $1 i32.const 0 i32.gt_s select local.tee $1 local.get $2 - local.get $3 - local.get $4 - select - local.tee $2 local.get $1 local.get $2 - i32.gt_s + i32.lt_s + select + local.tee $1 + local.get $1 + local.get $3 + i32.lt_s select i32.const 1 i32.shl local.tee $4 + local.get $3 local.get $1 - local.get $2 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select i32.const 1 i32.shl local.tee $1 i32.sub - local.tee $2 + local.tee $3 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -66966,7 +66378,7 @@ end i32.const 0 local.get $4 - local.get $3 + local.get $2 i32.const 1 i32.shl i32.eq @@ -66981,22 +66393,22 @@ return end 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 + local.get $2 local.get $0 local.get $1 i32.add - 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 + local.get $2 ) (func $~lib/util/number/utoa32 (param $0 i32) (result i32) (local $1 i32) @@ -67094,6 +66506,334 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (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 + 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 + i32.const 0 + i32.store + local.get $1 + 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 7776 + return + end + local.get $7 + i32.eqz + if + local.get $0 + i64.load + i64.extend32_s + local.set $3 + 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/number/itoa64 + local.get $3 + 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 $1 + br $__inlined_func$~lib/util/number/itoa64 + end + i64.const 0 + local.get $3 + i64.sub + local.get $3 + local.get $3 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.tee $4 + select + local.tee $3 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.wrap_i64 + local.tee $5 + 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 $4 + i32.add + 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 $5 + local.get $0 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $3 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $3 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $3 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $3 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $3 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $3 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $3 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.get $4 + i32.add + 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 $3 + local.get $0 + call $~lib/util/number/utoa64_dec_lut + end + local.get $4 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 21 + i32.add + i32.mul + i32.const 21 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + loop $for-loop|0 + local.get $5 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $4 + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $1 + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $0 + i32.gt_s + if + local.get $6 + local.get $0 + call $~lib/string/String#substring + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $~lib/util/number/dtoa (param $0 f64) (result i32) (local $1 i32) (local $2 i32) diff --git a/tests/compiler/std/uri.optimized.wat b/tests/compiler/std/uri.optimized.wat index 87b1772367..b1acf26e19 100644 --- a/tests/compiler/std/uri.optimized.wat +++ b/tests/compiler/std/uri.optimized.wat @@ -288,16 +288,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 4336 i32.load i32.gt_u @@ -309,7 +309,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 4340 @@ -325,26 +325,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -453,8 +453,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -462,11 +460,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -474,25 +473,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -701,7 +701,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -709,6 +708,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -724,7 +724,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -732,6 +731,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -786,11 +786,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1520 @@ -814,11 +814,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1520 @@ -978,17 +978,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1048,15 +1048,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1184,12 +1184,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1229,13 +1227,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1275,10 +1273,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1287,7 +1285,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1296,6 +1293,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1309,12 +1307,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1327,7 +1325,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1336,6 +1333,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1415,7 +1413,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $3 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1427,7 +1425,6 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $2 i32.const 12 i32.le_u @@ -1444,9 +1441,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if + memory.size + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1465,14 +1464,13 @@ local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $3 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1482,18 +1480,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1501,18 +1497,18 @@ unreachable end end - local.get $3 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1524,7 +1520,7 @@ end end local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1537,12 +1533,12 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $4 + local.get $3 i32.load - local.set $6 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1556,54 +1552,54 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const -4 i32.and local.get $2 i32.sub - local.tee $5 + local.tee $6 i32.const 16 i32.ge_u if - local.get $4 + local.get $3 local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.and i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add local.tee $2 - local.get $5 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $3 local.get $4 - local.get $6 i32.const -2 i32.and i32.store - local.get $4 + local.get $3 i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1613,37 +1609,37 @@ i32.and i32.store end - local.get $4 + local.get $3 local.get $1 i32.store offset=12 - local.get $4 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $4 - local.get $1 + local.set $1 + local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $2 - local.get $4 - local.get $2 + local.get $1 + local.get $3 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1651,22 +1647,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.const 20 i32.add - local.tee $2 - local.set $3 + local.tee $3 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $3 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1675,18 +1671,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $3 + 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 @@ -1695,10 +1691,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1707,38 +1703,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 - local.get $3 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1751,20 +1747,20 @@ i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 - local.get $5 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1787,8 +1783,8 @@ i32.sub i32.const 0 i32.store - local.get $5 - local.get $5 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1796,7 +1792,7 @@ local.tee $0 i32.add local.set $1 - local.get $3 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1829,7 +1825,7 @@ end end end - local.get $2 + local.get $3 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -1994,29 +1990,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2038,25 +2032,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2129,25 +2123,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2216,25 +2210,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2274,143 +2268,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2437,63 +2417,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2520,23 +2494,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2781,7 +2753,6 @@ (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $1 local.get $0 i32.const 20 i32.sub @@ -2791,7 +2762,8 @@ i32.and i32.const 16 i32.sub - i32.le_u + local.get $1 + i32.ge_u if local.get $2 local.get $1 @@ -2833,7 +2805,7 @@ local.get $1 i32.const 1 i32.shl - local.tee $9 + local.tee $8 i32.const 1 call $~lib/rt/itcms/__new local.set $3 @@ -2847,10 +2819,10 @@ local.set $5 loop $do-continue|1 block $do-break|1 - local.get $0 local.get $6 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u local.tee $4 @@ -2859,10 +2831,10 @@ i32.const 94 i32.ge_u br_if $do-break|1 - local.get $2 local.get $4 i32.const 33 i32.sub + local.get $2 i32.add i32.load8_u br_if $do-break|1 @@ -2879,37 +2851,37 @@ local.get $6 i32.lt_u if - local.get $9 + local.get $8 local.get $7 local.get $6 local.get $5 i32.sub i32.const 1 i32.shl - local.tee $8 + local.tee $9 i32.add i32.lt_u if local.get $3 local.get $7 - local.get $8 + local.get $9 i32.add - local.tee $9 + local.tee $8 call $~lib/rt/itcms/__renew local.set $3 end local.get $3 local.get $7 i32.add - local.get $0 local.get $5 i32.const 1 i32.shl + local.get $0 i32.add - local.get $8 + local.get $9 call $~lib/memory/memory.copy local.get $7 - local.get $8 + local.get $9 i32.add local.set $7 local.get $1 @@ -2917,7 +2889,8 @@ i32.le_u br_if $while-break|0 end - local.get $9 + local.get $8 + local.get $7 i32.const 6 i32.const 24 local.get $4 @@ -2956,13 +2929,13 @@ unreachable end i32.const 1 - local.get $0 local.get $6 i32.const 1 i32.add local.tee $6 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u local.tee $5 @@ -3000,36 +2973,34 @@ i32.const 128 i32.lt_u select - local.get $7 - local.tee $5 i32.add - local.tee $7 + local.tee $5 i32.lt_u if local.get $3 - local.get $7 + local.get $5 i32.const 1 i32.shl - local.get $7 + local.get $5 local.get $1 i32.const 1 i32.gt_u select - local.tee $9 + local.tee $8 call $~lib/rt/itcms/__renew local.set $3 end local.get $4 i32.const 128 i32.lt_u - if (result i32) + if local.get $3 - local.get $5 + local.get $7 i32.add - local.tee $7 + local.tee $5 i32.const 37 i32.store16 - local.get $7 + local.get $5 local.get $4 i32.const 4 i32.shr_u @@ -3048,28 +3019,25 @@ i32.shl i32.or i32.store offset=2 - local.get $5 - i32.const 6 - i32.add else local.get $3 local.get $4 i32.const 2048 i32.lt_u - if (result i32) + if local.get $3 - local.get $5 + local.get $7 i32.add - local.tee $7 + local.tee $5 i32.const 37 i32.store16 - local.get $7 + local.get $5 local.get $4 i32.const 6 i32.shr_u i32.const 192 i32.or - local.tee $7 + local.tee $5 i32.const 4 i32.shr_u i32.const 15 @@ -3077,7 +3045,7 @@ i32.const 1676 i32.add i32.load8_u - local.get $7 + local.get $5 i32.const 15 i32.and i32.const 1676 @@ -3087,28 +3055,25 @@ i32.shl i32.or i32.store offset=2 - local.get $5 - i32.const 6 - i32.add else local.get $3 local.get $4 i32.const 65536 i32.lt_u - if (result i32) + if local.get $3 - local.get $5 + local.get $7 i32.add - local.tee $7 + local.tee $5 i32.const 37 i32.store16 - local.get $7 + local.get $5 local.get $4 i32.const 12 i32.shr_u i32.const 224 i32.or - local.tee $7 + local.tee $5 i32.const 4 i32.shr_u i32.const 15 @@ -3116,7 +3081,7 @@ i32.const 1676 i32.add i32.load8_u - local.get $7 + local.get $5 i32.const 15 i32.and i32.const 1676 @@ -3126,23 +3091,20 @@ i32.shl i32.or i32.store offset=2 - local.get $5 - i32.const 6 - i32.add else local.get $3 - local.get $5 + local.get $7 i32.add - local.tee $7 + local.tee $5 i32.const 37 i32.store16 - local.get $7 + local.get $5 local.get $4 i32.const 18 i32.shr_u i32.const 240 i32.or - local.tee $7 + local.tee $5 i32.const 4 i32.shr_u i32.const 15 @@ -3150,7 +3112,7 @@ i32.const 1676 i32.add i32.load8_u - local.get $7 + local.get $5 i32.const 15 i32.and i32.const 1676 @@ -3161,7 +3123,7 @@ i32.or i32.store offset=2 local.get $3 - local.get $5 + local.get $7 i32.const 6 i32.add local.tee $7 @@ -3193,10 +3155,10 @@ i32.shl i32.or i32.store offset=2 - local.get $7 - i32.const 6 - i32.add end + local.get $7 + i32.const 6 + i32.add local.tee $7 i32.add local.tee $5 @@ -3226,10 +3188,10 @@ i32.shl i32.or i32.store offset=2 - local.get $7 - i32.const 6 - i32.add end + local.get $7 + i32.const 6 + i32.add local.tee $7 i32.add local.tee $5 @@ -3257,10 +3219,10 @@ i32.shl i32.or i32.store offset=2 - local.get $7 - i32.const 6 - i32.add end + local.get $7 + i32.const 6 + i32.add local.set $7 local.get $6 i32.const 1 @@ -3271,7 +3233,7 @@ end end local.get $7 - local.get $9 + local.get $8 i32.lt_u if (result i32) local.get $3 @@ -3808,17 +3770,17 @@ i32.const 65536 i32.sub local.tee $5 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.get $5 i32.const 1023 i32.and i32.const 56320 i32.or i32.const 16 i32.shl - local.get $5 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or i32.or i32.store local.get $6 diff --git a/tests/compiler/super-inline.optimized.wat b/tests/compiler/super-inline.optimized.wat index cb3b6ee8af..e685cabe27 100644 --- a/tests/compiler/super-inline.optimized.wat +++ b/tests/compiler/super-inline.optimized.wat @@ -181,16 +181,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1440 i32.load i32.gt_u @@ -202,7 +202,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1444 @@ -218,26 +218,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -346,8 +346,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -355,11 +353,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -367,25 +366,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -594,7 +594,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -602,6 +601,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -617,7 +617,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -625,6 +624,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -679,11 +679,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -707,11 +707,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -871,17 +871,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -941,15 +941,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1077,12 +1077,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1220,20 +1218,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if - i32.const 4 memory.size - local.tee $1 + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $2 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1242,18 +1241,16 @@ i32.and i32.const 16 i32.shr_u - local.set $3 - local.get $1 - local.get $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1261,15 +1258,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1296,12 +1293,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1311,7 +1308,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1320,19 +1317,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1363,26 +1360,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 + local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 + local.get $2 local.get $1 - local.get $0 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1483,11 +1480,15 @@ global.get $super-inline/foo local.tee $0 i32.store - local.get $0 - i32.const 8 - i32.sub - i32.load - drop + block $__inlined_func$super-inline/Foo#a@virtual + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.eq + br_if $__inlined_func$super-inline/Foo#a@virtual + end global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index b688a7181a..f43818e32f 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -367,16 +367,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 5536 i32.load i32.gt_u @@ -388,7 +388,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 5540 @@ -404,26 +404,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -551,8 +551,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -560,11 +558,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -572,25 +571,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -799,7 +799,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -807,6 +806,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -822,7 +822,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -830,6 +829,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -884,11 +884,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1552 @@ -912,11 +912,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1552 @@ -1076,17 +1076,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1146,15 +1146,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1282,12 +1282,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1327,13 +1325,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1373,10 +1371,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1385,7 +1383,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1394,6 +1391,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1407,12 +1405,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1425,7 +1423,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1434,6 +1431,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1513,7 +1511,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $3 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1525,7 +1523,6 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $2 i32.const 12 i32.le_u @@ -1542,9 +1539,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if + memory.size + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1563,14 +1562,13 @@ local.get $2 end i32.const 4 - memory.size - local.tee $6 + local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $3 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -1580,18 +1578,16 @@ i32.and i32.const 16 i32.shr_u - local.set $5 - local.get $6 - local.get $5 - local.get $5 - local.get $6 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1599,18 +1595,18 @@ unreachable end end - local.get $3 - local.get $6 + local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1622,7 +1618,7 @@ end end local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1635,12 +1631,12 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $4 + local.get $3 i32.load - local.set $6 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1654,54 +1650,54 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const -4 i32.and local.get $2 i32.sub - local.tee $5 + local.tee $6 i32.const 16 i32.ge_u if - local.get $4 + local.get $3 local.get $2 - local.get $6 + local.get $4 i32.const 2 i32.and i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add local.tee $2 - local.get $5 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 + local.get $5 local.get $2 call $~lib/rt/tlsf/insertBlock else + local.get $3 local.get $4 - local.get $6 i32.const -2 i32.and i32.store - local.get $4 + local.get $3 i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add local.get $2 - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1711,37 +1707,37 @@ i32.and i32.store end - local.get $4 + local.get $3 local.get $1 i32.store offset=12 - local.get $4 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $4 - local.get $1 + local.set $1 + local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $2 - local.get $4 - local.get $2 + local.get $1 + local.get $3 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1749,22 +1745,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $3 i32.const 20 i32.add - local.tee $2 - local.set $3 + local.tee $3 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $3 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1773,18 +1769,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $3 + 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 @@ -1793,10 +1789,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1805,38 +1801,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $1 i32.const 0 - local.get $3 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1849,20 +1845,20 @@ i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $5 + local.get $1 i32.const 0 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 - local.get $5 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1885,8 +1881,8 @@ i32.sub i32.const 0 i32.store - local.get $5 - local.get $5 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1894,7 +1890,7 @@ local.tee $0 i32.add local.set $1 - local.get $3 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1927,7 +1923,7 @@ end end end - local.get $2 + local.get $3 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2092,29 +2088,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2136,25 +2130,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u - local.get $1 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2227,25 +2221,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2314,25 +2308,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2372,143 +2366,129 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2535,63 +2515,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2618,23 +2592,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2877,10 +2849,10 @@ end ) (func $~lib/staticarray/StaticArray<~lib/string/String>#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.get $2 i32.store @@ -2950,7 +2922,7 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2967,17 +2939,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i64.const 0 i64.store - local.get $5 + local.get $6 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinStringArray - local.get $3 + local.get $5 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if @@ -2986,19 +2958,19 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1184 - local.set $3 + local.set $2 br $__inlined_func$~lib/util/string/joinStringArray end - local.get $5 + local.get $6 i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $0 i32.load local.tee $0 i32.store - local.get $3 + local.get $2 i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -3006,27 +2978,27 @@ i32.const 1184 local.get $0 select - local.set $3 + local.set $2 br $__inlined_func$~lib/util/string/joinStringArray end loop $for-loop|0 local.get $3 - local.get $4 - i32.gt_s + local.get $5 + i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.shl i32.add i32.load - local.tee $6 + local.tee $4 i32.store offset=4 - local.get $6 + local.get $4 if local.get $2 - local.get $6 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -3035,95 +3007,95 @@ i32.add local.set $2 end - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer local.get $2 - local.get $5 + local.get $6 i32.const 1180 i32.load i32.const 1 i32.shr_u - local.tee $6 + local.tee $5 i32.mul i32.add i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store offset=8 i32.const 0 - local.set $4 + local.set $3 loop $for-loop|1 - local.get $4 - local.get $5 + local.get $3 + local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $4 i32.store offset=4 - local.get $2 + local.get $4 if - local.get $3 + local.get $2 local.get $1 i32.const 1 i32.shl i32.add - local.get $2 - local.get $2 + local.get $4 + local.get $4 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $2 + local.tee $4 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $1 - local.get $2 + local.get $4 i32.add local.set $1 end - local.get $6 + local.get $5 if - local.get $3 + local.get $2 local.get $1 i32.const 1 i32.shl i32.add i32.const 1184 - local.get $6 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $1 - local.get $6 + local.get $5 i32.add local.set $1 end - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 + local.get $6 i32.const 2 i32.shl i32.add @@ -3132,7 +3104,7 @@ i32.store offset=4 local.get $0 if - local.get $3 + local.get $2 local.get $1 i32.const 1 i32.shl @@ -3153,7 +3125,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $3 + local.get $2 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3170,13 +3142,13 @@ i32.const 10000 i32.div_u local.set $1 - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 100 @@ -3205,13 +3177,13 @@ i32.const 100 i32.ge_u if - local.get $0 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 @@ -3231,12 +3203,12 @@ i32.const 10 i32.ge_u if - local.get $0 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 2 @@ -3246,12 +3218,12 @@ i32.load i32.store else - local.get $0 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 48 @@ -4154,21 +4126,17 @@ (local $3 i32) (local $4 i32) (local $5 i64) - (local $6 i32) + (local $6 i64) (local $7 i32) - (local $8 i64) + (local $8 i32) (local $9 i64) (local $10 i64) (local $11 i64) - (local $12 f64) - (local $13 i64) - (local $14 i64) - (local $15 i64) - (local $16 i64) + (local $12 i64) local.get $0 f64.const 0 f64.lt - local.tee $6 + local.tee $7 if (result f64) i32.const 3920 i32.const 45 @@ -4191,17 +4159,6 @@ i64.extend_i32_u i64.const 52 i64.shl - local.set $2 - local.get $4 - i32.const 1 - local.get $4 - select - i32.const 1075 - i32.sub - local.tee $4 - i32.const 1 - i32.sub - local.get $2 local.get $1 i64.const 4503599627370495 i64.and @@ -4214,14 +4171,24 @@ local.tee $1 i64.clz i32.wrap_i64 - local.tee $3 - i32.sub - local.set $7 + local.set $3 local.get $1 local.get $3 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus + local.get $4 + i32.const 1 + local.get $4 + select + i32.const 1075 + i32.sub + local.tee $8 + i32.const 1 + i32.sub + local.get $3 + i32.sub + local.set $4 local.get $2 local.get $2 i64.const 4503599627370496 @@ -4233,19 +4200,20 @@ i64.shl i64.const 1 i64.sub - local.get $4 + local.get $8 local.get $3 i32.sub - local.get $7 + local.get $4 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $7 + local.get $4 global.set $~lib/util/number/_exp + i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $7 + local.tee $4 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -4255,12 +4223,9 @@ local.tee $0 i32.trunc_f64_s local.tee $3 - f64.convert_i32_s - local.set $12 - i32.const 348 - local.get $3 local.get $0 - local.get $12 + local.get $3 + f64.convert_i32_s f64.ne i32.add i32.const 3 @@ -4270,10 +4235,10 @@ local.tee $3 i32.const 3 i32.shl - local.tee $4 + local.tee $8 i32.sub global.set $~lib/util/number/_K - local.get $4 + local.get $8 i32.const 3976 i32.add i64.load @@ -4286,7 +4251,7 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $13 + local.tee $9 i64.const 4294967295 i64.and local.tee $1 @@ -4294,95 +4259,93 @@ local.get $2 i64.clz i64.shl - local.tee $8 + local.tee $10 i64.const 4294967295 i64.and - local.tee $14 + local.tee $11 i64.mul - local.set $9 - global.get $~lib/util/number/_frc_plus - local.tee $5 - i64.const 4294967295 - i64.and - local.set $2 - local.get $1 - local.get $5 + local.set $5 + local.get $9 i64.const 32 i64.shr_u - local.tee $15 + local.tee $2 + local.get $11 i64.mul local.get $1 - local.get $2 + local.get $10 + i64.const 32 + i64.shr_u + local.tee $9 i64.mul + local.get $5 i64.const 32 i64.shr_u i64.add - local.set $5 - global.get $~lib/util/number/_frc_minus local.tee $10 i64.const 4294967295 i64.and + i64.add + i64.const 2147483647 + i64.add local.set $11 - local.get $1 - local.get $8 - i64.const 32 - i64.shr_u - local.tee $16 + local.get $2 + global.get $~lib/util/number/_frc_plus + local.tee $5 + i64.const 4294967295 + i64.and + local.tee $6 i64.mul - local.get $9 - i64.const 32 - i64.shr_u - i64.add - local.set $8 local.get $1 - local.get $10 + local.get $5 i64.const 32 i64.shr_u - local.tee $10 + local.tee $5 i64.mul local.get $1 - local.get $11 + local.get $6 i64.mul i64.const 32 i64.shr_u i64.add - local.set $9 - local.get $13 + local.tee $6 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add i64.const 32 i64.shr_u - local.tee $1 - local.get $15 - i64.mul + local.get $2 local.get $5 + i64.mul + local.get $6 i64.const 32 i64.shr_u i64.add - local.get $1 + i64.add + i64.const 1 + i64.sub + local.tee $5 local.get $2 - i64.mul - local.get $5 + global.get $~lib/util/number/_frc_minus + local.tee $6 i64.const 4294967295 i64.and - i64.add - i64.const 2147483647 - i64.add + local.tee $12 + i64.mul + local.get $1 + local.get $6 i64.const 32 i64.shr_u - i64.add - i64.const 1 - i64.sub - local.tee $2 + local.tee $6 + i64.mul local.get $1 - local.get $10 + local.get $12 i64.mul - local.get $9 i64.const 32 i64.shr_u i64.add - local.get $1 - local.get $11 - i64.mul - local.get $9 + local.tee $1 i64.const 4294967295 i64.and i64.add @@ -4390,49 +4353,48 @@ i64.add i64.const 32 i64.shr_u + local.get $2 + local.get $6 + i64.mul + local.get $1 + i64.const 32 + i64.shr_u + i64.add i64.add i64.const 1 i64.add i64.sub - local.set $5 - local.get $6 + local.set $1 + local.get $7 i32.const 1 i32.shl i32.const 3920 i32.add - local.get $1 - local.get $16 + local.get $2 + local.get $9 i64.mul - local.get $8 + local.get $10 i64.const 32 i64.shr_u i64.add - local.get $1 - local.get $14 - i64.mul - local.get $8 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add + local.get $11 i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $5 + local.get $4 global.get $~lib/util/number/_exp_pow - local.get $7 i32.add i32.const -64 i32.sub - local.get $5 - local.get $6 + local.get $1 + local.get $7 call $~lib/util/number/genDigits - local.get $6 + local.get $7 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $6 + local.get $7 i32.add ) (func $~lib/number/F64#toString (param $0 f64) (result i32) diff --git a/tests/compiler/throw.optimized.wat b/tests/compiler/throw.optimized.wat index 5d422720c6..6de9f6aa55 100644 --- a/tests/compiler/throw.optimized.wat +++ b/tests/compiler/throw.optimized.wat @@ -107,8 +107,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -132,7 +132,7 @@ i32.load offset=4 i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -165,22 +165,21 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 i32.store offset=8 local.get $1 - local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $1 local.get $0 - local.tee $1 i32.load offset=12 local.tee $2 i32.const 1 @@ -188,11 +187,10 @@ if (result i32) i32.const 1 else - local.get $2 - local.tee $0 i32.const 1728 i32.load - i32.gt_u + local.get $2 + i32.lt_u if i32.const 1488 i32.const 1552 @@ -201,7 +199,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 3 i32.shl i32.const 1732 @@ -216,28 +214,28 @@ else i32.const 2 end - local.set $0 - local.get $3 - i32.load offset=8 local.set $2 local.get $1 + i32.load offset=8 + local.set $3 local.get $0 - local.get $3 - i32.or - i32.store offset=4 local.get $1 local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $3 i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 + 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 $3 local.get $1 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -345,8 +343,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -354,11 +350,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -366,25 +363,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -593,7 +591,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -601,6 +598,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -616,7 +614,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -624,6 +621,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -654,12 +652,12 @@ (local $1 i32) (local $2 i32) (local $3 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 $folding-inner0 + br_table $case0|0 $case1|0 $case2|0 $break|0 end i32.const 1 global.set $~lib/rt/itcms/state @@ -668,7 +666,7 @@ call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace global.set $~lib/rt/itcms/iter - br $folding-inner0 + return end global.get $~lib/rt/itcms/white i32.eqz @@ -706,7 +704,7 @@ i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 + return end local.get $0 i32.load offset=4 @@ -797,7 +795,7 @@ i32.const 2 global.set $~lib/rt/itcms/state end - br $folding-inner0 + return end global.get $~lib/rt/itcms/iter local.tee $0 diff --git a/tests/compiler/typeof.optimized.wat b/tests/compiler/typeof.optimized.wat index c0791a44c8..442656cede 100644 --- a/tests/compiler/typeof.optimized.wat +++ b/tests/compiler/typeof.optimized.wat @@ -177,10 +177,8 @@ call $~lib/rt/itcms/__visit global.get $typeof/c local.tee $0 - local.set $1 - local.get $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end i32.const 1552 @@ -314,16 +312,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1792 i32.load i32.gt_u @@ -335,7 +333,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1796 @@ -351,26 +349,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -479,8 +477,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -488,11 +484,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -500,25 +497,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -727,7 +725,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -735,6 +732,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -750,7 +748,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -758,6 +755,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -812,11 +810,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1696 @@ -840,11 +838,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1696 @@ -1004,17 +1002,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1074,15 +1072,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1210,12 +1208,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1742,7 +1738,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.store global.get $~lib/rt/itcms/total @@ -1751,12 +1747,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $0 + local.set $1 loop $do-continue|0 - local.get $0 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $0 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1772,14 +1768,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $0 + local.get $1 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1796,20 +1792,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $3 call $~lib/rt/tlsf/searchBlock - local.tee $0 + local.tee $1 i32.eqz if - i32.const 4 memory.size - local.tee $0 + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $1 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1818,18 +1815,16 @@ i32.and i32.const 16 i32.shr_u - local.set $2 - local.get $0 - local.get $2 - local.get $0 + local.tee $1 + local.get $1 local.get $2 - i32.gt_s + i32.lt_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 @@ -1837,17 +1832,17 @@ unreachable end end - local.get $1 - local.get $0 + 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 $1 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1858,7 +1853,7 @@ unreachable end end - local.get $0 + local.get $1 i32.load i32.const -4 i32.and @@ -1872,10 +1867,10 @@ call $~lib/builtins/abort unreachable end + local.get $3 local.get $1 - local.get $0 call $~lib/rt/tlsf/removeBlock - local.get $0 + local.get $1 i32.load local.tee $2 i32.const -4 @@ -1886,14 +1881,14 @@ i32.const 16 i32.ge_u if - local.get $0 + local.get $1 local.get $2 i32.const 2 i32.and i32.const 28 i32.or i32.store - local.get $0 + local.get $1 i32.const 32 i32.add local.tee $2 @@ -1903,26 +1898,26 @@ i32.const 1 i32.or i32.store - local.get $1 + local.get $3 local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $0 + local.get $1 local.get $2 i32.const -2 i32.and i32.store - local.get $0 + local.get $1 i32.const 4 i32.add - local.tee $1 - local.get $0 + local.tee $2 + local.get $1 i32.load i32.const -4 i32.and i32.add + local.get $2 local.get $1 - local.get $0 i32.load i32.const -4 i32.and @@ -1932,37 +1927,37 @@ i32.and i32.store end - local.get $0 + local.get $1 i32.const 4 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $4 + local.get $1 local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $4 i32.store offset=8 + local.get $4 local.get $1 - local.get $0 - local.get $1 + local.get $4 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $0 + local.get $1 i32.load i32.const -4 i32.and @@ -1970,8 +1965,8 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 local.get $0 + local.get $1 i32.const 20 i32.add local.tee $0 diff --git a/tests/compiler/wasi/abort.optimized.wat b/tests/compiler/wasi/abort.optimized.wat index 1aeb19a782..1465be0ae6 100644 --- a/tests/compiler/wasi/abort.optimized.wat +++ b/tests/compiler/wasi/abort.optimized.wat @@ -36,12 +36,12 @@ i32.const 1 i32.shl i32.add - local.set $4 + local.set $5 local.get $2 local.set $1 loop $while-continue|0 local.get $0 - local.get $4 + local.get $5 i32.lt_u if local.get $0 @@ -86,7 +86,7 @@ i32.const 55296 i32.eq if - local.get $4 + local.get $5 local.get $0 i32.const 2 i32.add @@ -99,13 +99,12 @@ if local.get $0 i32.load16_u offset=2 - local.tee $5 + local.tee $4 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $1 local.get $3 i32.const 1023 i32.and @@ -113,18 +112,26 @@ i32.shl i32.const 65536 i32.add - local.get $5 + local.get $4 i32.const 1023 i32.and i32.or - local.tee $3 + local.tee $4 i32.const 63 i32.and i32.const 128 i32.or + local.set $3 + local.get $1 + local.get $4 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + local.get $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 6 i32.shr_u i32.const 63 @@ -134,7 +141,7 @@ i32.const 16 i32.shl i32.or - local.get $3 + local.get $4 i32.const 12 i32.shr_u i32.const 63 @@ -144,11 +151,6 @@ i32.const 8 i32.shl i32.or - local.get $3 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or i32.or i32.store local.get $1 diff --git a/tests/compiler/wasi/seed.optimized.wat b/tests/compiler/wasi/seed.optimized.wat index e24aed1e12..4c599087e7 100644 --- a/tests/compiler/wasi/seed.optimized.wat +++ b/tests/compiler/wasi/seed.optimized.wat @@ -53,12 +53,12 @@ i32.shl i32.const 1168 i32.add - local.set $5 + local.set $6 i32.const 23 local.set $0 loop $while-continue|0 local.get $2 - local.get $5 + local.get $6 i32.lt_u if local.get $2 @@ -103,7 +103,7 @@ i32.const 55296 i32.eq if - local.get $5 + local.get $6 local.get $2 i32.const 2 i32.add @@ -116,13 +116,12 @@ if local.get $2 i32.load16_u offset=2 - local.tee $6 + local.tee $5 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $0 local.get $1 i32.const 1023 i32.and @@ -130,7 +129,7 @@ i32.shl i32.const 65536 i32.add - local.get $6 + local.get $5 i32.const 1023 i32.and i32.or @@ -139,6 +138,14 @@ i32.and i32.const 128 i32.or + local.set $5 + local.get $0 + local.get $1 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + local.get $5 i32.const 24 i32.shl local.get $1 @@ -161,11 +168,6 @@ i32.const 8 i32.shl i32.or - local.get $1 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or i32.or i32.store local.get $0 @@ -365,13 +367,13 @@ i32.const 1831565813 i32.add local.tee $0 + i32.const 1 + i32.or + local.get $0 local.get $0 i32.const 15 i32.shr_u i32.xor - local.get $0 - i32.const 1 - i32.or i32.mul local.tee $0 local.get $0 @@ -397,13 +399,13 @@ i32.const 1831565813 i32.add local.tee $0 + i32.const 1 + i32.or + local.get $0 local.get $0 i32.const 15 i32.shr_u i32.xor - local.get $0 - i32.const 1 - i32.or i32.mul local.tee $0 local.get $0 diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index 9ec677e79b..3cea66d78f 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -57,12 +57,12 @@ i32.const 1 i32.shl i32.add - local.set $4 + local.set $5 local.get $2 local.set $1 loop $while-continue|0 local.get $0 - local.get $4 + local.get $5 i32.lt_u if local.get $0 @@ -107,7 +107,7 @@ i32.const 55296 i32.eq if - local.get $4 + local.get $5 local.get $0 i32.const 2 i32.add @@ -120,13 +120,12 @@ if local.get $0 i32.load16_u offset=2 - local.tee $5 + local.tee $4 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $1 local.get $3 i32.const 1023 i32.and @@ -134,18 +133,26 @@ i32.shl i32.const 65536 i32.add - local.get $5 + local.get $4 i32.const 1023 i32.and i32.or - local.tee $3 + local.tee $4 i32.const 63 i32.and i32.const 128 i32.or + local.set $3 + local.get $1 + local.get $4 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + local.get $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 6 i32.shr_u i32.const 63 @@ -155,7 +162,7 @@ i32.const 16 i32.shl i32.or - local.get $3 + local.get $4 i32.const 12 i32.shr_u i32.const 63 @@ -165,11 +172,6 @@ i32.const 8 i32.shl i32.or - local.get $3 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or i32.or i32.store local.get $1 @@ -546,8 +548,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -555,11 +555,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -567,25 +568,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -794,7 +796,6 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -802,6 +803,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -817,7 +819,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -825,6 +826,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -879,11 +881,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1216 @@ -907,11 +909,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1216 @@ -1056,13 +1058,13 @@ i32.const 536870910 i32.lt_u if - local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl + local.get $1 i32.add i32.const 1 i32.sub @@ -1102,10 +1104,10 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1114,7 +1116,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -1123,6 +1124,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1136,12 +1138,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1154,7 +1156,6 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1163,6 +1164,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1769,29 +1771,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.tee $4 i32.const 2 i32.add + local.tee $3 + i32.const 1 + i32.add local.set $0 local.get $1 - local.tee $3 i32.const 2 i32.add + local.tee $4 + i32.const 1 + i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -1813,25 +1813,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 24 - i32.shr_u local.get $1 i32.load offset=5 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 24 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=9 local.tee $3 i32.const 8 i32.shl + local.get $4 + i32.const 24 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -1904,25 +1904,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $1 i32.load offset=6 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 16 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=10 local.tee $3 i32.const 16 i32.shl + local.get $4 + i32.const 16 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -1991,25 +1991,25 @@ i32.or i32.store local.get $0 - local.get $3 - i32.const 8 - i32.shr_u local.get $1 i32.load offset=7 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $3 i32.const 8 i32.shr_u + i32.or + i32.store offset=4 + local.get $0 local.get $1 i32.load offset=11 local.tee $3 i32.const 24 i32.shl + local.get $4 + i32.const 8 + i32.shr_u i32.or i32.store offset=8 local.get $0 @@ -2049,150 +2049,136 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 + local.set $0 local.get $1 local.tee $3 i32.const 2 @@ -2212,63 +2198,57 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2295,23 +2275,21 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $4 + i32.const 2 i32.add - local.tee $0 + local.set $0 local.get $1 - i32.const 1 + local.tee $3 + i32.const 2 i32.add - local.tee $1 - i32.load8_u - i32.store8 + local.set $1 + local.get $4 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - i32.const 1 - i32.add - local.tee $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 i32.load8_u i32.store8 local.get $0 @@ -2568,13 +2546,13 @@ i32.const 10000 i32.div_u local.set $1 - local.get $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 100 @@ -2603,13 +2581,13 @@ i32.const 100 i32.ge_u if - local.get $0 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 @@ -2629,12 +2607,12 @@ i32.const 10 i32.ge_u if - local.get $0 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 2 @@ -2644,12 +2622,12 @@ i32.load i32.store else - local.get $0 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 48 @@ -2999,18 +2977,19 @@ ) (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) (local $2 i64) - (local $3 i64) + (local $3 i32) (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 i64) - (local $8 i64) + (local $5 i64) + (local $6 i64) + (local $7 i32) + (local $8 i32) (local $9 i32) - (local $10 i32) + (local $10 i64) + (local $11 i64) local.get $1 f64.const 0 f64.lt - local.tee $9 + local.tee $8 if (result f64) local.get $0 i32.const 45 @@ -3027,66 +3006,66 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $5 + local.tee $3 + i32.const 1 + local.get $3 + select + i32.const 1075 + i32.sub + local.tee $9 + i32.const 1 + i32.sub + local.get $2 + i64.const 4503599627370495 + i64.and + local.get $3 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl - local.get $2 - i64.const 4503599627370495 - i64.and i64.add - local.tee $3 + local.tee $2 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $2 - local.get $2 + local.tee $4 i64.clz i32.wrap_i64 - local.tee $6 + local.tee $7 + i32.sub + local.set $3 + local.get $4 + local.get $7 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $5 - i32.const 1 - local.get $5 - select - i32.const 1075 - i32.sub - local.tee $10 - i32.const 1 - i32.sub - local.get $6 - i32.sub - local.set $5 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $6 + local.tee $7 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $10 - local.get $6 + local.get $9 + local.get $7 i32.sub - local.get $5 + local.get $3 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $5 + local.get $3 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $5 + local.tee $9 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -3095,9 +3074,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $6 + local.tee $3 local.get $1 - local.get $6 + local.get $3 f64.convert_i32_s f64.ne i32.add @@ -3105,59 +3084,60 @@ i32.shr_s i32.const 1 i32.add - local.tee $6 + local.tee $3 i32.const 3 i32.shl - local.tee $10 + local.tee $7 i32.sub global.set $~lib/util/number/_K - local.get $10 + local.get $7 i32.const 1328 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $6 + local.get $3 i32.const 1 i32.shl i32.const 2024 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow + local.get $2 + local.get $2 + i64.clz + i64.shl + local.tee $10 + i64.const 4294967295 + i64.and + local.set $5 global.get $~lib/util/number/_frc_pow - local.tee $7 + local.tee $4 i64.const 4294967295 i64.and local.set $2 - local.get $7 + local.get $4 i64.const 32 i64.shr_u - local.tee $7 - global.get $~lib/util/number/_frc_plus local.tee $4 - i64.const 32 - i64.shr_u - local.tee $8 - i64.mul - local.get $2 - local.get $8 - i64.mul - local.get $2 - local.get $4 + global.get $~lib/util/number/_frc_plus + local.tee $6 i64.const 4294967295 i64.and - local.tee $4 + local.tee $11 i64.mul + local.get $2 + local.get $6 i64.const 32 i64.shr_u - i64.add - local.tee $8 + local.tee $6 + i64.mul + local.get $2 + local.get $11 + i64.mul i64.const 32 i64.shr_u i64.add - local.get $4 - local.get $7 - i64.mul - local.get $8 + local.tee $11 i64.const 4294967295 i64.and i64.add @@ -3165,46 +3145,39 @@ i64.add i64.const 32 i64.shr_u + local.get $4 + local.get $6 + i64.mul + local.get $11 + i64.const 32 + i64.shr_u + i64.add i64.add i64.const 1 i64.sub - local.set $4 - local.get $0 - local.get $9 + local.set $6 + local.get $8 i32.const 1 i32.shl + local.get $0 i32.add local.get $0 - local.get $7 - local.get $3 - local.get $3 - i64.clz - i64.shl - local.tee $3 + local.get $4 + local.get $5 + i64.mul + local.get $2 + local.get $10 i64.const 32 i64.shr_u - local.tee $8 + local.tee $10 i64.mul local.get $2 - local.get $8 + local.get $5 i64.mul - local.get $2 - local.get $3 - i64.const 4294967295 - i64.and - local.tee $3 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $8 i64.const 32 i64.shr_u i64.add - local.get $3 - local.get $7 - i64.mul - local.get $8 + local.tee $5 i64.const 4294967295 i64.and i64.add @@ -3212,41 +3185,41 @@ i64.add i64.const 32 i64.shr_u - i64.add local.get $4 - global.get $~lib/util/number/_exp_pow + local.get $10 + i64.mul local.get $5 + i64.const 32 + i64.shr_u + i64.add + i64.add + local.get $6 + local.get $9 + global.get $~lib/util/number/_exp_pow i32.add i32.const -64 i32.sub + local.get $6 local.get $4 - local.get $7 global.get $~lib/util/number/_frc_minus - local.tee $3 - i64.const 32 - i64.shr_u - local.tee $4 - i64.mul - local.get $2 - local.get $4 - i64.mul - local.get $2 - local.get $3 + local.tee $5 i64.const 4294967295 i64.and - local.tee $2 + local.tee $6 i64.mul + local.get $2 + local.get $5 i64.const 32 i64.shr_u - i64.add - local.tee $3 + local.tee $5 + i64.mul + local.get $2 + local.get $6 + i64.mul i64.const 32 i64.shr_u i64.add - local.get $2 - local.get $7 - i64.mul - local.get $3 + local.tee $2 i64.const 4294967295 i64.and i64.add @@ -3254,17 +3227,24 @@ i64.add i64.const 32 i64.shr_u + local.get $4 + local.get $5 + i64.mul + local.get $2 + i64.const 32 + i64.shr_u + i64.add i64.add i64.const 1 i64.add i64.sub - local.get $9 + local.get $8 call $~lib/util/number/genDigits - local.get $9 + local.get $8 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $9 + local.get $8 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -3344,95 +3324,96 @@ (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 + local.set $9 loop $while-continue|0 - local.get $6 - local.get $8 + local.get $7 + local.get $9 i32.lt_u if - local.get $6 + local.get $7 i32.load16_u - local.tee $9 + local.tee $6 i32.const 128 i32.lt_u if (result i32) - local.get $7 + local.get $10 i32.const 1 i32.add else - local.get $9 + local.get $6 i32.const 2048 i32.lt_u if (result i32) - local.get $7 + local.get $10 i32.const 2 i32.add else - local.get $8 - local.get $6 + local.get $9 + local.get $7 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $9 + local.get $6 i32.const 64512 i32.and i32.const 55296 i32.eq select 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 + local.get $10 i32.const 4 i32.add - local.set $7 - local.get $6 + local.set $10 + local.get $7 i32.const 4 i32.add - local.set $6 + local.set $7 br $while-continue|0 end end - local.get $7 + local.get $10 i32.const 3 i32.add end end - local.set $7 - local.get $6 + local.set $10 + local.get $7 i32.const 2 i32.add - local.set $6 + local.set $7 br $while-continue|0 end end - local.get $7 + local.get $10 i32.const 56 - local.get $7 + local.get $10 i32.const 56 i32.gt_s select i32.const 13 i32.add - local.set $6 + local.set $10 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $6 + local.tee $7 + local.get $10 i32.const 1073741820 i32.gt_u if @@ -3443,14 +3424,13 @@ call $~lib/wasi/index/abort unreachable end - local.tee $8 - local.get $6 + local.get $10 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $6 + local.get $10 i32.const 19 i32.add i32.const -16 @@ -3458,19 +3438,21 @@ i32.const 4 i32.sub end - local.tee $7 + local.tee $10 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $9 i32.eqz if - local.get $7 + memory.size + local.tee $8 + local.get $10 i32.const 536870910 i32.lt_u if (result i32) - local.get $7 + local.get $10 i32.const 1 i32.const 27 - local.get $7 + local.get $10 i32.clz i32.sub i32.shl @@ -3478,17 +3460,16 @@ i32.sub i32.add else - local.get $7 + local.get $10 end i32.const 4 - memory.size - local.tee $6 + local.get $7 + i32.load offset=1568 + local.get $8 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $8 - i32.load offset=1568 i32.ne i32.shl i32.add @@ -3498,18 +3479,16 @@ i32.and i32.const 16 i32.shr_u - local.set $9 - local.get $6 - local.get $9 + local.tee $6 local.get $6 - local.get $9 - i32.gt_s + local.get $8 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $9 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -3517,18 +3496,18 @@ unreachable end end + local.get $7 local.get $8 - local.get $6 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $8 local.get $7 + local.get $10 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $9 i32.eqz if i32.const 0 @@ -3539,8 +3518,8 @@ unreachable end end - local.get $7 - local.get $6 + local.get $10 + local.get $9 i32.load i32.const -4 i32.and @@ -3553,13 +3532,15 @@ call $~lib/wasi/index/abort unreachable end - local.get $8 - local.get $6 + local.get $7 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - i32.load - local.set $9 local.get $7 + local.set $6 + local.get $9 + i32.load + local.set $8 + local.get $10 i32.const 4 i32.add i32.const 15 @@ -3572,54 +3553,54 @@ call $~lib/wasi/index/abort unreachable end - local.get $9 + local.get $8 i32.const -4 i32.and - local.get $7 + local.get $10 i32.sub - local.tee $10 + local.tee $7 i32.const 16 i32.ge_u if - local.get $6 - local.get $7 local.get $9 + local.get $10 + local.get $8 i32.const 2 i32.and i32.or i32.store - local.get $7 - local.get $6 + local.get $10 + local.get $9 i32.const 4 i32.add i32.add - local.tee $7 - local.get $10 + local.tee $10 + local.get $7 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $8 - local.get $7 + local.get $6 + local.get $10 call $~lib/rt/tlsf/insertBlock else - local.get $6 local.get $9 + local.get $8 i32.const -2 i32.and i32.store - local.get $6 + local.get $9 i32.const 4 i32.add - local.tee $7 - local.get $6 + local.tee $10 + local.get $9 i32.load i32.const -4 i32.and i32.add - local.get $7 - local.get $6 + local.get $10 + local.get $9 i32.load i32.const -4 i32.and @@ -3629,196 +3610,196 @@ i32.and i32.store end - local.get $6 + local.get $9 i32.const 4 i32.add - local.tee $7 + local.tee $8 i32.const 8 i32.add - local.tee $8 + local.tee $6 i32.const 4 i32.add - local.set $6 + local.set $7 + local.get $8 local.get $7 - local.get $6 i32.store - local.get $6 + local.get $7 i64.const 9071406388179572 i64.store - local.get $7 + local.get $8 i32.const 7 i32.store offset=4 i32.const 2 - local.get $7 - i32.const 1 local.get $8 + i32.const 1 + local.get $6 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop i32.const 1052 i32.load i32.const 1 i32.shr_u - local.set $9 + local.set $10 i32.const 3 global.set $~argumentsLength - local.get $7 + local.get $8 i32.const 1056 - local.get $9 - local.get $6 + local.get $10 + local.get $7 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.store offset=4 i32.const 2 - local.get $7 - i32.const 1 local.get $8 + i32.const 1 + local.get $6 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 if (result i32) - local.get $6 + local.get $7 i32.const 32 i32.store8 - local.get $6 + local.get $7 i32.const 1 i32.add - local.tee $6 + local.tee $9 local.get $1 call $~lib/util/number/dtoa_buffered - local.set $9 + local.set $10 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $6 + local.get $8 + local.get $9 + local.get $10 local.get $9 - local.get $6 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $7 - i32.const 1 local.get $8 + i32.const 1 + local.get $6 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 1 i32.gt_s if - local.get $6 + local.get $9 local.get $2 call $~lib/util/number/dtoa_buffered - local.set $9 + local.set $10 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $6 + local.get $8 + local.get $9 + local.get $10 local.get $9 - local.get $6 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $7 - i32.const 1 local.get $8 + i32.const 1 + local.get $6 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 2 i32.gt_s if - local.get $6 + local.get $9 local.get $3 call $~lib/util/number/dtoa_buffered - local.set $9 + local.set $10 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $6 + local.get $8 + local.get $9 + local.get $10 local.get $9 - local.get $6 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $7 - i32.const 1 local.get $8 + i32.const 1 + local.get $6 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 3 i32.gt_s if - local.get $6 + local.get $9 local.get $4 call $~lib/util/number/dtoa_buffered - local.set $9 + local.set $10 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $6 + local.get $8 + local.get $9 + local.get $10 local.get $9 - local.get $6 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $7 - i32.const 1 local.get $8 + i32.const 1 + local.get $6 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 4 i32.gt_s if - local.get $6 + local.get $9 local.get $5 call $~lib/util/number/dtoa_buffered local.set $0 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $6 + local.get $8 + local.get $9 local.get $0 - local.get $6 + local.get $9 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $7 - i32.const 1 local.get $8 + i32.const 1 + local.get $6 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop end end end end - local.get $6 + local.get $9 i32.const 1 i32.sub else - local.get $6 + local.get $7 end i32.const 10 i32.store8 - local.get $7 + local.get $8 i32.const 1 i32.store offset=4 i32.const 2 - local.get $7 - i32.const 1 local.get $8 + i32.const 1 + local.get $6 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop - local.get $7 + local.get $8 i32.const 19024 i32.ge_u if @@ -3828,20 +3809,20 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $7 + local.get $8 i32.const 4 i32.sub - local.set $0 - local.get $7 + local.set $6 + local.get $8 i32.const 15 i32.and i32.const 1 - local.get $7 + local.get $8 select if (result i32) i32.const 1 else - local.get $0 + local.get $6 i32.load i32.const 1 i32.and @@ -3854,13 +3835,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 - local.get $0 + local.get $6 + local.get $6 i32.load i32.const 1 i32.or i32.store - local.get $0 + local.get $6 call $~lib/rt/tlsf/insertBlock end ) diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index b0723f6ef8..f6830ab9c1 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -169,16 +169,16 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 i32.const 1488 i32.load i32.gt_u @@ -190,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1492 @@ -206,26 +206,26 @@ i32.const 2 end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and 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 @@ -334,8 +334,6 @@ local.get $5 i32.store offset=4 end - local.get $1 - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -343,11 +341,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $2 local.get $3 i32.const 4 @@ -355,25 +354,26 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $4 i32.store offset=96 local.get $4 i32.eqz if + i32.const -2 + local.get $2 + i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl i32.and local.set $1 - local.get $4 + local.get $2 local.get $1 i32.store offset=4 local.get $1 @@ -582,7 +582,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -590,6 +589,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 local.set $4 @@ -605,7 +605,6 @@ local.get $1 i32.store offset=4 end - local.get $0 local.get $3 local.get $5 i32.const 4 @@ -613,6 +612,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -667,11 +667,11 @@ i32.load offset=1568 local.tee $2 if - local.get $1 local.get $2 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1440 @@ -695,11 +695,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1440 @@ -859,17 +859,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -929,15 +929,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1065,12 +1065,10 @@ end local.get $1 local.tee $0 + local.get $0 i32.load i32.const 1 i32.or - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 call $~lib/rt/tlsf/insertBlock @@ -1701,7 +1699,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store global.get $~lib/rt/itcms/total @@ -1755,20 +1753,21 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz if - i32.const 4 memory.size - local.tee $0 + local.tee $1 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 i32.sub - local.get $1 - i32.load offset=1568 i32.ne i32.shl i32.const 65563 @@ -1777,18 +1776,16 @@ i32.and i32.const 16 i32.shr_u - local.set $2 - local.get $0 - local.get $2 + local.tee $0 local.get $0 - local.get $2 - i32.gt_s + local.get $1 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $0 memory.grow i32.const 0 i32.lt_s @@ -1796,15 +1793,15 @@ unreachable end end + local.get $2 local.get $1 - local.get $0 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $1 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1831,22 +1828,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load - local.tee $2 + local.tee $1 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 $0 - local.get $2 + local.get $1 i32.const 2 i32.and i32.const 28 @@ -1855,19 +1852,19 @@ local.get $0 i32.const 32 i32.add - local.tee $2 - local.get $4 + local.tee $1 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $1 local.get $2 + local.get $1 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $2 + local.get $1 i32.const -2 i32.and i32.store @@ -1898,26 +1895,26 @@ 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 $1 + local.set $3 local.get $0 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 + local.get $3 local.get $0 - local.get $1 + local.get $3 i32.load offset=4 i32.const 3 i32.and 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 @@ -1929,16 +1926,16 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $4 local.get $0 i32.const 20 i32.add - local.tee $0 + local.tee $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 $4 ) ) From f1573da3a0b691349a2c7273c9b7bd9a6696054c Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Thu, 12 Aug 2021 14:25:24 +0300 Subject: [PATCH 3/5] better? --- src/module.ts | 2 +- tests/compiler/call-super.optimized.wat | 10 +- tests/compiler/class-implements.optimized.wat | 10 +- .../class-overloading-cast.optimized.wat | 10 +- .../compiler/class-overloading.optimized.wat | 10 +- tests/compiler/class.optimized.wat | 10 +- tests/compiler/constructor.optimized.wat | 10 +- tests/compiler/do.optimized.wat | 10 +- .../empty-exportruntime.optimized.wat | 10 +- tests/compiler/empty-new.optimized.wat | 10 +- tests/compiler/exports.optimized.wat | 10 +- .../exportstar-rereexport.optimized.wat | 10 +- .../extends-baseaggregate.optimized.wat | 10 +- .../compiler/extends-recursive.optimized.wat | 10 +- tests/compiler/features/simd.optimized.wat | 10 +- .../field-initialization.optimized.wat | 10 +- tests/compiler/for.optimized.wat | 34 +- tests/compiler/function-call.optimized.wat | 10 +- .../function-expression.optimized.wat | 10 +- tests/compiler/getter-call.optimized.wat | 10 +- tests/compiler/heap.optimized.wat | 10 +- .../implicit-getter-setter.optimized.wat | 10 +- tests/compiler/infer-array.optimized.wat | 10 +- tests/compiler/infer-generic.optimized.wat | 10 +- tests/compiler/inlining.optimized.wat | 10 +- tests/compiler/instanceof-class.optimized.wat | 10 +- tests/compiler/issues/1095.optimized.wat | 10 +- tests/compiler/issues/1225.optimized.wat | 10 +- tests/compiler/issues/1699.optimized.wat | 10 +- tests/compiler/logical.optimized.wat | 10 +- tests/compiler/loop-flow.optimized.wat | 18 +- tests/compiler/managed-cast.optimized.wat | 10 +- tests/compiler/new.optimized.wat | 10 +- tests/compiler/number.optimized.wat | 87 +- tests/compiler/object-literal.optimized.wat | 10 +- .../optional-typeparameters.optimized.wat | 10 +- tests/compiler/reexport.optimized.wat | 10 +- tests/compiler/rereexport.optimized.wat | 10 +- tests/compiler/resolve-access.optimized.wat | 26 +- tests/compiler/resolve-binary.optimized.wat | 123 ++- .../resolve-elementaccess.optimized.wat | 216 ++-- .../resolve-function-expression.optimized.wat | 10 +- tests/compiler/resolve-nested.optimized.wat | 10 +- tests/compiler/resolve-new.optimized.wat | 10 +- .../resolve-propertyaccess.optimized.wat | 10 +- tests/compiler/resolve-ternary.optimized.wat | 87 +- tests/compiler/resolve-unary.optimized.wat | 10 +- tests/compiler/rt/finalize.optimized.wat | 10 +- tests/compiler/rt/instanceof.optimized.wat | 10 +- .../runtime-incremental-export.optimized.wat | 10 +- .../rt/runtime-minimal-export.optimized.wat | 10 +- tests/compiler/std-wasi/console.optimized.wat | 56 +- tests/compiler/std-wasi/crypto.optimized.wat | 55 +- tests/compiler/std-wasi/process.optimized.wat | 159 ++- .../compiler/std/array-literal.optimized.wat | 10 +- tests/compiler/std/array.optimized.wat | 460 ++++----- tests/compiler/std/arraybuffer.optimized.wat | 10 +- tests/compiler/std/dataview.optimized.wat | 10 +- tests/compiler/std/date.optimized.wat | 10 +- tests/compiler/std/map.optimized.wat | 262 ++--- tests/compiler/std/math.optimized.wat | 683 ++++++------- tests/compiler/std/new.optimized.wat | 10 +- .../std/operator-overloading.optimized.wat | 10 +- tests/compiler/std/set.optimized.wat | 154 +-- tests/compiler/std/static-array.optimized.wat | 10 +- tests/compiler/std/staticarray.optimized.wat | 10 +- .../std/string-casemapping.optimized.wat | 68 +- .../std/string-encoding.optimized.wat | 64 +- tests/compiler/std/string.optimized.wat | 232 +++-- tests/compiler/std/symbol.optimized.wat | 10 +- tests/compiler/std/typedarray.optimized.wat | 922 +++++++++--------- tests/compiler/std/uri.optimized.wat | 10 +- tests/compiler/super-inline.optimized.wat | 10 +- tests/compiler/templateliteral.optimized.wat | 216 ++-- tests/compiler/throw.optimized.wat | 10 +- tests/compiler/typeof.optimized.wat | 10 +- tests/compiler/wasi/abort.optimized.wat | 30 +- tests/compiler/wasi/seed.optimized.wat | 24 +- tests/compiler/wasi/trace.optimized.wat | 232 ++--- tests/compiler/while.optimized.wat | 22 +- 80 files changed, 2385 insertions(+), 2407 deletions(-) diff --git a/src/module.ts b/src/module.ts index d531351b7a..9dee1994df 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2247,7 +2247,6 @@ export class Module { // --- PassRunner::addDefaultFunctionOptimizationPasses --- if (optimizeLevel >= 3 || shrinkLevel >= 1) { - passes.push("simplify-locals-notee-nostructure"); passes.push("rse"); passes.push("vacuum"); passes.push("ssa-nomerge"); @@ -2258,6 +2257,7 @@ export class Module { passes.push("precompute-propagate"); } if (optimizeLevel >= 3) { + passes.push("simplify-locals-notee-nostructure"); passes.push("flatten"); passes.push("vacuum"); passes.push("local-cse"); diff --git a/tests/compiler/call-super.optimized.wat b/tests/compiler/call-super.optimized.wat index 72a5867cfb..07b863778d 100644 --- a/tests/compiler/call-super.optimized.wat +++ b/tests/compiler/call-super.optimized.wat @@ -361,19 +361,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/class-implements.optimized.wat b/tests/compiler/class-implements.optimized.wat index c5628d6b92..32f69b7016 100644 --- a/tests/compiler/class-implements.optimized.wat +++ b/tests/compiler/class-implements.optimized.wat @@ -383,19 +383,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/class-overloading-cast.optimized.wat b/tests/compiler/class-overloading-cast.optimized.wat index c8b9ce396a..d67fa99f7d 100644 --- a/tests/compiler/class-overloading-cast.optimized.wat +++ b/tests/compiler/class-overloading-cast.optimized.wat @@ -397,19 +397,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/class-overloading.optimized.wat b/tests/compiler/class-overloading.optimized.wat index e62c19da1c..9e16398321 100644 --- a/tests/compiler/class-overloading.optimized.wat +++ b/tests/compiler/class-overloading.optimized.wat @@ -421,19 +421,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/class.optimized.wat b/tests/compiler/class.optimized.wat index 2baea073da..8cc2d9b312 100644 --- a/tests/compiler/class.optimized.wat +++ b/tests/compiler/class.optimized.wat @@ -373,19 +373,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/constructor.optimized.wat b/tests/compiler/constructor.optimized.wat index a6faec749c..9f7d08ea2c 100644 --- a/tests/compiler/constructor.optimized.wat +++ b/tests/compiler/constructor.optimized.wat @@ -438,19 +438,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/do.optimized.wat b/tests/compiler/do.optimized.wat index 417e6cb70c..1bc2b79b37 100644 --- a/tests/compiler/do.optimized.wat +++ b/tests/compiler/do.optimized.wat @@ -361,19 +361,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/empty-exportruntime.optimized.wat b/tests/compiler/empty-exportruntime.optimized.wat index 6ddfa285f3..9028df2869 100644 --- a/tests/compiler/empty-exportruntime.optimized.wat +++ b/tests/compiler/empty-exportruntime.optimized.wat @@ -379,19 +379,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/empty-new.optimized.wat b/tests/compiler/empty-new.optimized.wat index 736b574d4e..2a00627662 100644 --- a/tests/compiler/empty-new.optimized.wat +++ b/tests/compiler/empty-new.optimized.wat @@ -357,19 +357,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/exports.optimized.wat b/tests/compiler/exports.optimized.wat index b30733f2f6..479fea6fc3 100644 --- a/tests/compiler/exports.optimized.wat +++ b/tests/compiler/exports.optimized.wat @@ -411,19 +411,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/exportstar-rereexport.optimized.wat b/tests/compiler/exportstar-rereexport.optimized.wat index 0a8f440f3c..49b5eb409c 100644 --- a/tests/compiler/exportstar-rereexport.optimized.wat +++ b/tests/compiler/exportstar-rereexport.optimized.wat @@ -412,19 +412,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index 5a884b401c..eedffbb6ba 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -379,19 +379,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/extends-recursive.optimized.wat b/tests/compiler/extends-recursive.optimized.wat index 9ce7c18a23..b959595d32 100644 --- a/tests/compiler/extends-recursive.optimized.wat +++ b/tests/compiler/extends-recursive.optimized.wat @@ -368,19 +368,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/features/simd.optimized.wat b/tests/compiler/features/simd.optimized.wat index 63934390d5..819c31b5c1 100644 --- a/tests/compiler/features/simd.optimized.wat +++ b/tests/compiler/features/simd.optimized.wat @@ -144,19 +144,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/field-initialization.optimized.wat b/tests/compiler/field-initialization.optimized.wat index c3a8346b09..72d6135bc4 100644 --- a/tests/compiler/field-initialization.optimized.wat +++ b/tests/compiler/field-initialization.optimized.wat @@ -386,19 +386,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index 178d0d1294..db5ece8724 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -361,19 +361,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -1270,14 +1270,14 @@ end i32.const 0 local.set $0 - loop $for-loop|04 + loop $for-loop|05 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 10 i32.ne - br_if $for-loop|04 + br_if $for-loop|05 end local.get $0 i32.const 10 @@ -1292,7 +1292,7 @@ end i32.const 0 local.set $0 - loop $for-loop|05 + loop $for-loop|07 local.get $0 i32.const 10 i32.lt_s @@ -1301,7 +1301,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|05 + br $for-loop|07 end end local.get $0 @@ -1317,7 +1317,7 @@ end i32.const 0 local.set $0 - loop $for-loop|06 + loop $for-loop|08 local.get $0 i32.const 10 i32.lt_s @@ -1354,7 +1354,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|06 + br $for-loop|08 end end local.get $0 @@ -1441,7 +1441,7 @@ call $for/Ref#constructor local.tee $0 i32.store - loop $for-loop|07 + loop $for-loop|09 local.get $0 if local.get $1 @@ -1459,7 +1459,7 @@ local.tee $0 i32.store end - br $for-loop|07 + br $for-loop|09 end end local.get $1 @@ -1507,10 +1507,10 @@ call $for/Ref#constructor local.tee $1 i32.store - loop $for-loop|08 + loop $for-loop|06 call $for/Ref#constructor if - block $for-break09 + block $for-break07 local.get $0 i32.const 1 i32.add @@ -1520,13 +1520,13 @@ if i32.const 0 local.set $1 - br $for-break09 + br $for-break07 end global.get $~lib/memory/__stack_pointer call $for/Ref#constructor local.tee $1 i32.store - br $for-loop|08 + br $for-loop|06 end end end diff --git a/tests/compiler/function-call.optimized.wat b/tests/compiler/function-call.optimized.wat index 4bbc5220a0..229249adbb 100644 --- a/tests/compiler/function-call.optimized.wat +++ b/tests/compiler/function-call.optimized.wat @@ -399,19 +399,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/function-expression.optimized.wat b/tests/compiler/function-expression.optimized.wat index 76eba0e28e..1fe3c0790e 100644 --- a/tests/compiler/function-expression.optimized.wat +++ b/tests/compiler/function-expression.optimized.wat @@ -432,19 +432,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/getter-call.optimized.wat b/tests/compiler/getter-call.optimized.wat index f6ff1db718..6b996226c8 100644 --- a/tests/compiler/getter-call.optimized.wat +++ b/tests/compiler/getter-call.optimized.wat @@ -364,19 +364,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/heap.optimized.wat b/tests/compiler/heap.optimized.wat index 5c3e792383..78d3dacd3b 100644 --- a/tests/compiler/heap.optimized.wat +++ b/tests/compiler/heap.optimized.wat @@ -152,19 +152,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/implicit-getter-setter.optimized.wat b/tests/compiler/implicit-getter-setter.optimized.wat index ad51b18c08..45d8cf0bcf 100644 --- a/tests/compiler/implicit-getter-setter.optimized.wat +++ b/tests/compiler/implicit-getter-setter.optimized.wat @@ -374,19 +374,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index 3b4d4a507b..9e0da51d42 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -400,19 +400,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat index 37a384be89..808c53d7f9 100644 --- a/tests/compiler/infer-generic.optimized.wat +++ b/tests/compiler/infer-generic.optimized.wat @@ -386,19 +386,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat index d6e01a6201..d75ae4dad4 100644 --- a/tests/compiler/inlining.optimized.wat +++ b/tests/compiler/inlining.optimized.wat @@ -373,19 +373,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/instanceof-class.optimized.wat b/tests/compiler/instanceof-class.optimized.wat index 2b58084e68..af516fe408 100644 --- a/tests/compiler/instanceof-class.optimized.wat +++ b/tests/compiler/instanceof-class.optimized.wat @@ -375,19 +375,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/issues/1095.optimized.wat b/tests/compiler/issues/1095.optimized.wat index f9ccb61ecd..c7cc743214 100644 --- a/tests/compiler/issues/1095.optimized.wat +++ b/tests/compiler/issues/1095.optimized.wat @@ -368,19 +368,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/issues/1225.optimized.wat b/tests/compiler/issues/1225.optimized.wat index af8069bb5e..b14a157e29 100644 --- a/tests/compiler/issues/1225.optimized.wat +++ b/tests/compiler/issues/1225.optimized.wat @@ -370,19 +370,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/issues/1699.optimized.wat b/tests/compiler/issues/1699.optimized.wat index da1951b573..6b92c527f8 100644 --- a/tests/compiler/issues/1699.optimized.wat +++ b/tests/compiler/issues/1699.optimized.wat @@ -375,19 +375,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/logical.optimized.wat b/tests/compiler/logical.optimized.wat index 8f42d41a24..4dd8cf375c 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -361,19 +361,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/loop-flow.optimized.wat b/tests/compiler/loop-flow.optimized.wat index 0ecceb0ad5..9812a7bc0e 100644 --- a/tests/compiler/loop-flow.optimized.wat +++ b/tests/compiler/loop-flow.optimized.wat @@ -26,11 +26,13 @@ i32.const 1 ) (func $loop-flow/whileAny (param $0 i32) (result i32) - loop $while-continue|0 + loop $while-continue|0 (result i32) local.get $0 i32.const 1 - i32.ne - if + i32.eq + if (result i32) + i32.const 1 + else local.get $0 i32.const 2 i32.ne @@ -43,14 +45,15 @@ unreachable end end - i32.const 1 ) (func $loop-flow/forAny (param $0 i32) (result i32) - loop $for-loop|0 + loop $for-loop|0 (result i32) local.get $0 i32.const 1 - i32.ne - if + i32.eq + if (result i32) + i32.const 1 + else local.get $0 i32.const 2 i32.eq @@ -65,7 +68,6 @@ br $for-loop|0 end end - i32.const 1 ) (func $loop-flow/doAny (param $0 i32) (result i32) loop $do-continue|0 diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index 597c7e5198..57fb4a9d27 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -365,19 +365,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/new.optimized.wat b/tests/compiler/new.optimized.wat index c3b37194ca..22caaa5893 100644 --- a/tests/compiler/new.optimized.wat +++ b/tests/compiler/new.optimized.wat @@ -401,19 +401,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index 7c8c0e27d3..b206eb6e81 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -408,19 +408,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -3903,7 +3903,14 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $3 + local.tee $2 + i64.const 32 + i64.shr_u + local.tee $4 + i64.const 31 + i64.shl + local.tee $6 + local.get $2 i64.const 4294967295 i64.and local.tee $2 @@ -3916,13 +3923,14 @@ i64.const 32 i64.shr_u i64.add - local.tee $4 - i64.const 4294967295 - i64.and - local.get $3 + local.tee $3 i64.const 32 i64.shr_u - local.tee $3 + i64.add + local.get $3 + i64.const 4294967295 + i64.and + local.get $4 i64.const 10 i64.shl i64.add @@ -3930,68 +3938,59 @@ i64.add i64.const 32 i64.shr_u - local.get $3 - i64.const 31 - i64.shl - local.tee $6 - local.get $4 - i64.const 32 - i64.shr_u - i64.add i64.add i64.const 1 i64.sub - local.tee $4 - local.get $3 - i64.const 4294966784 - i64.mul - local.get $2 - i64.const 2147483647 - i64.mul - local.get $2 - i64.const 4294966784 - i64.mul + local.set $3 + local.get $6 + local.get $5 i64.const 32 i64.shr_u i64.add - local.tee $2 + local.get $5 i64.const 4294967295 i64.and - i64.add i64.const 2147483647 i64.add i64.const 32 i64.shr_u + i64.add local.get $3 + global.get $~lib/util/number/_exp_pow + i32.const 2 + i32.add + local.get $3 + local.get $4 i64.const 2147483647 i64.mul local.get $2 + i64.const 2147483647 + i64.mul + local.get $2 + i64.const 4294966784 + i64.mul i64.const 32 i64.shr_u i64.add - i64.add - i64.const 1 - i64.add - i64.sub - local.set $2 - local.get $6 - local.get $5 + local.tee $2 i64.const 32 i64.shr_u i64.add - local.get $5 + local.get $4 + i64.const 4294966784 + i64.mul + local.get $2 i64.const 4294967295 i64.and + i64.add i64.const 2147483647 i64.add i64.const 32 i64.shr_u i64.add - local.get $4 - global.get $~lib/util/number/_exp_pow - i32.const 2 - i32.add - local.get $2 + i64.const 1 + i64.add + i64.sub call $~lib/util/number/genDigits global.get $~lib/util/number/_K call $~lib/util/number/prettify diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index e2b2667c68..48c435be48 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -433,19 +433,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/optional-typeparameters.optimized.wat b/tests/compiler/optional-typeparameters.optimized.wat index 37addd0173..743eaa442c 100644 --- a/tests/compiler/optional-typeparameters.optimized.wat +++ b/tests/compiler/optional-typeparameters.optimized.wat @@ -373,19 +373,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/reexport.optimized.wat b/tests/compiler/reexport.optimized.wat index 086dc6b05a..6f15b9a47e 100644 --- a/tests/compiler/reexport.optimized.wat +++ b/tests/compiler/reexport.optimized.wat @@ -450,19 +450,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/rereexport.optimized.wat b/tests/compiler/rereexport.optimized.wat index 93061282ba..e956a70bcb 100644 --- a/tests/compiler/rereexport.optimized.wat +++ b/tests/compiler/rereexport.optimized.wat @@ -412,19 +412,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index 1ff470d080..a5fa94ebbc 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -386,19 +386,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -2761,22 +2761,22 @@ i32.rem_u local.tee $4 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 1740 i32.add i64.load32_u - i64.const 32 - i64.shl local.get $4 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 1740 i32.add i64.load32_u + i64.const 32 + i64.shl i64.or i64.store local.get $2 @@ -2792,22 +2792,22 @@ i32.div_u local.tee $3 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 1740 i32.add i64.load32_u - i64.const 32 - i64.shl local.get $3 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 1740 i32.add i64.load32_u + i64.const 32 + i64.shl i64.or i64.store br $while-continue|0 diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index 95e13468f1..ad100c20da 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -702,19 +702,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -3962,10 +3962,10 @@ (func $~lib/number/F64#toString (result i32) (local $0 i64) (local $1 i64) - (local $2 i32) - (local $3 i64) - (local $4 i32) - (local $5 i64) + (local $2 i64) + (local $3 i32) + (local $4 i64) + (local $5 i32) (local $6 f64) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3994,29 +3994,33 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $3 + local.tee $4 i64.const 4294967295 i64.and - local.tee $0 + local.set $1 + local.get $4 + i64.const 32 + i64.shr_u + local.tee $4 i64.const 31 i64.shl - local.set $5 - local.get $0 + local.get $1 i64.const 31 i64.shl - local.get $0 + local.get $1 i64.const 10 i64.shl i64.const 32 i64.shr_u i64.add - local.tee $1 - i64.const 4294967295 - i64.and - local.get $3 + local.tee $2 i64.const 32 i64.shr_u - local.tee $3 + i64.add + local.get $2 + i64.const 4294967295 + i64.and + local.get $4 i64.const 10 i64.shl i64.add @@ -4024,91 +4028,86 @@ i64.add i64.const 32 i64.shr_u - local.get $3 - i64.const 31 - i64.shl - local.get $1 - i64.const 32 - i64.shr_u - i64.add i64.add i64.const 1 i64.sub - local.tee $1 - local.get $3 - i64.const 4294966784 - i64.mul - local.get $0 - i64.const 2147483647 - i64.mul - local.get $0 - i64.const 4294966784 - i64.mul + local.set $0 + local.get $4 + i64.const 31 + i64.shl + local.get $1 + i64.const 31 + i64.shl + local.tee $2 i64.const 32 i64.shr_u i64.add - local.tee $0 + local.get $2 i64.const 4294967295 i64.and - i64.add i64.const 2147483647 i64.add i64.const 32 i64.shr_u - local.get $3 + i64.add + local.get $0 + global.get $~lib/util/number/_exp_pow + i32.const 3 + i32.add + local.get $0 + local.get $4 i64.const 2147483647 i64.mul - local.get $0 + local.get $1 + i64.const 2147483647 + i64.mul + local.get $1 + i64.const 4294966784 + i64.mul i64.const 32 i64.shr_u i64.add - i64.add - i64.const 1 - i64.add - i64.sub - local.set $0 - local.get $3 - i64.const 31 - i64.shl - local.get $5 + local.tee $0 i64.const 32 i64.shr_u i64.add - local.get $5 + local.get $4 + i64.const 4294966784 + i64.mul + local.get $0 i64.const 4294967295 i64.and + i64.add i64.const 2147483647 i64.add i64.const 32 i64.shr_u i64.add - local.get $1 - global.get $~lib/util/number/_exp_pow - i32.const 3 - i32.add - local.get $0 + i64.const 1 + i64.add + i64.sub call $~lib/util/number/genDigits global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 1 i32.shl - local.tee $4 + local.tee $5 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 9760 - local.get $4 + local.get $5 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 $3 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index ea630e2c02..3f86939ae5 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -438,19 +438,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -3693,20 +3693,17 @@ (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) (local $1 i64) (local $2 i64) - (local $3 i32) + (local $3 i64) (local $4 i32) - (local $5 i64) + (local $5 i32) (local $6 i64) - (local $7 i32) + (local $7 i64) (local $8 i32) - (local $9 i64) - (local $10 i64) - (local $11 i64) - (local $12 i64) + (local $9 i32) local.get $0 f64.const 0 f64.lt - local.tee $7 + local.tee $8 if (result f64) i32.const 1776 i32.const 45 @@ -3739,11 +3736,10 @@ i64.const 1 i64.add local.tee $1 + local.get $1 i64.clz i32.wrap_i64 - local.set $3 - local.get $1 - local.get $3 + local.tee $5 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -3753,10 +3749,10 @@ select i32.const 1075 i32.sub - local.tee $8 + local.tee $9 i32.const 1 i32.sub - local.get $3 + local.get $5 i32.sub local.set $4 local.get $2 @@ -3765,13 +3761,13 @@ i64.eq i32.const 1 i32.add - local.tee $3 + local.tee $5 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $8 - local.get $3 + local.get $9 + local.get $5 i32.sub local.get $4 i32.sub @@ -3792,9 +3788,9 @@ f64.add local.tee $0 i32.trunc_f64_s - local.tee $3 + local.tee $5 local.get $0 - local.get $3 + local.get $5 f64.convert_i32_s f64.ne i32.add @@ -3802,18 +3798,18 @@ i32.shr_s i32.const 1 i32.add - local.tee $3 + local.tee $5 i32.const 3 i32.shl - local.tee $8 + local.tee $9 i32.sub global.set $~lib/util/number/_K - local.get $8 + local.get $9 i32.const 1832 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $3 + local.get $5 i32.const 1 i32.shl i32.const 2528 @@ -3821,63 +3817,86 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $9 - i64.const 4294967295 - i64.and - local.tee $1 - local.get $2 - local.get $2 - i64.clz - i64.shl - local.tee $10 + local.tee $6 i64.const 4294967295 i64.and - local.tee $11 - i64.mul - local.set $5 - local.get $9 + local.set $1 + local.get $6 i64.const 32 i64.shr_u - local.tee $2 - local.get $11 + local.tee $6 + global.get $~lib/util/number/_frc_plus + local.tee $3 + i64.const 32 + i64.shr_u + local.tee $7 i64.mul local.get $1 - local.get $10 + local.get $7 + i64.mul + local.get $1 + local.get $3 + i64.const 4294967295 + i64.and + local.tee $3 + i64.mul i64.const 32 i64.shr_u - local.tee $9 - i64.mul - local.get $5 + i64.add + local.tee $7 i64.const 32 i64.shr_u i64.add - local.tee $10 + local.get $3 + local.get $6 + i64.mul + local.get $7 i64.const 4294967295 i64.and i64.add i64.const 2147483647 i64.add - local.set $11 + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.set $3 + local.get $8 + i32.const 1 + i32.shl + i32.const 1776 + i32.add + local.get $6 local.get $2 - global.get $~lib/util/number/_frc_plus - local.tee $5 - i64.const 4294967295 - i64.and - local.tee $6 - i64.mul - local.get $1 - local.get $5 + local.get $2 + i64.clz + i64.shl + local.tee $2 i64.const 32 i64.shr_u - local.tee $5 + local.tee $7 i64.mul local.get $1 - local.get $6 + local.get $7 + i64.mul + local.get $1 + local.get $2 + i64.const 4294967295 + i64.and + local.tee $2 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $6 + local.tee $7 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $6 + i64.mul + local.get $7 i64.const 4294967295 i64.and i64.add @@ -3885,37 +3904,41 @@ i64.add i64.const 32 i64.shr_u - local.get $2 - local.get $5 - i64.mul + i64.add + local.get $3 + local.get $4 + global.get $~lib/util/number/_exp_pow + i32.add + i32.const -64 + i32.sub + local.get $3 local.get $6 + global.get $~lib/util/number/_frc_minus + local.tee $2 i64.const 32 i64.shr_u - i64.add - i64.add - i64.const 1 - i64.sub - local.tee $5 + local.tee $3 + i64.mul + local.get $1 + local.get $3 + i64.mul + local.get $1 local.get $2 - global.get $~lib/util/number/_frc_minus - local.tee $6 i64.const 4294967295 i64.and - local.tee $12 + local.tee $1 i64.mul - local.get $1 - local.get $6 i64.const 32 i64.shr_u - local.tee $6 - i64.mul - local.get $1 - local.get $12 - i64.mul + i64.add + local.tee $2 i64.const 32 i64.shr_u i64.add - local.tee $1 + local.get $1 + local.get $6 + i64.mul + local.get $2 i64.const 4294967295 i64.and i64.add @@ -3923,48 +3946,17 @@ i64.add i64.const 32 i64.shr_u - local.get $2 - local.get $6 - i64.mul - local.get $1 - i64.const 32 - i64.shr_u - i64.add i64.add i64.const 1 i64.add i64.sub - local.set $1 - local.get $7 - i32.const 1 - i32.shl - i32.const 1776 - i32.add - local.get $2 - local.get $9 - i64.mul - local.get $10 - i64.const 32 - i64.shr_u - i64.add - local.get $11 - i64.const 32 - i64.shr_u - i64.add - local.get $5 - local.get $4 - global.get $~lib/util/number/_exp_pow - i32.add - i32.const -64 - i32.sub - local.get $1 - local.get $7 + local.get $8 call $~lib/util/number/genDigits - local.get $7 + local.get $8 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $7 + local.get $8 i32.add ) (func $~lib/number/F32#toString (param $0 f32) (result i32) diff --git a/tests/compiler/resolve-function-expression.optimized.wat b/tests/compiler/resolve-function-expression.optimized.wat index 6bff940043..65dc7992a1 100644 --- a/tests/compiler/resolve-function-expression.optimized.wat +++ b/tests/compiler/resolve-function-expression.optimized.wat @@ -401,19 +401,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/resolve-nested.optimized.wat b/tests/compiler/resolve-nested.optimized.wat index 92429aaf40..442c9ec450 100644 --- a/tests/compiler/resolve-nested.optimized.wat +++ b/tests/compiler/resolve-nested.optimized.wat @@ -370,19 +370,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/resolve-new.optimized.wat b/tests/compiler/resolve-new.optimized.wat index f0ef00803a..3348673d35 100644 --- a/tests/compiler/resolve-new.optimized.wat +++ b/tests/compiler/resolve-new.optimized.wat @@ -366,19 +366,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/resolve-propertyaccess.optimized.wat b/tests/compiler/resolve-propertyaccess.optimized.wat index cca6a9149e..6b853eb73b 100644 --- a/tests/compiler/resolve-propertyaccess.optimized.wat +++ b/tests/compiler/resolve-propertyaccess.optimized.wat @@ -401,19 +401,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index da56a8608e..34785f64a6 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -405,19 +405,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -3830,7 +3830,14 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $3 + local.tee $1 + i64.const 32 + i64.shr_u + local.tee $4 + i64.const 31 + i64.shl + local.tee $6 + local.get $1 i64.const 4294967295 i64.and local.tee $1 @@ -3843,13 +3850,14 @@ i64.const 32 i64.shr_u i64.add - local.tee $4 - i64.const 4294967295 - i64.and - local.get $3 + local.tee $3 i64.const 32 i64.shr_u - local.tee $3 + i64.add + local.get $3 + i64.const 4294967295 + i64.and + local.get $4 i64.const 10 i64.shl i64.add @@ -3857,68 +3865,59 @@ i64.add i64.const 32 i64.shr_u - local.get $3 - i64.const 31 - i64.shl - local.tee $6 - local.get $4 - i64.const 32 - i64.shr_u - i64.add i64.add i64.const 1 i64.sub - local.tee $4 - local.get $3 - i64.const 4294966784 - i64.mul - local.get $1 - i64.const 2147483647 - i64.mul - local.get $1 - i64.const 4294966784 - i64.mul + local.set $3 + local.get $6 + local.get $5 i64.const 32 i64.shr_u i64.add - local.tee $1 + local.get $5 i64.const 4294967295 i64.and - i64.add i64.const 2147483647 i64.add i64.const 32 i64.shr_u + i64.add local.get $3 + global.get $~lib/util/number/_exp_pow + i32.const 1 + i32.add + local.get $3 + local.get $4 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 - i64.add - i64.const 1 - i64.add - i64.sub - local.set $1 - local.get $6 - local.get $5 + local.tee $1 i64.const 32 i64.shr_u i64.add - local.get $5 + local.get $4 + 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 - local.get $4 - global.get $~lib/util/number/_exp_pow - i32.const 1 - i32.add - local.get $1 + i64.const 1 + i64.add + i64.sub call $~lib/util/number/genDigits global.get $~lib/util/number/_K call $~lib/util/number/prettify diff --git a/tests/compiler/resolve-unary.optimized.wat b/tests/compiler/resolve-unary.optimized.wat index 8ceaeaca6c..a7439ae369 100644 --- a/tests/compiler/resolve-unary.optimized.wat +++ b/tests/compiler/resolve-unary.optimized.wat @@ -421,19 +421,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/rt/finalize.optimized.wat b/tests/compiler/rt/finalize.optimized.wat index 5d2e896d7c..f4f0b34ca8 100644 --- a/tests/compiler/rt/finalize.optimized.wat +++ b/tests/compiler/rt/finalize.optimized.wat @@ -364,19 +364,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/rt/instanceof.optimized.wat b/tests/compiler/rt/instanceof.optimized.wat index 854d28e7b5..85c878ac88 100644 --- a/tests/compiler/rt/instanceof.optimized.wat +++ b/tests/compiler/rt/instanceof.optimized.wat @@ -404,19 +404,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/rt/runtime-incremental-export.optimized.wat b/tests/compiler/rt/runtime-incremental-export.optimized.wat index 6ddfa285f3..9028df2869 100644 --- a/tests/compiler/rt/runtime-incremental-export.optimized.wat +++ b/tests/compiler/rt/runtime-incremental-export.optimized.wat @@ -379,19 +379,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 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 c0721525ea..e0ebf66c61 100644 --- a/tests/compiler/rt/runtime-minimal-export.optimized.wat +++ b/tests/compiler/rt/runtime-minimal-export.optimized.wat @@ -160,19 +160,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/std-wasi/console.optimized.wat b/tests/compiler/std-wasi/console.optimized.wat index 8bfae98696..c9a39156ed 100644 --- a/tests/compiler/std-wasi/console.optimized.wat +++ b/tests/compiler/std-wasi/console.optimized.wat @@ -297,12 +297,12 @@ i32.const 1 i32.shl i32.add - local.set $5 + local.set $4 local.get $2 local.set $1 loop $while-continue|0 local.get $0 - local.get $5 + local.get $4 i32.lt_u if local.get $0 @@ -347,7 +347,7 @@ i32.const 55296 i32.eq if - local.get $5 + local.get $4 local.get $0 i32.const 2 i32.add @@ -360,12 +360,13 @@ if local.get $0 i32.load16_u offset=2 - local.tee $4 + local.tee $5 i32.const 64512 i32.and i32.const 56320 i32.eq if + local.get $1 local.get $3 i32.const 1023 i32.and @@ -373,26 +374,18 @@ i32.shl i32.const 65536 i32.add - local.get $4 + local.get $5 i32.const 1023 i32.and i32.or - local.tee $4 + local.tee $3 i32.const 63 i32.and i32.const 128 i32.or - local.set $3 - local.get $1 - local.get $4 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or - local.get $3 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 6 i32.shr_u i32.const 63 @@ -402,7 +395,7 @@ i32.const 16 i32.shl i32.or - local.get $4 + local.get $3 i32.const 12 i32.shr_u i32.const 63 @@ -412,6 +405,11 @@ i32.const 8 i32.shl i32.or + local.get $3 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or i32.or i32.store local.get $1 @@ -1132,19 +1130,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -3659,22 +3657,22 @@ i32.rem_u local.tee $4 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 6012 i32.add i64.load32_u - i64.const 32 - i64.shl local.get $4 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 6012 i32.add i64.load32_u + i64.const 32 + i64.shl i64.or i64.store local.get $2 @@ -3690,22 +3688,22 @@ i32.div_u local.tee $3 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 6012 i32.add i64.load32_u - i64.const 32 - i64.shl local.get $3 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 6012 i32.add i64.load32_u + i64.const 32 + i64.shl i64.or i64.store br $while-continue|0 diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index cabd42745e..e93a52b547 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -253,12 +253,12 @@ i32.const 1 i32.shl i32.add - local.set $5 + local.set $4 local.get $2 local.set $1 loop $while-continue|0 local.get $0 - local.get $5 + local.get $4 i32.lt_u if local.get $0 @@ -303,7 +303,7 @@ i32.const 55296 i32.eq if - local.get $5 + local.get $4 local.get $0 i32.const 2 i32.add @@ -316,12 +316,13 @@ if local.get $0 i32.load16_u offset=2 - local.tee $4 + local.tee $5 i32.const 64512 i32.and i32.const 56320 i32.eq if + local.get $1 local.get $3 i32.const 1023 i32.and @@ -329,26 +330,18 @@ i32.shl i32.const 65536 i32.add - local.get $4 + local.get $5 i32.const 1023 i32.and i32.or - local.tee $4 + local.tee $3 i32.const 63 i32.and i32.const 128 i32.or - local.set $3 - local.get $1 - local.get $4 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or - local.get $3 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 6 i32.shr_u i32.const 63 @@ -358,7 +351,7 @@ i32.const 16 i32.shl i32.or - local.get $4 + local.get $3 i32.const 12 i32.shr_u i32.const 63 @@ -368,6 +361,11 @@ i32.const 8 i32.shl i32.or + local.get $3 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or i32.or i32.store local.get $1 @@ -1006,19 +1004,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -4054,22 +4052,21 @@ i32.const 0 local.set $2 local.get $0 - local.set $1 - local.get $0 + local.tee $1 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.add - local.set $3 + local.set $4 loop $while-continue|0 local.get $1 - local.get $3 + local.get $4 i32.lt_u if local.get $1 i32.load16_u - local.tee $4 + local.tee $3 i32.const 128 i32.lt_u if (result i32) @@ -4077,7 +4074,7 @@ i32.const 1 i32.add else - local.get $4 + local.get $3 i32.const 2048 i32.lt_u if (result i32) @@ -4085,13 +4082,13 @@ i32.const 2 i32.add else - local.get $3 + local.get $4 local.get $1 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $4 + local.get $3 i32.const 64512 i32.and i32.const 55296 diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index 20f74a9e54..26ee41775c 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -283,12 +283,12 @@ i32.const 1 i32.shl i32.add - local.set $5 + local.set $4 local.get $2 local.set $1 loop $while-continue|0 local.get $0 - local.get $5 + local.get $4 i32.lt_u if local.get $0 @@ -333,7 +333,7 @@ i32.const 55296 i32.eq if - local.get $5 + local.get $4 local.get $0 i32.const 2 i32.add @@ -346,12 +346,13 @@ if local.get $0 i32.load16_u offset=2 - local.tee $4 + local.tee $5 i32.const 64512 i32.and i32.const 56320 i32.eq if + local.get $1 local.get $3 i32.const 1023 i32.and @@ -359,26 +360,18 @@ i32.shl i32.const 65536 i32.add - local.get $4 + local.get $5 i32.const 1023 i32.and i32.or - local.tee $4 + local.tee $3 i32.const 63 i32.and i32.const 128 i32.or - local.set $3 - local.get $1 - local.get $4 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or - local.get $3 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 6 i32.shr_u i32.const 63 @@ -388,7 +381,7 @@ i32.const 16 i32.shl i32.or - local.get $4 + local.get $3 i32.const 12 i32.shr_u i32.const 63 @@ -398,6 +391,11 @@ i32.const 8 i32.shl i32.or + local.get $3 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or i32.or i32.store local.get $1 @@ -1118,19 +1116,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -2088,22 +2086,21 @@ i32.const 0 local.set $2 local.get $0 - local.set $1 - local.get $0 + local.tee $1 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.add - local.set $3 + local.set $4 loop $while-continue|0 local.get $1 - local.get $3 + local.get $4 i32.lt_u if local.get $1 i32.load16_u - local.tee $4 + local.tee $3 i32.const 128 i32.lt_u if (result i32) @@ -2111,7 +2108,7 @@ i32.const 1 i32.add else - local.get $4 + local.get $3 i32.const 2048 i32.lt_u if (result i32) @@ -2119,13 +2116,13 @@ i32.const 2 i32.add else - local.get $3 + local.get $4 local.get $1 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $4 + local.get $3 i32.const 64512 i32.and i32.const 55296 @@ -4522,22 +4519,22 @@ i32.rem_u local.tee $4 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 5708 i32.add i64.load32_u - i64.const 32 - i64.shl local.get $4 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 5708 i32.add i64.load32_u + i64.const 32 + i64.shl i64.or i64.store local.get $2 @@ -4553,22 +4550,22 @@ i32.div_u local.tee $3 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 5708 i32.add i64.load32_u - i64.const 32 - i64.shl local.get $3 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 5708 i32.add i64.load32_u + i64.const 32 + i64.shl i64.or i64.store br $while-continue|0 @@ -5117,13 +5114,13 @@ 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 i32.const 1056 i32.store i32.const 1056 @@ -5189,11 +5186,11 @@ i32.const 1088 i32.const 1092 call $~lib/bindings/wasi_snapshot_preview1/args_sizes_get - local.tee $0 + local.tee $1 i32.const 65535 i32.and if - local.get $0 + local.get $1 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 66 @@ -5203,7 +5200,7 @@ end i32.const 1088 i32.load - local.tee $0 + local.tee $4 i32.const 2 i32.shl local.tee $5 @@ -5212,8 +5209,8 @@ i32.add local.tee $7 call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 local.get $5 i32.add call $~lib/bindings/wasi_snapshot_preview1/args_get @@ -5230,18 +5227,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 call $~lib/array/Array<~lib/string/String>#constructor local.tee $5 i32.store loop $for-loop|0 - local.get $0 + local.get $3 local.get $4 - i32.gt_s + i32.lt_s if global.get $~lib/memory/__stack_pointer + local.get $1 local.get $3 - local.get $4 i32.const 2 i32.shl i32.add @@ -5250,23 +5247,23 @@ local.get $6 local.get $7 i32.add - local.get $3 + local.get $1 i32.sub call $~lib/string/String.UTF8.decodeUnsafe local.tee $6 i32.store offset=4 local.get $5 - local.get $4 + local.get $3 local.get $6 call $~lib/array/Array<~lib/string/String>#__set - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $for-loop|0 end end - local.get $3 + local.get $1 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 8 @@ -5283,33 +5280,33 @@ call $~lib/console/console.log global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/argv - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 local.set $3 loop $for-loop|00 - local.get $1 + local.get $0 local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/argv - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 local.get $1 + local.get $0 call $~lib/array/Array<~lib/string/String>#__get - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 - call $~lib/console/console.log local.get $1 + call $~lib/console/console.log + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|00 end end @@ -5405,36 +5402,36 @@ i32.const 5232 call $~lib/console/console.log i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/envKeys - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 local.set $3 loop $for-loop|1 - local.get $1 + local.get $0 local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std-wasi/process/envKeys local.tee $4 i32.store - local.get $0 - local.get $4 local.get $1 + local.get $4 + local.get $0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $1 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 $0 + local.get $1 call $~lib/console/console.log global.get $~lib/memory/__stack_pointer i32.const 5312 @@ -5446,11 +5443,11 @@ local.tee $4 i32.store offset=4 local.get $4 - local.get $0 - local.get $0 + local.get $1 + local.get $1 call $~lib/util/hash/HASH<~lib/string/String> call $~lib/map/Map<~lib/string/String,~lib/string/String>#find - local.tee $0 + local.tee $1 i32.eqz if i32.const 5344 @@ -5461,16 +5458,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 - local.tee $0 + local.tee $1 i32.store - local.get $0 - call $~lib/console/console.log local.get $1 + call $~lib/console/console.log + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index 3f07d7dc62..6df6a8faaa 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -459,19 +459,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index e5aa7307e5..c5ad0083c1 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -1058,19 +1058,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -10429,19 +10429,21 @@ ) (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) (local $2 i64) - (local $3 i32) - (local $4 i64) - (local $5 i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) (local $6 i64) - (local $7 i32) - (local $8 i32) + (local $7 i64) + (local $8 i64) (local $9 i32) - (local $10 i64) + (local $10 i32) (local $11 i64) + (local $12 i64) + (local $13 i64) local.get $1 f64.const 0 f64.lt - local.tee $8 + local.tee $9 if (result f64) local.get $0 i32.const 45 @@ -10458,19 +10460,19 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $3 + local.tee $4 i32.const 1 - local.get $3 + local.get $4 select i32.const 1075 i32.sub - local.tee $9 + local.tee $10 i32.const 1 i32.sub local.get $2 i64.const 4503599627370495 i64.and - local.get $3 + local.get $4 i32.const 0 i32.ne i64.extend_i32_u @@ -10482,14 +10484,14 @@ i64.shl i64.const 1 i64.add - local.tee $4 + local.tee $3 i64.clz i32.wrap_i64 - local.tee $7 + local.tee $5 i32.sub - local.set $3 - local.get $4 - local.get $7 + local.set $4 + local.get $3 + local.get $5 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -10499,25 +10501,25 @@ i64.eq i32.const 1 i32.add - local.tee $7 + local.tee $5 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $9 - local.get $7 + local.get $10 + local.get $5 i32.sub - local.get $3 + local.get $4 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $3 + local.get $4 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $9 + local.tee $10 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -10526,9 +10528,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $3 + local.tee $4 local.get $1 - local.get $3 + local.get $4 f64.convert_i32_s f64.ne i32.add @@ -10536,18 +10538,18 @@ i32.shr_s i32.const 1 i32.add - local.tee $3 + local.tee $4 i32.const 3 i32.shl - local.tee $7 + local.tee $5 i32.sub global.set $~lib/util/number/_K - local.get $7 + local.get $5 i32.const 11752 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $3 + local.get $4 i32.const 1 i32.shl i32.const 12448 @@ -10558,38 +10560,59 @@ local.get $2 i64.clz i64.shl - local.tee $10 + local.tee $3 i64.const 4294967295 i64.and - local.set $5 + local.set $11 global.get $~lib/util/number/_frc_pow - local.tee $4 + local.tee $6 i64.const 4294967295 i64.and - local.set $2 - local.get $4 + local.tee $2 + local.get $3 i64.const 32 i64.shr_u - local.tee $4 + local.tee $13 + i64.mul + local.get $2 + local.get $11 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $12 global.get $~lib/util/number/_frc_plus - local.tee $6 + local.tee $3 i64.const 4294967295 i64.and - local.tee $11 - i64.mul + local.set $7 local.get $2 - local.get $6 + local.get $3 i64.const 32 i64.shr_u - local.tee $6 + local.tee $3 i64.mul local.get $2 - local.get $11 + local.get $7 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $11 + local.set $8 + local.get $3 + local.get $6 + i64.const 32 + i64.shr_u + local.tee $3 + i64.mul + local.get $8 + i64.const 32 + i64.shr_u + i64.add + local.get $3 + local.get $7 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -10597,39 +10620,45 @@ i64.add i64.const 32 i64.shr_u - local.get $4 + i64.add + i64.const 1 + i64.sub + local.set $7 + global.get $~lib/util/number/_frc_minus + local.tee $6 + i64.const 4294967295 + i64.and + local.set $8 + local.get $2 local.get $6 + i64.const 32 + i64.shr_u + local.tee $6 + i64.mul + local.get $2 + local.get $8 i64.mul - local.get $11 i64.const 32 i64.shr_u i64.add - i64.add - i64.const 1 - i64.sub - local.set $6 - local.get $8 + local.set $2 + local.get $9 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $4 - local.get $5 - i64.mul - local.get $2 - local.get $10 - i64.const 32 - i64.shr_u - local.tee $10 - i64.mul - local.get $2 - local.get $5 + local.get $3 + local.get $13 i64.mul + local.get $12 i64.const 32 i64.shr_u i64.add - local.tee $5 + local.get $3 + local.get $11 + i64.mul + local.get $12 i64.const 4294967295 i64.and i64.add @@ -10637,41 +10666,25 @@ i64.add i64.const 32 i64.shr_u - local.get $4 - local.get $10 - i64.mul - local.get $5 - i64.const 32 - i64.shr_u - i64.add i64.add - local.get $6 - local.get $9 + local.get $7 + local.get $10 global.get $~lib/util/number/_exp_pow i32.add i32.const -64 i32.sub + local.get $7 + local.get $3 local.get $6 - local.get $4 - global.get $~lib/util/number/_frc_minus - local.tee $5 - i64.const 4294967295 - i64.and - local.tee $6 i64.mul local.get $2 - local.get $5 i64.const 32 i64.shr_u - local.tee $5 + i64.add + local.get $3 + local.get $8 i64.mul local.get $2 - local.get $6 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $2 i64.const 4294967295 i64.and i64.add @@ -10679,24 +10692,17 @@ i64.add i64.const 32 i64.shr_u - local.get $4 - local.get $5 - i64.mul - local.get $2 - i64.const 32 - i64.shr_u - i64.add i64.add i64.const 1 i64.add i64.sub - local.get $8 + local.get $9 call $~lib/util/number/genDigits - local.get $8 + local.get $9 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $8 + local.get $9 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -11343,22 +11349,22 @@ i32.rem_u local.tee $4 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 9628 i32.add i64.load32_u - i64.const 32 - i64.shl local.get $4 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 9628 i32.add i64.load32_u + i64.const 32 + i64.shl i64.or i64.store local.get $2 @@ -11374,22 +11380,22 @@ i32.div_u local.tee $3 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 9628 i32.add i64.load32_u - i64.const 32 - i64.shl local.get $3 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 9628 i32.add i64.load32_u + i64.const 32 + i64.shl i64.or i64.store br $while-continue|0 @@ -21019,17 +21025,17 @@ i32.const 6576 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 - loop $for-loop|089 - local.get $0 + local.set $0 + loop $for-loop|057 local.get $1 + local.get $0 local.get $4 i32.load offset=12 local.tee $3 - local.get $1 + local.get $0 local.get $3 i32.lt_s select @@ -21037,23 +21043,23 @@ if local.get $4 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 $4 i32.const 6576 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|089 + local.set $1 + br $for-loop|057 end end global.get $std/array/i @@ -21078,17 +21084,17 @@ i32.const 6608 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 - loop $for-loop|091 - local.get $0 + local.set $0 + loop $for-loop|05989 local.get $1 + local.get $0 local.get $4 i32.load offset=12 local.tee $3 - local.get $1 + local.get $0 local.get $3 i32.lt_s select @@ -21096,23 +21102,23 @@ if local.get $4 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 $4 i32.const 6608 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|091 + local.set $1 + br $for-loop|05989 end end global.get $std/array/i @@ -21153,17 +21159,17 @@ i32.const 6640 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 - loop $for-loop|093 - local.get $0 + local.set $0 + loop $for-loop|062 local.get $1 + local.get $0 local.get $4 i32.load offset=12 local.tee $3 - local.get $1 + local.get $0 local.get $3 i32.lt_s select @@ -21171,23 +21177,23 @@ if local.get $4 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 $4 i32.const 6640 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|093 + local.set $1 + br $for-loop|062 end end global.get $std/array/i @@ -21240,17 +21246,17 @@ i32.const 6672 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 - loop $for-loop|095 - local.get $0 + local.set $0 + loop $for-loop|064 local.get $1 + local.get $0 local.get $4 i32.load offset=12 local.tee $3 - local.get $1 + local.get $0 local.get $3 i32.lt_s select @@ -21258,23 +21264,23 @@ if local.get $4 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 $4 i32.const 6672 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|095 + local.set $1 + br $for-loop|064 end end global.get $std/array/i @@ -21329,17 +21335,17 @@ i32.const 6704 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 - loop $for-loop|097 - local.get $0 + local.set $0 + loop $for-loop|06790 local.get $1 + local.get $0 local.get $4 i32.load offset=12 local.tee $3 - local.get $1 + local.get $0 local.get $3 i32.lt_s select @@ -21347,23 +21353,23 @@ if local.get $4 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 $4 i32.const 6704 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|097 + local.set $1 + br $for-loop|06790 end end global.get $~lib/memory/__stack_pointer @@ -21384,7 +21390,7 @@ end i32.const 0 local.set $0 - loop $for-loop|060 + loop $for-loop|06991 local.get $0 i32.const 100 i32.lt_s @@ -21400,7 +21406,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|060 + br $for-loop|06991 end end global.get $~lib/memory/__stack_pointer @@ -21470,7 +21476,7 @@ local.get $7 i32.load offset=4 local.set $5 - loop $for-loop|06199 + loop $for-loop|07093 local.get $1 local.get $2 local.get $8 @@ -21507,7 +21513,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|06199 + br $for-loop|07093 end end global.get $~lib/memory/__stack_pointer @@ -21887,7 +21893,7 @@ local.get $4 i32.load offset=12 local.set $1 - loop $for-loop|0100 + loop $for-loop|094 local.get $0 local.get $1 local.get $4 @@ -21921,7 +21927,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|0100 + br $for-loop|094 end end local.get $6 @@ -21952,7 +21958,7 @@ local.get $4 i32.load offset=12 local.set $1 - loop $for-loop|0102 + loop $for-loop|096 local.get $0 local.get $1 local.get $4 @@ -21986,7 +21992,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|0102 + br $for-loop|096 end end local.get $6 @@ -22017,7 +22023,7 @@ local.get $4 i32.load offset=12 local.set $1 - loop $for-loop|0104 + loop $for-loop|098 local.get $0 local.get $1 local.get $4 @@ -22051,7 +22057,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|0104 + br $for-loop|098 end end local.get $6 @@ -22079,7 +22085,7 @@ local.get $4 i32.load offset=12 local.set $1 - loop $for-loop|0106 + loop $for-loop|0100 local.get $0 local.get $1 local.get $4 @@ -22113,7 +22119,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|0106 + br $for-loop|0100 end end local.get $6 @@ -22140,7 +22146,7 @@ local.get $4 i32.load offset=12 local.set $1 - loop $for-loop|0108 + loop $for-loop|0102 local.get $0 local.get $1 local.get $4 @@ -22174,7 +22180,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|0108 + br $for-loop|0102 end end local.get $6 @@ -22221,7 +22227,7 @@ local.get $4 i32.load offset=12 local.set $1 - loop $for-loop|0110 + loop $for-loop|0104 local.get $0 local.get $1 local.get $4 @@ -22255,7 +22261,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|0110 + br $for-loop|0104 end end local.get $6 @@ -22314,7 +22320,7 @@ local.get $4 i32.load offset=12 local.set $1 - loop $for-loop|0112 + loop $for-loop|0106 local.get $0 local.get $1 local.get $4 @@ -22348,7 +22354,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|0112 + br $for-loop|0106 end end local.get $6 @@ -22411,7 +22417,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|070113 + loop $for-loop|079107 local.get $1 i32.const 0 i32.ge_s @@ -22438,7 +22444,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|070113 + br $for-loop|079107 end end local.get $0 @@ -22469,7 +22475,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|072 + loop $for-loop|081 local.get $1 i32.const 0 i32.ge_s @@ -22496,7 +22502,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|072 + br $for-loop|081 end end local.get $0 @@ -22527,7 +22533,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|074 + loop $for-loop|083 local.get $1 i32.const 0 i32.ge_s @@ -22554,7 +22560,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|074 + br $for-loop|083 end end local.get $0 @@ -22582,7 +22588,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|076 + loop $for-loop|085 local.get $1 i32.const 0 i32.ge_s @@ -22609,7 +22615,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|076 + br $for-loop|085 end end local.get $0 @@ -22636,7 +22642,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|078 + loop $for-loop|087 local.get $1 i32.const 0 i32.ge_s @@ -22663,7 +22669,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|078 + br $for-loop|087 end end local.get $0 @@ -22710,7 +22716,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|081 + loop $for-loop|090 local.get $1 i32.const 0 i32.ge_s @@ -22737,7 +22743,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|081 + br $for-loop|090 end end local.get $0 @@ -22796,7 +22802,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|083 + loop $for-loop|092 local.get $1 i32.const 0 i32.ge_s @@ -22823,7 +22829,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|083 + br $for-loop|092 end end local.get $0 @@ -23473,11 +23479,11 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1131 - block $0of1132 - block $outOfRange133 + block $1of1140 + block $0of1141 + block $outOfRange142 global.get $~argumentsLength - br_table $0of1132 $1of1131 $outOfRange133 + br_table $0of1141 $1of1140 $outOfRange142 end unreachable end @@ -24058,7 +24064,7 @@ local.get $4 local.get $5 i32.store - loop $for-loop|0134 + loop $for-loop|0143 local.get $1 i32.const 2 i32.lt_s @@ -24082,7 +24088,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0134 + br $for-loop|0143 end end global.get $~lib/memory/__stack_pointer @@ -24421,7 +24427,7 @@ local.get $7 i32.eq br_if $folding-inner1 - loop $for-loop|037 + loop $for-loop|038 local.get $0 local.get $3 i32.lt_s @@ -24449,7 +24455,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|037 + br $for-loop|038 end end br $folding-inner1 @@ -24497,7 +24503,7 @@ call $~lib/array/Array<~lib/string/String>#constructor local.tee $1 i32.store - loop $for-loop|0135 + loop $for-loop|0144 local.get $0 i32.const 400 i32.lt_s @@ -24629,7 +24635,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|0135 + br $for-loop|0144 end end global.get $~lib/memory/__stack_pointer @@ -24655,13 +24661,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1136 - block $0of1137 - block $outOfRange138 + block $1of1145 + block $0of1146 + block $outOfRange147 global.get $~argumentsLength i32.const 1 i32.sub - br_table $0of1137 $1of1136 $outOfRange138 + br_table $0of1146 $1of1145 $outOfRange147 end unreachable end @@ -24728,7 +24734,7 @@ local.set $1 br $__inlined_func$~lib/util/string/joinBooleanArray end - block $folding-inner0121 + block $folding-inner0115 local.get $8 i32.eqz if @@ -24738,7 +24744,7 @@ i32.load8_u select local.set $1 - br $folding-inner0121 + br $folding-inner0115 end global.get $~lib/memory/__stack_pointer local.get $8 @@ -24847,7 +24853,7 @@ local.get $3 call $~lib/string/String#substring local.set $1 - br $folding-inner0121 + br $folding-inner0115 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25349,7 +25355,7 @@ local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0123 + block $folding-inner0117 local.get $2 i32.eqz if @@ -25357,7 +25363,7 @@ i32.load8_s call $~lib/util/number/itoa32 local.set $1 - br $folding-inner0123 + br $folding-inner0117 end global.get $~lib/memory/__stack_pointer local.get $2 @@ -25378,7 +25384,7 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|0124 + loop $for-loop|0118 local.get $2 local.get $6 i32.gt_s @@ -25417,7 +25423,7 @@ i32.const 1 i32.add local.set $6 - br $for-loop|0124 + br $for-loop|0118 end end local.get $3 @@ -25440,7 +25446,7 @@ local.get $3 call $~lib/string/String#substring local.set $1 - br $folding-inner0123 + br $folding-inner0117 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25538,7 +25544,7 @@ local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0126 + block $folding-inner0120 local.get $2 i32.eqz if @@ -25546,7 +25552,7 @@ i32.load16_u call $~lib/util/number/utoa32 local.set $1 - br $folding-inner0126 + br $folding-inner0120 end global.get $~lib/memory/__stack_pointer local.get $2 @@ -25567,7 +25573,7 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|0127 + loop $for-loop|0121 local.get $2 local.get $6 i32.gt_s @@ -25608,7 +25614,7 @@ i32.const 1 i32.add local.set $6 - br $for-loop|0127 + br $for-loop|0121 end end local.get $3 @@ -25633,7 +25639,7 @@ local.get $3 call $~lib/string/String#substring local.set $1 - br $folding-inner0126 + br $folding-inner0120 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25919,7 +25925,7 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|0129 + loop $for-loop|0123 local.get $2 local.get $6 i32.gt_s @@ -25960,7 +25966,7 @@ i32.const 1 i32.add local.set $6 - br $for-loop|0129 + br $for-loop|0123 end end local.get $3 @@ -26855,7 +26861,7 @@ end i32.const 0 local.set $0 - loop $for-loop|1134 + loop $for-loop|1128 local.get $0 i32.const 10 i32.lt_s @@ -26877,7 +26883,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|1134 + br $for-loop|1128 end end global.get $~lib/memory/__stack_pointer @@ -26952,7 +26958,7 @@ local.get $4 i32.load offset=12 local.set $4 - loop $for-loop|0136 + loop $for-loop|0129 local.get $0 local.get $4 i32.lt_s @@ -26977,7 +26983,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|0136 + br $for-loop|0129 end end global.get $~lib/memory/__stack_pointer @@ -27013,7 +27019,7 @@ call $~lib/rt/itcms/__link i32.const 0 local.set $0 - loop $for-loop|1137 + loop $for-loop|1130 local.get $0 local.get $4 i32.lt_s @@ -27044,7 +27050,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|1137 + br $for-loop|1130 end end i32.const 0 @@ -27099,7 +27105,7 @@ end i32.const 0 local.set $0 - loop $for-loop|2138 + loop $for-loop|2131 local.get $0 local.get $4 i32.load offset=12 @@ -27135,7 +27141,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|2138 + br $for-loop|2131 end end global.get $~lib/memory/__stack_pointer @@ -27198,12 +27204,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|0143 + loop $while-continue|0152 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0143 + br $while-continue|0152 end end end diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index 787f4cfe44..d280d5c219 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -376,19 +376,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index 28b1972d25..c85e3e74bd 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -382,19 +382,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index 8e5dbe93aa..7529501c3c 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -743,19 +743,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 727a03116c..2213faeec4 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -390,19 +390,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -15321,12 +15321,6 @@ local.get $0 i32.load offset=4 local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15336,6 +15330,12 @@ 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 @@ -15483,12 +15483,6 @@ local.get $7 local.get $1 local.get $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $6 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15498,6 +15492,12 @@ i32.rotl i32.const 668265263 i32.mul + local.get $6 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul i32.add i32.const 17 i32.rotl @@ -15578,12 +15578,6 @@ local.get $0 i32.load offset=4 local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15593,6 +15587,12 @@ 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 @@ -15711,12 +15711,6 @@ local.get $0 i32.load offset=4 local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15726,6 +15720,12 @@ 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 @@ -16405,12 +16405,6 @@ local.get $5 i32.load local.get $3 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16420,6 +16414,12 @@ 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 @@ -16583,12 +16583,6 @@ local.get $7 local.get $2 local.get $16 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $16 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16598,6 +16592,12 @@ i32.rotl i32.const 668265263 i32.mul + local.get $16 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul i32.add i32.const 17 i32.rotl @@ -16929,12 +16929,6 @@ local.get $0 i32.load offset=4 local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16944,6 +16938,12 @@ 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 @@ -17091,12 +17091,6 @@ local.get $7 local.get $1 local.get $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $6 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17106,6 +17100,12 @@ i32.rotl i32.const 668265263 i32.mul + local.get $6 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul i32.add i32.const 17 i32.rotl @@ -17186,12 +17186,6 @@ local.get $0 i32.load offset=4 local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17201,6 +17195,12 @@ 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 @@ -17280,12 +17280,6 @@ local.get $0 i32.load offset=4 local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17295,6 +17289,12 @@ 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 @@ -17943,12 +17943,6 @@ local.get $5 i32.load local.get $3 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17958,6 +17952,12 @@ 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 @@ -18121,12 +18121,6 @@ local.get $7 local.get $2 local.get $16 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $16 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -18136,6 +18130,12 @@ i32.rotl i32.const 668265263 i32.mul + local.get $16 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul i32.add i32.const 17 i32.rotl @@ -20617,12 +20617,6 @@ local.get $1 i64.reinterpret_f64 local.tee $3 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -20632,6 +20626,12 @@ 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 @@ -20782,12 +20782,6 @@ local.get $5 i64.reinterpret_f64 local.tee $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -20797,6 +20791,12 @@ 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 @@ -20880,12 +20880,6 @@ local.get $1 i64.reinterpret_f64 local.tee $3 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -20895,6 +20889,12 @@ 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 @@ -20977,12 +20977,6 @@ local.get $1 i64.reinterpret_f64 local.tee $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -20992,6 +20986,12 @@ 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 @@ -21675,12 +21675,6 @@ local.get $3 i64.reinterpret_f64 local.tee $14 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $14 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21690,6 +21684,12 @@ i32.rotl i32.const 668265263 i32.mul + local.get $14 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul i32.add i32.const 17 i32.rotl @@ -21855,12 +21855,6 @@ local.get $18 i64.reinterpret_f64 local.tee $14 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $14 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21870,6 +21864,12 @@ i32.rotl i32.const 668265263 i32.mul + local.get $14 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul i32.add i32.const 17 i32.rotl @@ -23691,12 +23691,6 @@ local.get $0 i32.load local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -23706,6 +23700,12 @@ 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 @@ -23962,12 +23962,6 @@ local.get $0 i32.load local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -23977,6 +23971,12 @@ 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 @@ -24328,12 +24328,6 @@ local.get $1 i64.reinterpret_f64 local.tee $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $5 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -24343,6 +24337,12 @@ i32.rotl i32.const 668265263 i32.mul + local.get $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul i32.add i32.const 17 i32.rotl diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index 067e3a38df..ef88bf072c 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -1178,8 +1178,8 @@ (local $3 f64) (local $4 i32) (local $5 f64) - (local $6 i32) - (local $7 i64) + (local $6 i64) + (local $7 i32) block $~lib/util/math/log_lut|inlined.0 (result f64) local.get $0 i64.reinterpret_f64 @@ -1329,7 +1329,7 @@ local.get $1 i64.const 4604367669032910848 i64.sub - local.tee $7 + local.tee $6 i64.const 45 i64.shr_u i64.const 127 @@ -1337,40 +1337,41 @@ i32.wrap_i64 i32.const 4 i32.shl - local.tee $6 - i32.const 1088 + local.tee $7 + i32.const 3136 i32.add local.set $4 - local.get $7 - i64.const 52 - i64.shr_s - f64.convert_i64_s - local.tee $3 - f64.const 0.6931471805598903 - f64.mul - local.get $4 - f64.load offset=8 - f64.add - local.tee $5 local.get $1 - local.get $7 + local.get $6 i64.const -4503599627370496 i64.and i64.sub f64.reinterpret_i64 - local.get $6 - i32.const 3136 - i32.add - local.tee $6 + local.get $4 f64.load f64.sub - local.get $6 + local.get $4 f64.load offset=8 f64.sub - local.get $4 + local.get $7 + i32.const 1088 + i32.add + local.tee $4 f64.load f64.mul - local.tee $0 + local.set $0 + local.get $6 + i64.const 52 + i64.shr_s + f64.convert_i64_s + local.tee $3 + f64.const 0.6931471805598903 + f64.mul + local.get $4 + f64.load offset=8 + f64.add + local.tee $5 + local.get $0 f64.add local.set $2 local.get $5 @@ -2871,7 +2872,7 @@ i64.const 32 i64.shr_u i32.wrap_i64 - local.set $7 + local.set $6 local.get $8 i32.wrap_i64 local.get $4 @@ -2880,11 +2881,11 @@ i64.const 32 i64.shr_u i32.wrap_i64 - local.set $6 + local.set $5 local.get $8 i32.wrap_i64 local.tee $10 - local.get $6 + local.get $5 i32.const 1072693248 i32.sub i32.or @@ -2895,40 +2896,32 @@ local.set $1 br $__inlined_func$~lib/math/NativeMath.atan2 end - local.get $6 + local.get $5 i32.const 30 i32.shr_u i32.const 2 i32.and - local.get $7 + local.get $6 i32.const 31 i32.shr_u i32.or - local.set $5 - local.get $6 + local.set $7 + local.get $5 i32.const 2147483647 i32.and - local.set $6 - local.get $7 + local.set $5 + local.get $6 i32.const 2147483647 i32.and - local.tee $7 + local.tee $6 i32.or i32.eqz if block $break|0 block $case3|0 block $case2|0 - local.get $5 - i32.eqz - br_if $__inlined_func$~lib/math/NativeMath.atan2 - block $tablify|0 - local.get $5 - i32.const 1 - i32.sub - br_table $__inlined_func$~lib/math/NativeMath.atan2 $case2|0 $case3|0 $tablify|0 - end - br $break|0 + local.get $7 + br_table $__inlined_func$~lib/math/NativeMath.atan2 $__inlined_func$~lib/math/NativeMath.atan2 $case2|0 $case3|0 $break|0 end f64.const 3.141592653589793 local.set $1 @@ -2940,29 +2933,29 @@ end end block $folding-inner0 - local.get $6 + local.get $5 local.get $10 i32.or i32.eqz br_if $folding-inner0 - local.get $6 + local.get $5 i32.const 2146435072 i32.eq if - local.get $7 + local.get $6 i32.const 2146435072 i32.eq if (result f64) f64.const 2.356194490192345 f64.const 0.7853981633974483 - local.get $5 + local.get $7 i32.const 2 i32.and select else f64.const 3.141592653589793 f64.const 0 - local.get $5 + local.get $7 i32.const 2 i32.and select @@ -2970,7 +2963,7 @@ local.tee $1 f64.neg local.get $1 - local.get $5 + local.get $7 i32.const 1 i32.and select @@ -2978,23 +2971,23 @@ br $__inlined_func$~lib/math/NativeMath.atan2 end i32.const 1 - local.get $7 + local.get $6 i32.const 2146435072 i32.eq - local.get $7 local.get $6 + local.get $5 i32.const 67108864 i32.add i32.gt_u select br_if $folding-inner0 + local.get $5 local.get $6 - local.get $7 i32.const 67108864 i32.add i32.gt_u i32.const 0 - local.get $5 + local.get $7 i32.const 2 i32.and select @@ -3012,12 +3005,9 @@ block $case3|1 block $case2|1 block $case1|1 - local.get $5 - if - local.get $5 - i32.const 1 - i32.sub - br_table $case1|1 $case2|1 $case3|1 $break|1 + block $case0|1 + local.get $7 + br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 end br $__inlined_func$~lib/math/NativeMath.atan2 end @@ -3046,7 +3036,7 @@ end f64.const -1.5707963267948966 f64.const 1.5707963267948966 - local.get $5 + local.get $7 i32.const 1 i32.and select @@ -3071,7 +3061,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) block $folding-inner0 i32.const 1 local.get $0 @@ -3087,9 +3076,12 @@ f32.add return end + local.get $0 + i32.reinterpret_f32 + local.set $3 local.get $1 i32.reinterpret_f32 - local.tee $3 + local.tee $4 i32.const 1065353216 i32.eq if @@ -3097,23 +3089,21 @@ call $~lib/math/NativeMathf.atan return end - local.get $3 + local.get $4 i32.const 30 i32.shr_u i32.const 2 i32.and - local.get $0 - i32.reinterpret_f32 - local.tee $5 + local.get $3 i32.const 31 i32.shr_u i32.or local.set $2 - local.get $3 + local.get $4 i32.const 2147483647 i32.and local.set $4 - local.get $5 + local.get $3 i32.const 2147483647 i32.and local.tee $3 @@ -3124,15 +3114,7 @@ block $case2|0 block $case1|0 local.get $2 - i32.eqz - br_if $case1|0 - block $tablify|0 - local.get $2 - i32.const 1 - i32.sub - br_table $case1|0 $case2|0 $case3|0 $tablify|0 - end - br $break|0 + br_table $case1|0 $case1|0 $case2|0 $case3|0 $break|0 end local.get $0 return @@ -3220,12 +3202,9 @@ block $case3|1 block $case2|1 block $case1|1 - local.get $2 - if + block $case0|1 local.get $2 - i32.const 1 - i32.sub - br_table $case1|1 $case2|1 $case3|1 $break|1 + br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 end local.get $0 return @@ -3311,12 +3290,14 @@ i32.const 715094163 i32.add end - i64.extend_i32_u - i64.const 32 - i64.shl + local.set $2 local.get $4 i64.const -9223372036854775808 i64.and + local.get $2 + i64.extend_i32_u + i64.const 32 + i64.shl i64.or f64.reinterpret_i64 local.tee $3 @@ -3495,7 +3476,7 @@ i64.shr_u i64.const 1045 i64.sub - local.tee $3 + local.tee $2 i64.const 6 i64.shr_s i32.wrap_i64 @@ -3508,38 +3489,38 @@ local.set $5 local.get $8 i64.load offset=8 - local.set $2 + local.set $3 local.get $8 i64.load offset=16 local.set $1 - local.get $3 + local.get $2 i64.const 63 i64.and - local.tee $3 + local.tee $2 i64.const 0 i64.ne if local.get $5 - local.get $3 - i64.shl local.get $2 - i64.const 64 + i64.shl local.get $3 + i64.const 64 + local.get $2 i64.sub local.tee $4 i64.shr_u i64.or local.set $5 - local.get $2 local.get $3 + local.get $2 i64.shl local.get $1 local.get $4 i64.shr_u i64.or - local.set $2 + local.set $3 local.get $1 - local.get $3 + local.get $2 i64.shl local.get $8 i64.load offset=24 @@ -3548,7 +3529,7 @@ i64.or local.set $1 end - local.get $2 + local.get $3 i64.const 4294967295 i64.and local.tee $6 @@ -3557,51 +3538,51 @@ i64.and i64.const 4503599627370496 i64.or - local.tee $3 + local.tee $2 i64.const 4294967295 i64.and local.tee $7 i64.mul local.set $4 - local.get $7 + local.get $6 local.get $2 i64.const 32 i64.shr_u + local.tee $6 + i64.mul + local.get $7 + local.get $3 + i64.const 32 + i64.shr_u local.tee $7 i64.mul local.get $4 i64.const 32 i64.shr_u i64.add - local.tee $2 - i64.const 32 - i64.shr_u - local.get $6 - local.get $3 - i64.const 32 - i64.shr_u - local.tee $6 - i64.mul - local.get $2 + local.tee $9 i64.const 4294967295 i64.and i64.add - local.set $2 + local.set $3 local.get $6 local.get $7 i64.mul + local.get $9 + i64.const 32 + i64.shr_u i64.add - local.get $2 + local.get $3 i64.const 32 i64.shr_u i64.add global.set $~lib/math/res128_hi global.get $~lib/math/res128_hi - local.get $3 + local.get $2 local.get $5 i64.mul i64.add - local.get $3 + local.get $2 i64.const 32 i64.shr_s local.get $1 @@ -3612,7 +3593,7 @@ local.get $4 i64.const 4294967295 i64.and - local.get $2 + local.get $3 i64.const 32 i64.shl i64.add @@ -3629,19 +3610,19 @@ i64.const 62 i64.shr_u i64.or - local.tee $3 + local.tee $2 i64.const 63 i64.shr_s local.tee $1 i64.const 1 i64.shr_s - local.get $3 + local.get $2 i64.xor local.tee $4 i64.clz - local.set $2 + local.set $3 local.get $4 - local.get $2 + local.get $3 i64.shl local.get $1 local.get $5 @@ -3650,7 +3631,7 @@ i64.xor local.tee $9 i64.const 64 - local.get $2 + local.get $3 i64.sub i64.shr_u i64.or @@ -3661,6 +3642,12 @@ i64.const 560513588 i64.mul local.set $4 + local.get $5 + i64.const 32 + i64.shr_u + local.tee $10 + i64.const 560513588 + i64.mul local.get $6 i64.const 3373259426 i64.mul @@ -3668,23 +3655,17 @@ i64.const 32 i64.shr_u i64.add - local.tee $6 - i64.const 32 - i64.shr_u - local.get $5 - i64.const 32 - i64.shr_u local.tee $11 - i64.const 560513588 - i64.mul - local.get $6 i64.const 4294967295 i64.and i64.add local.set $6 - local.get $11 + local.get $10 i64.const 3373259426 i64.mul + local.get $11 + i64.const 32 + i64.shr_u i64.add local.get $6 i64.const 32 @@ -3704,7 +3685,7 @@ f64.const 3.753184150245214e-04 f64.mul local.get $9 - local.get $2 + local.get $3 i64.shl f64.convert_i64_u f64.const 3.834951969714103e-04 @@ -3736,12 +3717,12 @@ global.set $~lib/math/rempio2_y1 global.get $~lib/math/rempio2_y0 i64.const 4372995238176751616 - local.get $2 + local.get $3 i64.const 52 i64.shl i64.sub local.get $0 - local.get $3 + local.get $2 i64.xor i64.const -9223372036854775808 i64.and @@ -4179,9 +4160,10 @@ (local $4 f64) (local $5 i64) (local $6 i32) - (local $7 i32) - (local $8 i64) + (local $7 i64) + (local $8 i32) (local $9 i64) + (local $10 i64) block $folding-inner0 local.get $0 i32.reinterpret_f32 @@ -4432,52 +4414,34 @@ i32.shr_s i32.const 152 i32.sub - local.tee $7 + local.tee $8 i32.const 63 i32.and i64.extend_i32_s local.set $5 - f64.const 8.515303950216386e-20 - local.get $0 - f64.promote_f32 - f64.copysign - local.get $3 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.tee $9 - local.get $7 + local.get $8 i32.const 6 i32.shr_s i32.const 3 i32.shl i32.const 5632 i32.add - local.tee $7 + local.tee $8 i64.load - local.get $5 - i64.shl - local.get $7 + local.set $9 + local.get $8 i64.load offset=8 - local.tee $8 - i64.const 64 - local.get $5 - i64.sub - i64.shr_u - i64.or - i64.mul + local.set $7 local.get $5 i64.const 32 i64.gt_u if (result i64) - local.get $8 + local.get $7 local.get $5 i64.const 32 i64.sub i64.shl - local.get $7 + local.get $8 i64.load offset=16 i64.const 96 local.get $5 @@ -4485,13 +4449,36 @@ i64.shr_u i64.or else - local.get $8 + local.get $7 i64.const 32 local.get $5 i64.sub i64.shr_u end + local.set $10 + f64.const 8.515303950216386e-20 + local.get $0 + f64.promote_f32 + f64.copysign local.get $9 + local.get $5 + i64.shl + local.get $7 + i64.const 64 + local.get $5 + i64.sub + i64.shr_u + i64.or + local.get $3 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.tee $5 + i64.mul + local.get $5 + local.get $10 i64.mul i64.const 32 i64.shr_u @@ -4499,7 +4486,7 @@ local.tee $5 i64.const 2 i64.shl - local.tee $8 + local.tee $7 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y @@ -4507,7 +4494,7 @@ local.get $5 i64.const 62 i64.shr_u - local.get $8 + local.get $7 i64.const 63 i64.shr_u i64.add @@ -6535,14 +6522,14 @@ (func $~lib/math/NativeMath.log2 (param $0 f64) (result f64) (local $1 i64) (local $2 f64) - (local $3 f64) - (local $4 i32) + (local $3 i32) + (local $4 f64) (local $5 f64) (local $6 f64) - (local $7 i32) - (local $8 i64) + (local $7 i64) + (local $8 f64) (local $9 f64) - (local $10 f64) + (local $10 i32) block $~lib/util/math/log2_lut|inlined.0 (result f64) local.get $0 i64.reinterpret_f64 @@ -6563,7 +6550,7 @@ local.tee $6 f64.const 1.4426950407214463 f64.mul - local.set $3 + local.set $4 local.get $0 local.get $0 f64.mul @@ -6571,7 +6558,7 @@ local.get $2 f64.mul local.set $5 - local.get $3 + local.get $4 local.get $2 local.get $0 f64.const 0.48089834696298744 @@ -6579,9 +6566,9 @@ f64.const -0.7213475204444817 f64.add f64.mul - local.tee $9 + local.tee $8 f64.add - local.tee $10 + local.tee $9 local.get $0 local.get $6 f64.sub @@ -6591,10 +6578,10 @@ f64.const 1.6751713164886512e-10 f64.mul f64.add - local.get $3 - local.get $10 - f64.sub + local.get $4 local.get $9 + f64.sub + local.get $8 f64.add f64.add local.get $5 @@ -6636,7 +6623,7 @@ i64.const 48 i64.shr_u i32.wrap_i64 - local.tee $4 + local.tee $3 i32.const 16 i32.sub i32.const 32736 @@ -6666,12 +6653,12 @@ local.get $2 f64.div i32.const 1 - local.get $4 + local.get $3 i32.const 32752 i32.and i32.const 32752 i32.eq - local.get $4 + local.get $3 i32.const 32768 i32.and select @@ -6688,7 +6675,7 @@ local.get $1 i64.const 4604367669032910848 i64.sub - local.tee $8 + local.tee $7 i64.const 46 i64.shr_u i64.const 63 @@ -6696,34 +6683,26 @@ i32.wrap_i64 i32.const 4 i32.shl - local.tee $7 - i32.const 7968 + local.tee $10 + i32.const 8992 i32.add - local.set $4 - local.get $8 - i64.const 52 - i64.shr_s - f64.convert_i64_s - local.get $4 - f64.load offset=8 - f64.add - local.tee $2 + local.set $3 local.get $1 - local.get $8 + local.get $7 i64.const -4503599627370496 i64.and i64.sub f64.reinterpret_i64 - local.get $7 - i32.const 8992 - i32.add - local.tee $7 + local.get $3 f64.load f64.sub - local.get $7 + local.get $3 f64.load offset=8 f64.sub - local.get $4 + local.get $10 + i32.const 7968 + i32.add + local.tee $3 f64.load f64.mul local.tee $0 @@ -6734,13 +6713,22 @@ local.tee $5 f64.const 1.4426950407214463 f64.mul - local.tee $6 + local.set $2 + local.get $7 + i64.const 52 + i64.shr_s + f64.convert_i64_s + local.get $3 + f64.load offset=8 f64.add - local.set $3 + local.tee $6 local.get $2 - local.get $3 - f64.sub + f64.add + local.set $4 local.get $6 + local.get $4 + f64.sub + local.get $2 f64.add local.get $0 local.get $5 @@ -6781,7 +6769,7 @@ f64.add f64.mul f64.add - local.get $3 + local.get $4 f64.add end ) @@ -7364,15 +7352,16 @@ (local $6 i64) (local $7 f64) (local $8 i64) - (local $9 i32) + (local $9 f64) (local $10 f64) - (local $11 f64) - (local $12 f64) - (local $13 i64) - (local $14 f64) + (local $11 i32) + (local $12 i32) + (local $13 f64) + (local $14 i64) (local $15 f64) (local $16 f64) (local $17 f64) + (local $18 f64) local.get $1 f64.abs f64.const 2 @@ -7431,7 +7420,7 @@ local.tee $6 i64.const 52 i64.shr_u - local.set $13 + local.set $14 local.get $0 i64.reinterpret_f64 local.tee $2 @@ -7445,7 +7434,7 @@ if (result i32) i32.const 1 else - local.get $13 + local.get $14 i64.const 2047 i64.and i64.const 958 @@ -7651,7 +7640,7 @@ drop i32.const 2 end - local.tee $3 + local.tee $11 i32.eqz br_if $~lib/util/math/pow_lut|inlined.0 drop @@ -7661,17 +7650,17 @@ local.set $8 i32.const 262144 i32.const 0 - local.get $3 + local.get $11 i32.const 1 i32.eq select - local.set $9 + local.set $12 local.get $2 i64.const 9223372036854775807 i64.and local.set $2 end - local.get $13 + local.get $14 i64.const 2047 i64.and i64.const 958 @@ -7686,7 +7675,7 @@ br_if $~lib/util/math/pow_lut|inlined.0 drop f64.const 1 - local.get $13 + local.get $14 i64.const 2047 i64.and i64.const 958 @@ -7695,7 +7684,7 @@ drop f64.const inf f64.const 0 - local.get $13 + local.get $14 i64.const 2048 i64.lt_u local.get $2 @@ -7746,25 +7735,25 @@ i32.shl i32.const 10272 i32.add - local.tee $3 + local.tee $11 f64.load local.tee $0 f64.mul f64.const 1 f64.sub - local.set $12 + local.set $13 local.get $8 i64.const 52 i64.shr_s f64.convert_i64_s - local.tee $16 + local.tee $17 f64.const 0.6931471805598903 f64.mul - local.get $3 + local.get $11 f64.load offset=16 f64.add - local.tee $17 - local.get $12 + local.tee $18 + local.get $13 local.get $4 f64.reinterpret_i64 local.get $7 @@ -7773,67 +7762,67 @@ f64.mul local.tee $5 f64.add - local.tee $11 + local.tee $10 f64.add - local.set $14 - local.get $11 - local.get $11 + local.set $15 + local.get $10 + local.get $10 f64.const -0.5 f64.mul - local.tee $10 + local.tee $9 f64.mul - local.set $15 - local.get $14 - local.get $12 - local.get $12 + local.set $16 + local.get $15 + local.get $13 + local.get $13 f64.const -0.5 f64.mul local.tee $7 f64.mul local.tee $0 f64.add - local.tee $12 - local.get $12 - local.get $16 + local.tee $13 + local.get $13 + local.get $17 f64.const 5.497923018708371e-14 f64.mul - local.get $3 + local.get $11 f64.load offset=24 f64.add - local.get $17 - local.get $14 + local.get $18 + local.get $15 f64.sub - local.get $11 + local.get $10 f64.add f64.add local.get $5 - local.get $10 + local.get $9 local.get $7 f64.add f64.mul f64.add - local.get $14 - local.get $12 + local.get $15 + local.get $13 f64.sub local.get $0 f64.add f64.add - local.get $11 - local.get $15 + local.get $10 + local.get $16 f64.mul - local.get $11 + local.get $10 f64.const 0.5000000000000007 f64.mul f64.const -0.6666666666666679 f64.add - local.get $15 - local.get $11 + local.get $16 + local.get $10 f64.const -0.6666666663487739 f64.mul f64.const 0.7999999995323976 f64.add - local.get $15 - local.get $11 + local.get $16 + local.get $10 f64.const 1.0000415263675542 f64.mul f64.const -1.142909628459501 @@ -7846,7 +7835,7 @@ f64.add local.tee $0 f64.add - local.tee $10 + local.tee $9 f64.sub local.get $0 f64.add @@ -7857,7 +7846,7 @@ i64.and f64.reinterpret_i64 local.tee $0 - local.get $10 + local.get $9 i64.reinterpret_f64 i64.const -134217728 i64.and @@ -7871,7 +7860,7 @@ local.get $7 f64.mul local.get $1 - local.get $10 + local.get $9 local.get $7 f64.sub global.get $~lib/util/math/log_tail @@ -7895,7 +7884,7 @@ if f64.const -1 f64.const 1 - local.get $9 + local.get $12 select local.get $3 i32.const 969 @@ -7911,14 +7900,14 @@ if (result f64) f64.const -1.2882297539194267e-231 f64.const 1.2882297539194267e-231 - local.get $9 + local.get $12 select f64.const 1.2882297539194267e-231 f64.mul else f64.const -3105036184601417870297958e207 f64.const 3105036184601417870297958e207 - local.get $9 + local.get $12 select f64.const 3105036184601417870297958e207 f64.mul @@ -7939,12 +7928,6 @@ local.tee $0 i64.reinterpret_f64 local.tee $8 - local.get $9 - i64.extend_i32_u - i64.add - i64.const 45 - i64.shl - local.get $8 i64.const 127 i64.and i64.const 1 @@ -7954,8 +7937,14 @@ i32.shl i32.const 5664 i32.add - local.tee $9 + local.tee $11 i64.load offset=8 + local.get $12 + i64.extend_i32_u + local.get $8 + i64.add + i64.const 45 + i64.shl i64.add local.set $4 local.get $5 @@ -7976,7 +7965,7 @@ local.get $1 f64.mul local.set $0 - local.get $9 + local.get $11 f64.load local.get $1 f64.add @@ -8026,8 +8015,8 @@ i64.add local.tee $4 f64.reinterpret_i64 - local.tee $10 - local.get $10 + local.tee $9 + local.get $9 local.get $0 f64.mul f64.add @@ -8048,10 +8037,10 @@ f64.sub local.get $5 f64.add - local.get $10 + local.get $9 local.get $5 f64.sub - local.get $10 + local.get $9 local.get $0 f64.mul f64.add @@ -9652,12 +9641,13 @@ (local $1 f64) (local $2 f64) (local $3 i32) - (local $4 f64) - (local $5 i64) + (local $4 i64) + (local $5 f64) (local $6 i32) - (local $7 i32) - (local $8 i64) + (local $7 i64) + (local $8 i32) (local $9 i64) + (local $10 i64) block $folding-inner0 local.get $0 i32.reinterpret_f32 @@ -9687,7 +9677,7 @@ local.tee $1 local.get $2 f64.mul - local.set $4 + local.set $5 br $folding-inner0 end local.get $3 @@ -9784,7 +9774,7 @@ local.tee $1 local.get $2 f64.mul - local.set $4 + local.set $5 br $folding-inner0 end local.get $3 @@ -9880,7 +9870,7 @@ local.tee $1 local.get $2 f64.mul - local.set $4 + local.set $5 br $folding-inner0 end local.get $3 @@ -9923,82 +9913,87 @@ i32.shr_s i32.const 152 i32.sub - local.tee $7 + local.tee $8 i32.const 63 i32.and i64.extend_i32_s - local.set $5 - f64.const 8.515303950216386e-20 - local.get $0 - f64.promote_f32 - f64.copysign - local.get $3 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.tee $9 - local.get $7 + local.set $4 + local.get $8 i32.const 6 i32.shr_s i32.const 3 i32.shl i32.const 5632 i32.add - local.tee $7 + local.tee $8 i64.load - local.get $5 - i64.shl - local.get $7 + local.set $9 + local.get $8 i64.load offset=8 - local.tee $8 - i64.const 64 - local.get $5 - i64.sub - i64.shr_u - i64.or - i64.mul - local.get $5 + local.set $7 + local.get $4 i64.const 32 i64.gt_u if (result i64) - local.get $8 - local.get $5 + local.get $7 + local.get $4 i64.const 32 i64.sub i64.shl - local.get $7 + local.get $8 i64.load offset=16 i64.const 96 - local.get $5 + local.get $4 i64.sub i64.shr_u i64.or else - local.get $8 + local.get $7 i64.const 32 - local.get $5 + local.get $4 i64.sub i64.shr_u end + local.set $10 + f64.const 8.515303950216386e-20 + local.get $0 + f64.promote_f32 + f64.copysign local.get $9 + local.get $4 + i64.shl + local.get $7 + i64.const 64 + local.get $4 + i64.sub + i64.shr_u + i64.or + local.get $3 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.tee $4 + i64.mul + local.get $4 + local.get $10 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $5 + local.tee $4 i64.const 2 i64.shl - local.tee $8 + local.tee $7 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y i32.const 0 - local.get $5 + local.get $4 i64.const 62 i64.shr_u - local.get $8 + local.get $7 i64.const 63 i64.shr_u i64.add @@ -10083,7 +10078,7 @@ return end local.get $2 - local.get $4 + local.get $5 local.get $1 f64.const 0.008333329385889463 f64.mul @@ -10091,7 +10086,7 @@ f64.add f64.mul f64.add - local.get $4 + local.get $5 local.get $1 local.get $1 f64.mul @@ -10713,9 +10708,10 @@ (local $4 i32) (local $5 i64) (local $6 i32) - (local $7 i32) - (local $8 i64) + (local $7 i64) + (local $8 i32) (local $9 i64) + (local $10 i64) block $folding-inner1 block $folding-inner0 local.get $0 @@ -10885,52 +10881,34 @@ i32.shr_s i32.const 152 i32.sub - local.tee $7 + local.tee $8 i32.const 63 i32.and i64.extend_i32_s local.set $5 - f64.const 8.515303950216386e-20 - local.get $0 - f64.promote_f32 - f64.copysign - local.get $4 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.tee $9 - local.get $7 + local.get $8 i32.const 6 i32.shr_s i32.const 3 i32.shl i32.const 5632 i32.add - local.tee $7 + local.tee $8 i64.load - local.get $5 - i64.shl - local.get $7 + local.set $9 + local.get $8 i64.load offset=8 - local.tee $8 - i64.const 64 - local.get $5 - i64.sub - i64.shr_u - i64.or - i64.mul + local.set $7 local.get $5 i64.const 32 i64.gt_u if (result i64) - local.get $8 + local.get $7 local.get $5 i64.const 32 i64.sub i64.shl - local.get $7 + local.get $8 i64.load offset=16 i64.const 96 local.get $5 @@ -10938,13 +10916,36 @@ i64.shr_u i64.or else - local.get $8 + local.get $7 i64.const 32 local.get $5 i64.sub i64.shr_u end + local.set $10 + f64.const 8.515303950216386e-20 + local.get $0 + f64.promote_f32 + f64.copysign local.get $9 + local.get $5 + i64.shl + local.get $7 + i64.const 64 + local.get $5 + i64.sub + i64.shr_u + i64.or + local.get $4 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.tee $5 + i64.mul + local.get $5 + local.get $10 i64.mul i64.const 32 i64.shr_u @@ -10952,7 +10953,7 @@ local.tee $5 i64.const 2 i64.shl - local.tee $8 + local.tee $7 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y @@ -10960,7 +10961,7 @@ local.get $5 i64.const 62 i64.shr_u - local.get $8 + local.get $7 i64.const 63 i64.shr_u i64.add diff --git a/tests/compiler/std/new.optimized.wat b/tests/compiler/std/new.optimized.wat index 602ee00633..111fb20cba 100644 --- a/tests/compiler/std/new.optimized.wat +++ b/tests/compiler/std/new.optimized.wat @@ -366,19 +366,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index 29ab86ae8c..cb5c6c45d6 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -425,19 +425,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index 9dbe779c2d..d494b1c1d7 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -383,19 +383,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -12568,12 +12568,6 @@ local.get $0 i32.load offset=4 local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -12583,6 +12577,12 @@ 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 @@ -12726,12 +12726,6 @@ local.get $7 local.get $1 local.get $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $6 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -12741,6 +12735,12 @@ i32.rotl i32.const 668265263 i32.mul + local.get $6 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul i32.add i32.const 17 i32.rotl @@ -12821,12 +12821,6 @@ local.get $0 i32.load local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -12836,6 +12830,12 @@ 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 @@ -13037,12 +13037,6 @@ local.get $0 i32.load offset=4 local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -13052,6 +13046,12 @@ 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 @@ -13681,12 +13681,6 @@ local.get $0 i32.load offset=4 local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -13696,6 +13690,12 @@ 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 @@ -13839,12 +13839,6 @@ local.get $7 local.get $1 local.get $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $6 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -13854,6 +13848,12 @@ i32.rotl i32.const 668265263 i32.mul + local.get $6 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul i32.add i32.const 17 i32.rotl @@ -13934,12 +13934,6 @@ local.get $0 i32.load local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -13949,6 +13943,12 @@ 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 @@ -14111,12 +14111,6 @@ local.get $0 i32.load offset=4 local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -14126,6 +14120,12 @@ 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 @@ -16339,12 +16339,6 @@ local.get $1 i64.reinterpret_f64 local.tee $3 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16354,6 +16348,12 @@ 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 @@ -16500,12 +16500,6 @@ local.get $5 i64.reinterpret_f64 local.tee $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16515,6 +16509,12 @@ 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 @@ -16598,12 +16598,6 @@ local.get $1 i64.reinterpret_f64 local.tee $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16613,6 +16607,12 @@ 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 @@ -16778,12 +16778,6 @@ local.get $1 i64.reinterpret_f64 local.tee $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16793,6 +16787,12 @@ 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 diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index 6db3198069..1345ec0d94 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -421,19 +421,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index db3ce01680..34b1175cf6 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -511,19 +511,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index d3a853c770..423b7f7f82 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -814,19 +814,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -2168,21 +2168,14 @@ (local $5 i32) (local $6 i32) block $folding-inner0 - local.get $0 - i32.const 255 - i32.and - local.tee $5 - i32.const 3 - i32.rem_u - i32.const 2 - i32.shl - i32.const 5112 - i32.add - i32.load local.get $0 i32.const 8 i32.shr_u local.tee $3 + i32.const 6084 + i32.add + i32.load8_u + local.get $3 i32.const 2444 i32.add i32.load8_u @@ -2190,20 +2183,27 @@ i32.mul i32.const 2444 i32.add - local.get $5 + local.get $0 + i32.const 255 + i32.and + local.tee $5 i32.const 3 i32.div_u i32.add i32.load8_u + local.get $5 + i32.const 3 + i32.rem_u + i32.const 2 + i32.shl + i32.const 5112 + i32.add + i32.load i32.mul i32.const 11 i32.shr_u i32.const 6 i32.rem_u - local.get $3 - i32.const 6084 - i32.add - i32.load8_u i32.add i32.const 2 i32.shl @@ -3696,22 +3696,22 @@ i32.rem_u local.tee $5 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 19212 i32.add i64.load32_u - i64.const 32 - i64.shl local.get $5 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 19212 i32.add i64.load32_u + i64.const 32 + i64.shl i64.or i64.store local.get $1 @@ -3727,22 +3727,22 @@ i32.div_u local.tee $3 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 19212 i32.add i64.load32_u - i64.const 32 - i64.shl local.get $3 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 19212 i32.add i64.load32_u + i64.const 32 + i64.shl i64.or i64.store br $while-continue|0 @@ -7398,17 +7398,17 @@ i32.const 65536 i32.sub local.tee $1 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.get $1 i32.const 1023 i32.and i32.const 56320 i32.or i32.const 16 i32.shl - local.get $1 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or i32.or i32.store local.get $5 diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index bca2e75592..27621cf624 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -399,19 +399,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -4752,19 +4752,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 i32.const 0 i32.store - local.get $5 + local.get $4 local.get $0 local.get $1 call $~lib/string/String.UTF8.byteLength i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store - local.get $4 - local.set $5 + local.get $5 + local.set $4 local.get $0 local.get $0 i32.const 20 @@ -4787,10 +4787,10 @@ i32.const 128 i32.lt_u if (result i32) - local.get $5 + local.get $4 local.get $3 i32.store8 - local.get $5 + local.get $4 i32.const 1 i32.add else @@ -4798,7 +4798,7 @@ i32.const 2048 i32.lt_u if (result i32) - local.get $5 + local.get $4 local.get $3 i32.const 6 i32.shr_u @@ -4813,7 +4813,7 @@ i32.shl i32.or i32.store16 - local.get $5 + local.get $4 i32.const 2 i32.add else @@ -4842,6 +4842,7 @@ i32.const 56320 i32.eq if + local.get $4 local.get $3 i32.const 1023 i32.and @@ -4853,22 +4854,14 @@ i32.const 1023 i32.and i32.or - local.tee $7 + local.tee $3 i32.const 63 i32.and i32.const 128 i32.or - local.set $3 - local.get $5 - local.get $7 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or - local.get $3 i32.const 24 i32.shl - local.get $7 + local.get $3 i32.const 6 i32.shr_u i32.const 63 @@ -4878,7 +4871,7 @@ i32.const 16 i32.shl i32.or - local.get $7 + local.get $3 i32.const 12 i32.shr_u i32.const 63 @@ -4888,12 +4881,17 @@ i32.const 8 i32.shl i32.or + local.get $3 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or i32.or i32.store - local.get $5 + local.get $4 i32.const 4 i32.add - local.set $5 + local.set $4 local.get $0 i32.const 4 i32.add @@ -4920,7 +4918,7 @@ end local.set $3 end - local.get $5 + local.get $4 local.get $3 i32.const 12 i32.shr_u @@ -4937,19 +4935,19 @@ i32.shl i32.or i32.store16 - local.get $5 + local.get $4 local.get $3 i32.const 63 i32.and i32.const 128 i32.or i32.store8 offset=2 - local.get $5 + local.get $4 i32.const 3 i32.add end end - local.set $5 + local.set $4 local.get $0 i32.const 2 i32.add @@ -4959,7 +4957,7 @@ end local.get $1 if - local.get $5 + local.get $4 i32.const 0 i32.store8 end @@ -4967,7 +4965,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 ) (func $~lib/string/String.UTF8.decodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 1374fc496f..0faf609707 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -1409,19 +1409,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -6400,22 +6400,22 @@ i32.rem_u local.tee $4 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 15804 i32.add i64.load32_u - i64.const 32 - i64.shl local.get $4 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 15804 i32.add i64.load32_u + i64.const 32 + i64.shl i64.or i64.store local.get $2 @@ -6431,22 +6431,22 @@ i32.div_u local.tee $3 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 15804 i32.add i64.load32_u - i64.const 32 - i64.shl local.get $3 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 15804 i32.add i64.load32_u + i64.const 32 + i64.shl i64.or i64.store br $while-continue|0 @@ -7233,20 +7233,17 @@ (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) (local $1 i64) (local $2 i64) - (local $3 i32) + (local $3 i64) (local $4 i32) - (local $5 i64) + (local $5 i32) (local $6 i64) - (local $7 i32) + (local $7 i64) (local $8 i32) - (local $9 i64) - (local $10 i64) - (local $11 i64) - (local $12 i64) + (local $9 i32) local.get $0 f64.const 0 f64.lt - local.tee $7 + local.tee $8 if (result f64) i32.const 22864 i32.const 45 @@ -7279,11 +7276,10 @@ i64.const 1 i64.add local.tee $1 + local.get $1 i64.clz i32.wrap_i64 - local.set $3 - local.get $1 - local.get $3 + local.tee $5 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -7293,10 +7289,10 @@ select i32.const 1075 i32.sub - local.tee $8 + local.tee $9 i32.const 1 i32.sub - local.get $3 + local.get $5 i32.sub local.set $4 local.get $2 @@ -7305,13 +7301,13 @@ i64.eq i32.const 1 i32.add - local.tee $3 + local.tee $5 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $8 - local.get $3 + local.get $9 + local.get $5 i32.sub local.get $4 i32.sub @@ -7332,9 +7328,9 @@ f64.add local.tee $0 i32.trunc_f64_s - local.tee $3 + local.tee $5 local.get $0 - local.get $3 + local.get $5 f64.convert_i32_s f64.ne i32.add @@ -7342,18 +7338,18 @@ i32.shr_s i32.const 1 i32.add - local.tee $3 + local.tee $5 i32.const 3 i32.shl - local.tee $8 + local.tee $9 i32.sub global.set $~lib/util/number/_K - local.get $8 + local.get $9 i32.const 22920 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $3 + local.get $5 i32.const 1 i32.shl i32.const 23616 @@ -7361,63 +7357,86 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $9 - i64.const 4294967295 - i64.and - local.tee $1 - local.get $2 - local.get $2 - i64.clz - i64.shl - local.tee $10 + local.tee $6 i64.const 4294967295 i64.and - local.tee $11 - i64.mul - local.set $5 - local.get $9 + local.set $1 + local.get $6 i64.const 32 i64.shr_u - local.tee $2 - local.get $11 + local.tee $6 + global.get $~lib/util/number/_frc_plus + local.tee $3 + i64.const 32 + i64.shr_u + local.tee $7 + i64.mul + local.get $1 + local.get $7 i64.mul local.get $1 - local.get $10 + local.get $3 + i64.const 4294967295 + i64.and + local.tee $3 + i64.mul i64.const 32 i64.shr_u - local.tee $9 - i64.mul - local.get $5 + i64.add + local.tee $7 i64.const 32 i64.shr_u i64.add - local.tee $10 + local.get $3 + local.get $6 + i64.mul + local.get $7 i64.const 4294967295 i64.and i64.add i64.const 2147483647 i64.add - local.set $11 + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.set $3 + local.get $8 + i32.const 1 + i32.shl + i32.const 22864 + i32.add + local.get $6 local.get $2 - global.get $~lib/util/number/_frc_plus - local.tee $5 - i64.const 4294967295 - i64.and - local.tee $6 - i64.mul - local.get $1 - local.get $5 + local.get $2 + i64.clz + i64.shl + local.tee $2 i64.const 32 i64.shr_u - local.tee $5 + local.tee $7 i64.mul local.get $1 - local.get $6 + local.get $7 + i64.mul + local.get $1 + local.get $2 + i64.const 4294967295 + i64.and + local.tee $2 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $6 + local.tee $7 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $6 + i64.mul + local.get $7 i64.const 4294967295 i64.and i64.add @@ -7425,37 +7444,41 @@ i64.add i64.const 32 i64.shr_u - local.get $2 - local.get $5 - i64.mul + i64.add + local.get $3 + local.get $4 + global.get $~lib/util/number/_exp_pow + i32.add + i32.const -64 + i32.sub + local.get $3 local.get $6 + global.get $~lib/util/number/_frc_minus + local.tee $2 i64.const 32 i64.shr_u - i64.add - i64.add - i64.const 1 - i64.sub - local.tee $5 + local.tee $3 + i64.mul + local.get $1 + local.get $3 + i64.mul + local.get $1 local.get $2 - global.get $~lib/util/number/_frc_minus - local.tee $6 i64.const 4294967295 i64.and - local.tee $12 + local.tee $1 i64.mul - local.get $1 - local.get $6 i64.const 32 i64.shr_u - local.tee $6 - i64.mul - local.get $1 - local.get $12 - i64.mul + i64.add + local.tee $2 i64.const 32 i64.shr_u i64.add - local.tee $1 + local.get $1 + local.get $6 + i64.mul + local.get $2 i64.const 4294967295 i64.and i64.add @@ -7463,48 +7486,17 @@ i64.add i64.const 32 i64.shr_u - local.get $2 - local.get $6 - i64.mul - local.get $1 - i64.const 32 - i64.shr_u - i64.add i64.add i64.const 1 i64.add i64.sub - local.set $1 - local.get $7 - i32.const 1 - i32.shl - i32.const 22864 - i32.add - local.get $2 - local.get $9 - i64.mul - local.get $10 - i64.const 32 - i64.shr_u - i64.add - local.get $11 - i64.const 32 - i64.shr_u - i64.add - local.get $5 - local.get $4 - global.get $~lib/util/number/_exp_pow - i32.add - i32.const -64 - i32.sub - local.get $1 - local.get $7 + local.get $8 call $~lib/util/number/genDigits - local.get $7 + local.get $8 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $7 + local.get $8 i32.add ) (func $std/string/getString (result i32) diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index 7caeefe860..b2f4f84304 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -467,19 +467,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 7e4935b3e0..b46dc7440d 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -1027,19 +1027,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -25532,22 +25532,22 @@ i32.rem_u local.tee $4 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 8012 i32.add i64.load32_u - i64.const 32 - i64.shl local.get $4 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 8012 i32.add i64.load32_u + i64.const 32 + i64.shl i64.or i64.store local.get $2 @@ -25563,22 +25563,22 @@ i32.div_u local.tee $3 i32.const 100 - i32.rem_u + i32.div_u i32.const 2 i32.shl i32.const 8012 i32.add i64.load32_u - i64.const 32 - i64.shl local.get $3 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 8012 i32.add i64.load32_u + i64.const 32 + i64.shl i64.or i64.store br $while-continue|0 @@ -26975,19 +26975,21 @@ ) (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) (local $2 i64) - (local $3 i32) - (local $4 i64) - (local $5 i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) (local $6 i64) - (local $7 i32) - (local $8 i32) + (local $7 i64) + (local $8 i64) (local $9 i32) - (local $10 i64) + (local $10 i32) (local $11 i64) + (local $12 i64) + (local $13 i64) local.get $1 f64.const 0 f64.lt - local.tee $8 + local.tee $9 if (result f64) local.get $0 i32.const 45 @@ -27004,19 +27006,19 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $3 + local.tee $4 i32.const 1 - local.get $3 + local.get $4 select i32.const 1075 i32.sub - local.tee $9 + local.tee $10 i32.const 1 i32.sub local.get $2 i64.const 4503599627370495 i64.and - local.get $3 + local.get $4 i32.const 0 i32.ne i64.extend_i32_u @@ -27028,14 +27030,14 @@ i64.shl i64.const 1 i64.add - local.tee $4 + local.tee $3 i64.clz i32.wrap_i64 - local.tee $7 + local.tee $5 i32.sub - local.set $3 - local.get $4 - local.get $7 + local.set $4 + local.get $3 + local.get $5 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -27045,25 +27047,25 @@ i64.eq i32.const 1 i32.add - local.tee $7 + local.tee $5 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $9 - local.get $7 + local.get $10 + local.get $5 i32.sub - local.get $3 + local.get $4 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $3 + local.get $4 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $9 + local.tee $10 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -27072,9 +27074,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $3 + local.tee $4 local.get $1 - local.get $3 + local.get $4 f64.convert_i32_s f64.ne i32.add @@ -27082,18 +27084,18 @@ i32.shr_s i32.const 1 i32.add - local.tee $3 + local.tee $4 i32.const 3 i32.shl - local.tee $7 + local.tee $5 i32.sub global.set $~lib/util/number/_K - local.get $7 + local.get $5 i32.const 9864 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $3 + local.get $4 i32.const 1 i32.shl i32.const 10560 @@ -27104,38 +27106,59 @@ local.get $2 i64.clz i64.shl - local.tee $10 + local.tee $3 i64.const 4294967295 i64.and - local.set $5 + local.set $11 global.get $~lib/util/number/_frc_pow - local.tee $4 + local.tee $6 i64.const 4294967295 i64.and - local.set $2 - local.get $4 + local.tee $2 + local.get $3 i64.const 32 i64.shr_u - local.tee $4 + local.tee $13 + i64.mul + local.get $2 + local.get $11 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $12 global.get $~lib/util/number/_frc_plus - local.tee $6 + local.tee $3 i64.const 4294967295 i64.and - local.tee $11 - i64.mul + local.set $7 local.get $2 - local.get $6 + local.get $3 i64.const 32 i64.shr_u - local.tee $6 + local.tee $3 i64.mul local.get $2 - local.get $11 + local.get $7 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $11 + local.set $8 + local.get $3 + local.get $6 + i64.const 32 + i64.shr_u + local.tee $3 + i64.mul + local.get $8 + i64.const 32 + i64.shr_u + i64.add + local.get $3 + local.get $7 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -27143,39 +27166,45 @@ i64.add i64.const 32 i64.shr_u - local.get $4 + i64.add + i64.const 1 + i64.sub + local.set $7 + global.get $~lib/util/number/_frc_minus + local.tee $6 + i64.const 4294967295 + i64.and + local.set $8 + local.get $2 local.get $6 + i64.const 32 + i64.shr_u + local.tee $6 + i64.mul + local.get $2 + local.get $8 i64.mul - local.get $11 i64.const 32 i64.shr_u i64.add - i64.add - i64.const 1 - i64.sub - local.set $6 - local.get $8 + local.set $2 + local.get $9 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $4 - local.get $5 - i64.mul - local.get $2 - local.get $10 - i64.const 32 - i64.shr_u - local.tee $10 - i64.mul - local.get $2 - local.get $5 + local.get $3 + local.get $13 i64.mul + local.get $12 i64.const 32 i64.shr_u i64.add - local.tee $5 + local.get $3 + local.get $11 + i64.mul + local.get $12 i64.const 4294967295 i64.and i64.add @@ -27183,41 +27212,25 @@ i64.add i64.const 32 i64.shr_u - local.get $4 - local.get $10 - i64.mul - local.get $5 - i64.const 32 - i64.shr_u i64.add - i64.add - local.get $6 - local.get $9 + local.get $7 + local.get $10 global.get $~lib/util/number/_exp_pow i32.add i32.const -64 i32.sub + local.get $7 + local.get $3 local.get $6 - local.get $4 - global.get $~lib/util/number/_frc_minus - local.tee $5 - i64.const 4294967295 - i64.and - local.tee $6 i64.mul local.get $2 - local.get $5 i64.const 32 i64.shr_u - local.tee $5 + i64.add + local.get $3 + local.get $8 i64.mul local.get $2 - local.get $6 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $2 i64.const 4294967295 i64.and i64.add @@ -27225,24 +27238,17 @@ i64.add i64.const 32 i64.shr_u - local.get $4 - local.get $5 - i64.mul - local.get $2 - i64.const 32 - i64.shr_u - i64.add i64.add i64.const 1 i64.add i64.sub - local.get $8 + local.get $9 call $~lib/util/number/genDigits - local.get $8 + local.get $9 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $8 + local.get $9 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -64902,6 +64908,7 @@ (func $~lib/typedarray/Int32Array#subarray (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 @@ -64947,7 +64954,30 @@ i32.lt_s select end - local.set $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + i32.load + local.tee $5 + i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + local.get $0 + local.get $3 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $0 local.get $2 i32.const 0 i32.lt_s @@ -64955,9 +64985,9 @@ local.get $2 local.get $4 i32.add - local.tee $1 + local.tee $2 i32.const 0 - local.get $1 + local.get $2 i32.const 0 i32.gt_s select @@ -64969,37 +64999,13 @@ i32.lt_s select end - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $3 - i32.load - local.tee $4 - i32.store - local.get $1 - local.get $4 - call $~lib/rt/itcms/__link + local.tee $2 local.get $1 - local.get $3 - i32.load offset=4 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 local.get $1 local.get $2 - local.get $0 - local.get $0 - local.get $2 i32.lt_s select - local.get $0 + local.get $1 i32.sub i32.const 2 i32.shl @@ -65008,11 +65014,12 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 ) (func $~lib/typedarray/Float64Array#subarray (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 @@ -65058,7 +65065,30 @@ i32.lt_s select end - local.set $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + i32.load + local.tee $5 + i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + local.get $0 + local.get $3 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $0 local.get $2 i32.const 0 i32.lt_s @@ -65066,9 +65096,9 @@ local.get $2 local.get $4 i32.add - local.tee $1 + local.tee $2 i32.const 0 - local.get $1 + local.get $2 i32.const 0 i32.gt_s select @@ -65080,37 +65110,13 @@ i32.lt_s select end - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $3 - i32.load - local.tee $4 - i32.store - local.get $1 - local.get $4 - call $~lib/rt/itcms/__link + local.tee $2 local.get $1 - local.get $3 - i32.load offset=4 - local.get $0 - i32.const 3 - i32.shl - i32.add - i32.store offset=4 local.get $1 local.get $2 - local.get $0 - local.get $0 - local.get $2 i32.lt_s select - local.get $0 + local.get $1 i32.sub i32.const 3 i32.shl @@ -65119,7 +65125,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 ) (func $~lib/typedarray/Float64Array#sort@varargs (param $0 i32) (result i32) (local $1 i32) @@ -65238,6 +65244,7 @@ (func $~lib/typedarray/Int8Array#subarray (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 @@ -65281,7 +65288,28 @@ i32.lt_s select end - local.set $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + i32.load + local.tee $5 + i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + local.get $0 + local.get $1 + local.get $3 + i32.load offset=4 + i32.add + i32.store offset=4 + local.get $0 local.get $2 i32.const 0 i32.lt_s @@ -65289,9 +65317,9 @@ local.get $2 local.get $4 i32.add - local.tee $1 + local.tee $2 i32.const 0 - local.get $1 + local.get $2 i32.const 0 i32.gt_s select @@ -65303,42 +65331,20 @@ i32.lt_s select end - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $3 - i32.load - local.tee $4 - i32.store - local.get $1 - local.get $4 - call $~lib/rt/itcms/__link + local.tee $2 local.get $1 - local.get $0 - local.get $3 - i32.load offset=4 - i32.add - i32.store offset=4 local.get $1 local.get $2 - local.get $0 - local.get $0 - local.get $2 i32.lt_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 $1 + local.get $0 ) (func $~lib/typedarray/Int32Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -65459,74 +65465,74 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $2 i32.const 0 i32.store - i32.const 4 local.get $0 i32.load offset=8 + local.set $3 + local.get $2 + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new local.tee $2 + i32.store + local.get $2 + local.get $0 + i32.load + local.tee $4 + i32.store local.get $2 + local.get $4 + call $~lib/rt/itcms/__link + local.get $2 + i32.const 4 + local.get $3 + local.get $3 i32.const 4 i32.gt_s select - local.set $3 + local.tee $4 + local.get $0 + i32.load offset=4 + i32.add + i32.store offset=4 + local.get $2 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 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select else local.get $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.lt_s select end - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $0 - i32.load - local.tee $4 - i32.store - local.get $1 + local.tee $0 local.get $4 - call $~lib/rt/itcms/__link - local.get $1 - local.get $3 local.get $0 - i32.load offset=4 - i32.add - i32.store offset=4 - local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 + local.get $4 i32.gt_s select - local.get $3 + local.get $4 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 $1 + local.get $2 ) (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -65548,74 +65554,74 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $2 i32.const 0 i32.store - i32.const 4 local.get $0 i32.load offset=8 + local.set $3 + local.get $2 + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new local.tee $2 + i32.store + local.get $2 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $2 + local.get $4 + call $~lib/rt/itcms/__link local.get $2 i32.const 4 + local.get $3 + local.get $3 + i32.const 4 i32.gt_s select - local.set $3 + local.tee $4 + local.get $0 + i32.load offset=4 + i32.add + i32.store offset=4 + local.get $2 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 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select else local.get $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.lt_s select end - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $0 - i32.load - local.tee $4 - i32.store - local.get $1 + local.tee $0 local.get $4 - call $~lib/rt/itcms/__link - local.get $1 - local.get $3 local.get $0 - i32.load offset=4 - i32.add - i32.store offset=4 - local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 + local.get $4 i32.gt_s select - local.get $3 + local.get $4 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 $1 + local.get $2 ) (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -65637,25 +65643,49 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $2 i32.const 0 i32.store - i32.const 4 local.get $0 i32.load offset=8 i32.const 1 i32.shr_u + local.set $3 + local.get $2 + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new local.tee $2 + i32.store local.get $2 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $2 + local.get $4 + call $~lib/rt/itcms/__link + local.get $2 + local.get $0 + i32.load offset=4 i32.const 4 - i32.gt_s + local.get $3 + local.get $3 + i32.const 4 + i32.gt_u select - local.set $3 + local.tee $0 + i32.const 1 + i32.shl + i32.add + i32.store offset=4 + local.get $2 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 @@ -65665,43 +65695,19 @@ 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 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new local.tee $1 - i32.store - local.get $1 local.get $0 - i32.load - local.tee $4 - i32.store - local.get $1 - local.get $4 - call $~lib/rt/itcms/__link - local.get $1 local.get $0 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.store offset=4 local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select - local.get $3 + local.get $0 i32.sub i32.const 1 i32.shl @@ -65710,7 +65716,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 ) (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -65732,25 +65738,49 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $2 i32.const 0 i32.store - i32.const 4 local.get $0 i32.load offset=8 i32.const 1 i32.shr_u + local.set $3 + local.get $2 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new local.tee $2 + i32.store local.get $2 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $2 + local.get $4 + call $~lib/rt/itcms/__link + local.get $2 + local.get $0 + i32.load offset=4 i32.const 4 - i32.gt_s + local.get $3 + local.get $3 + i32.const 4 + i32.gt_u select - local.set $3 + local.tee $0 + i32.const 1 + i32.shl + i32.add + i32.store offset=4 + local.get $2 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 @@ -65760,43 +65790,19 @@ 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 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new local.tee $1 - i32.store - local.get $1 local.get $0 - i32.load - local.tee $4 - i32.store - local.get $1 - local.get $4 - call $~lib/rt/itcms/__link - local.get $1 local.get $0 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.store offset=4 local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select - local.get $3 + local.get $0 i32.sub i32.const 1 i32.shl @@ -65805,7 +65811,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 ) (func $~lib/typedarray/Uint32Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -65827,25 +65833,49 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $2 i32.const 0 i32.store - i32.const 4 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u + local.set $3 + local.get $2 + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new local.tee $2 + i32.store + local.get $2 + local.get $0 + i32.load + local.tee $4 + i32.store local.get $2 + local.get $4 + call $~lib/rt/itcms/__link + local.get $2 + local.get $0 + i32.load offset=4 i32.const 4 - i32.gt_s + local.get $3 + local.get $3 + i32.const 4 + i32.gt_u select - local.set $3 + local.tee $0 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $2 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 @@ -65855,43 +65885,19 @@ 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 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new local.tee $1 - i32.store - local.get $1 local.get $0 - i32.load - local.tee $4 - i32.store - local.get $1 - local.get $4 - call $~lib/rt/itcms/__link - local.get $1 local.get $0 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select - local.get $3 + local.get $0 i32.sub i32.const 2 i32.shl @@ -65900,7 +65906,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 ) (func $~lib/typedarray/Int64Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -65922,25 +65928,49 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $2 i32.const 0 i32.store - i32.const 4 local.get $0 i32.load offset=8 i32.const 3 i32.shr_u + local.set $3 + local.get $2 + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new local.tee $2 + i32.store + local.get $2 + local.get $0 + i32.load + local.tee $4 + i32.store local.get $2 + local.get $4 + call $~lib/rt/itcms/__link + local.get $2 + local.get $0 + i32.load offset=4 i32.const 4 - i32.gt_s + local.get $3 + local.get $3 + i32.const 4 + i32.gt_u select - local.set $3 + local.tee $0 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $2 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 @@ -65950,43 +65980,19 @@ 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 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new local.tee $1 - i32.store - local.get $1 local.get $0 - i32.load - local.tee $4 - i32.store - local.get $1 - local.get $4 - call $~lib/rt/itcms/__link - local.get $1 local.get $0 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - i32.store offset=4 local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select - local.get $3 + local.get $0 i32.sub i32.const 3 i32.shl @@ -65995,7 +66001,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 ) (func $~lib/typedarray/Uint64Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -66017,25 +66023,49 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $2 i32.const 0 i32.store - i32.const 4 local.get $0 i32.load offset=8 i32.const 3 i32.shr_u + local.set $3 + local.get $2 + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new local.tee $2 + i32.store local.get $2 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $2 + local.get $4 + call $~lib/rt/itcms/__link + local.get $2 + local.get $0 + i32.load offset=4 i32.const 4 - i32.gt_s + local.get $3 + local.get $3 + i32.const 4 + i32.gt_u select - local.set $3 + local.tee $0 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $2 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 @@ -66045,43 +66075,19 @@ 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 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new local.tee $1 - i32.store - local.get $1 local.get $0 - i32.load - local.tee $4 - i32.store - local.get $1 - local.get $4 - call $~lib/rt/itcms/__link - local.get $1 local.get $0 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - i32.store offset=4 local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select - local.get $3 + local.get $0 i32.sub i32.const 3 i32.shl @@ -66090,7 +66096,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 ) (func $~lib/typedarray/Float32Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -66112,25 +66118,49 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $2 i32.const 0 i32.store - i32.const 4 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u + local.set $3 + local.get $2 + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new local.tee $2 + i32.store + local.get $2 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $2 + local.get $4 + call $~lib/rt/itcms/__link local.get $2 + local.get $0 + i32.load offset=4 i32.const 4 - i32.gt_s + local.get $3 + local.get $3 + i32.const 4 + i32.gt_u select - local.set $3 + local.tee $0 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $2 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 @@ -66140,43 +66170,19 @@ 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 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new local.tee $1 - i32.store - local.get $1 local.get $0 - i32.load - local.tee $4 - i32.store - local.get $1 - local.get $4 - call $~lib/rt/itcms/__link - local.get $1 local.get $0 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select - local.get $3 + local.get $0 i32.sub i32.const 2 i32.shl @@ -66185,7 +66191,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 ) (func $~lib/util/number/itoa32 (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 b1acf26e19..42dfa9b0ce 100644 --- a/tests/compiler/std/uri.optimized.wat +++ b/tests/compiler/std/uri.optimized.wat @@ -480,19 +480,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/super-inline.optimized.wat b/tests/compiler/super-inline.optimized.wat index e685cabe27..88b83a122c 100644 --- a/tests/compiler/super-inline.optimized.wat +++ b/tests/compiler/super-inline.optimized.wat @@ -373,19 +373,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index f43818e32f..0021ed33e8 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -578,19 +578,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -4123,20 +4123,17 @@ (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) (local $1 i64) (local $2 i64) - (local $3 i32) + (local $3 i64) (local $4 i32) - (local $5 i64) + (local $5 i32) (local $6 i64) - (local $7 i32) + (local $7 i64) (local $8 i32) - (local $9 i64) - (local $10 i64) - (local $11 i64) - (local $12 i64) + (local $9 i32) local.get $0 f64.const 0 f64.lt - local.tee $7 + local.tee $8 if (result f64) i32.const 3920 i32.const 45 @@ -4169,11 +4166,10 @@ i64.const 1 i64.add local.tee $1 + local.get $1 i64.clz i32.wrap_i64 - local.set $3 - local.get $1 - local.get $3 + local.tee $5 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -4183,10 +4179,10 @@ select i32.const 1075 i32.sub - local.tee $8 + local.tee $9 i32.const 1 i32.sub - local.get $3 + local.get $5 i32.sub local.set $4 local.get $2 @@ -4195,13 +4191,13 @@ i64.eq i32.const 1 i32.add - local.tee $3 + local.tee $5 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $8 - local.get $3 + local.get $9 + local.get $5 i32.sub local.get $4 i32.sub @@ -4222,9 +4218,9 @@ f64.add local.tee $0 i32.trunc_f64_s - local.tee $3 + local.tee $5 local.get $0 - local.get $3 + local.get $5 f64.convert_i32_s f64.ne i32.add @@ -4232,18 +4228,18 @@ i32.shr_s i32.const 1 i32.add - local.tee $3 + local.tee $5 i32.const 3 i32.shl - local.tee $8 + local.tee $9 i32.sub global.set $~lib/util/number/_K - local.get $8 + local.get $9 i32.const 3976 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $3 + local.get $5 i32.const 1 i32.shl i32.const 4672 @@ -4251,63 +4247,86 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $9 - i64.const 4294967295 - i64.and - local.tee $1 - local.get $2 - local.get $2 - i64.clz - i64.shl - local.tee $10 + local.tee $6 i64.const 4294967295 i64.and - local.tee $11 - i64.mul - local.set $5 - local.get $9 + local.set $1 + local.get $6 i64.const 32 i64.shr_u - local.tee $2 - local.get $11 + local.tee $6 + global.get $~lib/util/number/_frc_plus + local.tee $3 + i64.const 32 + i64.shr_u + local.tee $7 i64.mul local.get $1 - local.get $10 + local.get $7 + i64.mul + local.get $1 + local.get $3 + i64.const 4294967295 + i64.and + local.tee $3 + i64.mul i64.const 32 i64.shr_u - local.tee $9 - i64.mul - local.get $5 + i64.add + local.tee $7 i64.const 32 i64.shr_u i64.add - local.tee $10 + local.get $3 + local.get $6 + i64.mul + local.get $7 i64.const 4294967295 i64.and i64.add i64.const 2147483647 i64.add - local.set $11 + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.set $3 + local.get $8 + i32.const 1 + i32.shl + i32.const 3920 + i32.add + local.get $6 local.get $2 - global.get $~lib/util/number/_frc_plus - local.tee $5 - i64.const 4294967295 - i64.and - local.tee $6 - i64.mul - local.get $1 - local.get $5 + local.get $2 + i64.clz + i64.shl + local.tee $2 i64.const 32 i64.shr_u - local.tee $5 + local.tee $7 i64.mul local.get $1 - local.get $6 + local.get $7 + i64.mul + local.get $1 + local.get $2 + i64.const 4294967295 + i64.and + local.tee $2 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $6 + local.tee $7 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $6 + i64.mul + local.get $7 i64.const 4294967295 i64.and i64.add @@ -4315,37 +4334,41 @@ i64.add i64.const 32 i64.shr_u - local.get $2 - local.get $5 - i64.mul + i64.add + local.get $3 + local.get $4 + global.get $~lib/util/number/_exp_pow + i32.add + i32.const -64 + i32.sub + local.get $3 local.get $6 + global.get $~lib/util/number/_frc_minus + local.tee $2 i64.const 32 i64.shr_u - i64.add - i64.add - i64.const 1 - i64.sub - local.tee $5 + local.tee $3 + i64.mul + local.get $1 + local.get $3 + i64.mul + local.get $1 local.get $2 - global.get $~lib/util/number/_frc_minus - local.tee $6 i64.const 4294967295 i64.and - local.tee $12 + local.tee $1 i64.mul - local.get $1 - local.get $6 i64.const 32 i64.shr_u - local.tee $6 - i64.mul - local.get $1 - local.get $12 - i64.mul + i64.add + local.tee $2 i64.const 32 i64.shr_u i64.add - local.tee $1 + local.get $1 + local.get $6 + i64.mul + local.get $2 i64.const 4294967295 i64.and i64.add @@ -4353,48 +4376,17 @@ i64.add i64.const 32 i64.shr_u - local.get $2 - local.get $6 - i64.mul - local.get $1 - i64.const 32 - i64.shr_u - i64.add i64.add i64.const 1 i64.add i64.sub - local.set $1 - local.get $7 - i32.const 1 - i32.shl - i32.const 3920 - i32.add - local.get $2 - local.get $9 - i64.mul - local.get $10 - i64.const 32 - i64.shr_u - i64.add - local.get $11 - i64.const 32 - i64.shr_u - i64.add - local.get $5 - local.get $4 - global.get $~lib/util/number/_exp_pow - i32.add - i32.const -64 - i32.sub - local.get $1 - local.get $7 + local.get $8 call $~lib/util/number/genDigits - local.get $7 + local.get $8 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $7 + local.get $8 i32.add ) (func $~lib/number/F64#toString (param $0 f64) (result i32) diff --git a/tests/compiler/throw.optimized.wat b/tests/compiler/throw.optimized.wat index 6de9f6aa55..5c465238e3 100644 --- a/tests/compiler/throw.optimized.wat +++ b/tests/compiler/throw.optimized.wat @@ -370,19 +370,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/typeof.optimized.wat b/tests/compiler/typeof.optimized.wat index 442656cede..a077aed81b 100644 --- a/tests/compiler/typeof.optimized.wat +++ b/tests/compiler/typeof.optimized.wat @@ -504,19 +504,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 diff --git a/tests/compiler/wasi/abort.optimized.wat b/tests/compiler/wasi/abort.optimized.wat index 1465be0ae6..1aeb19a782 100644 --- a/tests/compiler/wasi/abort.optimized.wat +++ b/tests/compiler/wasi/abort.optimized.wat @@ -36,12 +36,12 @@ i32.const 1 i32.shl i32.add - local.set $5 + local.set $4 local.get $2 local.set $1 loop $while-continue|0 local.get $0 - local.get $5 + local.get $4 i32.lt_u if local.get $0 @@ -86,7 +86,7 @@ i32.const 55296 i32.eq if - local.get $5 + local.get $4 local.get $0 i32.const 2 i32.add @@ -99,12 +99,13 @@ if local.get $0 i32.load16_u offset=2 - local.tee $4 + local.tee $5 i32.const 64512 i32.and i32.const 56320 i32.eq if + local.get $1 local.get $3 i32.const 1023 i32.and @@ -112,26 +113,18 @@ i32.shl i32.const 65536 i32.add - local.get $4 + local.get $5 i32.const 1023 i32.and i32.or - local.tee $4 + local.tee $3 i32.const 63 i32.and i32.const 128 i32.or - local.set $3 - local.get $1 - local.get $4 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or - local.get $3 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 6 i32.shr_u i32.const 63 @@ -141,7 +134,7 @@ i32.const 16 i32.shl i32.or - local.get $4 + local.get $3 i32.const 12 i32.shr_u i32.const 63 @@ -151,6 +144,11 @@ i32.const 8 i32.shl i32.or + local.get $3 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or i32.or i32.store local.get $1 diff --git a/tests/compiler/wasi/seed.optimized.wat b/tests/compiler/wasi/seed.optimized.wat index 4c599087e7..4308b4ba23 100644 --- a/tests/compiler/wasi/seed.optimized.wat +++ b/tests/compiler/wasi/seed.optimized.wat @@ -53,12 +53,12 @@ i32.shl i32.const 1168 i32.add - local.set $6 + local.set $5 i32.const 23 local.set $0 loop $while-continue|0 local.get $2 - local.get $6 + local.get $5 i32.lt_u if local.get $2 @@ -103,7 +103,7 @@ i32.const 55296 i32.eq if - local.get $6 + local.get $5 local.get $2 i32.const 2 i32.add @@ -116,12 +116,13 @@ if local.get $2 i32.load16_u offset=2 - local.tee $5 + local.tee $6 i32.const 64512 i32.and i32.const 56320 i32.eq if + local.get $0 local.get $1 i32.const 1023 i32.and @@ -129,7 +130,7 @@ i32.shl i32.const 65536 i32.add - local.get $5 + local.get $6 i32.const 1023 i32.and i32.or @@ -138,14 +139,6 @@ i32.and i32.const 128 i32.or - local.set $5 - local.get $0 - local.get $1 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or - local.get $5 i32.const 24 i32.shl local.get $1 @@ -168,6 +161,11 @@ i32.const 8 i32.shl i32.or + local.get $1 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or i32.or i32.store local.get $0 diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index 3cea66d78f..8e50af6cd9 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -57,12 +57,12 @@ i32.const 1 i32.shl i32.add - local.set $5 + local.set $4 local.get $2 local.set $1 loop $while-continue|0 local.get $0 - local.get $5 + local.get $4 i32.lt_u if local.get $0 @@ -107,7 +107,7 @@ i32.const 55296 i32.eq if - local.get $5 + local.get $4 local.get $0 i32.const 2 i32.add @@ -120,12 +120,13 @@ if local.get $0 i32.load16_u offset=2 - local.tee $4 + local.tee $5 i32.const 64512 i32.and i32.const 56320 i32.eq if + local.get $1 local.get $3 i32.const 1023 i32.and @@ -133,26 +134,18 @@ i32.shl i32.const 65536 i32.add - local.get $4 + local.get $5 i32.const 1023 i32.and i32.or - local.tee $4 + local.tee $3 i32.const 63 i32.and i32.const 128 i32.or - local.set $3 - local.get $1 - local.get $4 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or - local.get $3 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 6 i32.shr_u i32.const 63 @@ -162,7 +155,7 @@ i32.const 16 i32.shl i32.or - local.get $4 + local.get $3 i32.const 12 i32.shr_u i32.const 63 @@ -172,6 +165,11 @@ i32.const 8 i32.shl i32.or + local.get $3 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or i32.or i32.store local.get $1 @@ -575,19 +573,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -2977,19 +2975,21 @@ ) (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) (local $2 i64) - (local $3 i32) - (local $4 i64) - (local $5 i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) (local $6 i64) - (local $7 i32) - (local $8 i32) + (local $7 i64) + (local $8 i64) (local $9 i32) - (local $10 i64) + (local $10 i32) (local $11 i64) + (local $12 i64) + (local $13 i64) local.get $1 f64.const 0 f64.lt - local.tee $8 + local.tee $9 if (result f64) local.get $0 i32.const 45 @@ -3006,19 +3006,19 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $3 + local.tee $4 i32.const 1 - local.get $3 + local.get $4 select i32.const 1075 i32.sub - local.tee $9 + local.tee $10 i32.const 1 i32.sub local.get $2 i64.const 4503599627370495 i64.and - local.get $3 + local.get $4 i32.const 0 i32.ne i64.extend_i32_u @@ -3030,14 +3030,14 @@ i64.shl i64.const 1 i64.add - local.tee $4 + local.tee $3 i64.clz i32.wrap_i64 - local.tee $7 + local.tee $5 i32.sub - local.set $3 - local.get $4 - local.get $7 + local.set $4 + local.get $3 + local.get $5 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -3047,25 +3047,25 @@ i64.eq i32.const 1 i32.add - local.tee $7 + local.tee $5 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $9 - local.get $7 + local.get $10 + local.get $5 i32.sub - local.get $3 + local.get $4 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $3 + local.get $4 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $9 + local.tee $10 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -3074,9 +3074,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $3 + local.tee $4 local.get $1 - local.get $3 + local.get $4 f64.convert_i32_s f64.ne i32.add @@ -3084,18 +3084,18 @@ i32.shr_s i32.const 1 i32.add - local.tee $3 + local.tee $4 i32.const 3 i32.shl - local.tee $7 + local.tee $5 i32.sub global.set $~lib/util/number/_K - local.get $7 + local.get $5 i32.const 1328 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $3 + local.get $4 i32.const 1 i32.shl i32.const 2024 @@ -3106,38 +3106,59 @@ local.get $2 i64.clz i64.shl - local.tee $10 + local.tee $3 i64.const 4294967295 i64.and - local.set $5 + local.set $11 global.get $~lib/util/number/_frc_pow - local.tee $4 + local.tee $6 i64.const 4294967295 i64.and - local.set $2 - local.get $4 + local.tee $2 + local.get $3 i64.const 32 i64.shr_u - local.tee $4 + local.tee $13 + i64.mul + local.get $2 + local.get $11 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $12 global.get $~lib/util/number/_frc_plus - local.tee $6 + local.tee $3 i64.const 4294967295 i64.and - local.tee $11 - i64.mul + local.set $7 local.get $2 - local.get $6 + local.get $3 i64.const 32 i64.shr_u - local.tee $6 + local.tee $3 i64.mul local.get $2 - local.get $11 + local.get $7 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $11 + local.set $8 + local.get $3 + local.get $6 + i64.const 32 + i64.shr_u + local.tee $3 + i64.mul + local.get $8 + i64.const 32 + i64.shr_u + i64.add + local.get $3 + local.get $7 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -3145,39 +3166,45 @@ i64.add i64.const 32 i64.shr_u - local.get $4 + i64.add + i64.const 1 + i64.sub + local.set $7 + global.get $~lib/util/number/_frc_minus + local.tee $6 + i64.const 4294967295 + i64.and + local.set $8 + local.get $2 local.get $6 + i64.const 32 + i64.shr_u + local.tee $6 + i64.mul + local.get $2 + local.get $8 i64.mul - local.get $11 i64.const 32 i64.shr_u i64.add - i64.add - i64.const 1 - i64.sub - local.set $6 - local.get $8 + local.set $2 + local.get $9 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $4 - local.get $5 - i64.mul - local.get $2 - local.get $10 - i64.const 32 - i64.shr_u - local.tee $10 - i64.mul - local.get $2 - local.get $5 + local.get $3 + local.get $13 i64.mul + local.get $12 i64.const 32 i64.shr_u i64.add - local.tee $5 + local.get $3 + local.get $11 + i64.mul + local.get $12 i64.const 4294967295 i64.and i64.add @@ -3185,41 +3212,25 @@ i64.add i64.const 32 i64.shr_u - local.get $4 - local.get $10 - i64.mul - local.get $5 - i64.const 32 - i64.shr_u i64.add - i64.add - local.get $6 - local.get $9 + local.get $7 + local.get $10 global.get $~lib/util/number/_exp_pow i32.add i32.const -64 i32.sub + local.get $7 + local.get $3 local.get $6 - local.get $4 - global.get $~lib/util/number/_frc_minus - local.tee $5 - i64.const 4294967295 - i64.and - local.tee $6 i64.mul local.get $2 - local.get $5 i64.const 32 i64.shr_u - local.tee $5 + i64.add + local.get $3 + local.get $8 i64.mul local.get $2 - local.get $6 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $2 i64.const 4294967295 i64.and i64.add @@ -3227,24 +3238,17 @@ i64.add i64.const 32 i64.shr_u - local.get $4 - local.get $5 - i64.mul - local.get $2 - i64.const 32 - i64.shr_u - i64.add i64.add i64.const 1 i64.add i64.sub - local.get $8 + local.get $9 call $~lib/util/number/genDigits - local.get $8 + local.get $9 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $8 + local.get $9 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index f6830ab9c1..3fc410327f 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -361,19 +361,19 @@ local.get $4 i32.eqz if - i32.const -2 - local.get $2 - i32.rotl local.get $0 local.get $3 i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $4 i32.load offset=4 + i32.const -2 + local.get $2 + i32.rotl i32.and local.set $1 - local.get $2 + local.get $4 local.get $1 i32.store offset=4 local.get $1 @@ -1594,36 +1594,36 @@ end i32.const 0 local.set $0 - loop $while-continue|09 + loop $while-continue|010 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 1 i32.lt_s - br_if $while-continue|09 + br_if $while-continue|010 end global.get $~lib/rt/itcms/state i32.const 0 i32.gt_s if - loop $while-continue|010 + loop $while-continue|012 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|010 + br $while-continue|012 end end end call $~lib/rt/itcms/step drop - loop $while-continue|111 + loop $while-continue|113 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|111 + br $while-continue|113 end end global.get $~lib/rt/itcms/total From a9c64fc0ced9226edea681f1ae02f8476424ff0b Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Thu, 12 Aug 2021 14:45:56 +0300 Subject: [PATCH 4/5] better --- src/module.ts | 2 +- tests/compiler/call-super.optimized.wat | 200 +- tests/compiler/class-implements.optimized.wat | 30 +- .../class-overloading-cast.optimized.wat | 30 +- .../compiler/class-overloading.optimized.wat | 30 +- tests/compiler/class.optimized.wat | 44 +- tests/compiler/constructor.optimized.wat | 200 +- tests/compiler/do.optimized.wat | 58 +- .../empty-exportruntime.optimized.wat | 182 +- tests/compiler/empty-new.optimized.wat | 30 +- tests/compiler/exports.optimized.wat | 30 +- .../exportstar-rereexport.optimized.wat | 30 +- .../extends-baseaggregate.optimized.wat | 44 +- .../compiler/extends-recursive.optimized.wat | 30 +- tests/compiler/features/simd.optimized.wat | 37 +- .../field-initialization.optimized.wat | 55 +- tests/compiler/for.optimized.wat | 50 +- tests/compiler/function-call.optimized.wat | 30 +- .../function-expression.optimized.wat | 30 +- tests/compiler/getter-call.optimized.wat | 30 +- tests/compiler/heap.optimized.wat | 49 +- .../implicit-getter-setter.optimized.wat | 30 +- tests/compiler/infer-array.optimized.wat | 200 +- tests/compiler/infer-generic.optimized.wat | 30 +- tests/compiler/inlining.optimized.wat | 200 +- tests/compiler/instanceof-class.optimized.wat | 30 +- tests/compiler/issues/1095.optimized.wat | 30 +- tests/compiler/issues/1225.optimized.wat | 30 +- tests/compiler/issues/1699.optimized.wat | 62 +- tests/compiler/logical.optimized.wat | 30 +- tests/compiler/managed-cast.optimized.wat | 58 +- tests/compiler/new.optimized.wat | 30 +- tests/compiler/number.optimized.wat | 124 +- tests/compiler/object-literal.optimized.wat | 179 +- .../optional-typeparameters.optimized.wat | 30 +- tests/compiler/reexport.optimized.wat | 30 +- tests/compiler/rereexport.optimized.wat | 30 +- tests/compiler/resolve-access.optimized.wat | 322 +- tests/compiler/resolve-binary.optimized.wat | 200 +- .../resolve-elementaccess.optimized.wat | 44 +- .../resolve-function-expression.optimized.wat | 124 +- tests/compiler/resolve-nested.optimized.wat | 30 +- tests/compiler/resolve-new.optimized.wat | 30 +- .../resolve-propertyaccess.optimized.wat | 200 +- tests/compiler/resolve-ternary.optimized.wat | 124 +- tests/compiler/resolve-unary.optimized.wat | 200 +- tests/compiler/rt/finalize.optimized.wat | 30 +- tests/compiler/rt/instanceof.optimized.wat | 30 +- .../runtime-incremental-export.optimized.wat | 182 +- .../rt/runtime-minimal-export.optimized.wat | 22 +- .../rt/runtime-stub-export.optimized.wat | 18 +- tests/compiler/std-wasi/console.optimized.wat | 71 +- tests/compiler/std-wasi/crypto.optimized.wat | 119 +- tests/compiler/std-wasi/process.optimized.wat | 160 +- .../compiler/std/array-literal.optimized.wat | 200 +- tests/compiler/std/array.optimized.wat | 1458 +-- tests/compiler/std/arraybuffer.optimized.wat | 44 +- tests/compiler/std/dataview.optimized.wat | 44 +- tests/compiler/std/date.optimized.wat | 72 +- tests/compiler/std/map.optimized.wat | 5666 +++++----- tests/compiler/std/math.optimized.wat | 2608 ++--- tests/compiler/std/new.optimized.wat | 30 +- .../std/operator-overloading.optimized.wat | 30 +- tests/compiler/std/set.optimized.wat | 1226 ++- tests/compiler/std/static-array.optimized.wat | 164 +- tests/compiler/std/staticarray.optimized.wat | 70 +- .../std/string-casemapping.optimized.wat | 560 +- .../std/string-encoding.optimized.wat | 253 +- tests/compiler/std/string.optimized.wat | 715 +- tests/compiler/std/symbol.optimized.wat | 367 +- tests/compiler/std/typedarray.optimized.wat | 9388 ++++++++--------- tests/compiler/std/uri.optimized.wat | 357 +- tests/compiler/super-inline.optimized.wat | 30 +- tests/compiler/templateliteral.optimized.wat | 200 +- tests/compiler/throw.optimized.wat | 44 +- tests/compiler/typeof.optimized.wat | 30 +- tests/compiler/wasi/trace.optimized.wat | 319 +- tests/compiler/while.optimized.wat | 63 +- 78 files changed, 14079 insertions(+), 14109 deletions(-) diff --git a/src/module.ts b/src/module.ts index 9dee1994df..262efc81a4 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2286,7 +2286,7 @@ export class Module { if (optimizeLevel >= 3 && shrinkLevel <= 1) { passes.push("licm"); } - passes.push("simplify-locals-nostructure"); + passes.push("simplify-locals-notee-nostructure"); passes.push("vacuum"); passes.push("reorder-locals"); diff --git a/tests/compiler/call-super.optimized.wat b/tests/compiler/call-super.optimized.wat index 07b863778d..fb546c7cc1 100644 --- a/tests/compiler/call-super.optimized.wat +++ b/tests/compiler/call-super.optimized.wat @@ -169,16 +169,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1488 i32.load i32.gt_u @@ -190,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -206,26 +206,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -366,17 +366,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1245,12 +1245,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1266,14 +1266,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1287,15 +1287,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1306,13 +1306,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1320,21 +1320,21 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl @@ -1342,12 +1342,12 @@ i32.sub i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1361,16 +1361,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1378,18 +1378,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1400,8 +1400,8 @@ unreachable end end - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1414,13 +1414,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1433,54 +1433,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1490,37 +1490,37 @@ i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $3 + local.set $3 local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 - local.get $1 local.get $3 - local.get $1 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1528,22 +1528,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1552,18 +1552,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 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 @@ -1572,10 +1572,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1584,20 +1584,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1612,10 +1612,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1632,16 +1632,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1664,8 +1664,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/class-implements.optimized.wat b/tests/compiler/class-implements.optimized.wat index 32f69b7016..6ca4cd18b7 100644 --- a/tests/compiler/class-implements.optimized.wat +++ b/tests/compiler/class-implements.optimized.wat @@ -191,16 +191,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1504 i32.load i32.gt_u @@ -212,7 +212,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1508 @@ -228,26 +228,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -388,17 +388,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/class-overloading-cast.optimized.wat b/tests/compiler/class-overloading-cast.optimized.wat index d67fa99f7d..f183e1991e 100644 --- a/tests/compiler/class-overloading-cast.optimized.wat +++ b/tests/compiler/class-overloading-cast.optimized.wat @@ -205,16 +205,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1616 i32.load i32.gt_u @@ -226,7 +226,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1620 @@ -242,26 +242,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -402,17 +402,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/class-overloading.optimized.wat b/tests/compiler/class-overloading.optimized.wat index 9e16398321..614313239d 100644 --- a/tests/compiler/class-overloading.optimized.wat +++ b/tests/compiler/class-overloading.optimized.wat @@ -229,16 +229,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1792 i32.load i32.gt_u @@ -250,7 +250,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1796 @@ -266,26 +266,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -426,17 +426,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/class.optimized.wat b/tests/compiler/class.optimized.wat index 8cc2d9b312..eded372932 100644 --- a/tests/compiler/class.optimized.wat +++ b/tests/compiler/class.optimized.wat @@ -162,16 +162,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1536 i32.load i32.gt_u @@ -183,7 +183,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1540 @@ -199,26 +199,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -378,17 +378,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1685,26 +1685,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $3 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $3 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total diff --git a/tests/compiler/constructor.optimized.wat b/tests/compiler/constructor.optimized.wat index 9f7d08ea2c..62e050820e 100644 --- a/tests/compiler/constructor.optimized.wat +++ b/tests/compiler/constructor.optimized.wat @@ -246,16 +246,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1488 i32.load i32.gt_u @@ -267,7 +267,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -283,26 +283,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -443,17 +443,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1322,12 +1322,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1343,14 +1343,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1364,15 +1364,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1383,13 +1383,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1397,21 +1397,21 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl @@ -1419,12 +1419,12 @@ i32.sub i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1438,16 +1438,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1455,18 +1455,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1477,8 +1477,8 @@ unreachable end end - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1491,13 +1491,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1510,54 +1510,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1567,37 +1567,37 @@ i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $3 + local.set $3 local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 - local.get $1 local.get $3 - local.get $1 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1605,22 +1605,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1629,18 +1629,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 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 @@ -1649,10 +1649,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1661,20 +1661,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1689,10 +1689,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1709,16 +1709,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1741,8 +1741,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/do.optimized.wat b/tests/compiler/do.optimized.wat index 1bc2b79b37..d99c6cceeb 100644 --- a/tests/compiler/do.optimized.wat +++ b/tests/compiler/do.optimized.wat @@ -169,16 +169,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1472 i32.load i32.gt_u @@ -190,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1476 @@ -206,26 +206,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -366,17 +366,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1156,19 +1156,19 @@ (local $2 i32) (local $3 i32) i32.const 10 - local.set $2 + local.set $0 loop $do-continue|0 - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - local.get $2 + local.set $2 + local.get $0 i32.const 1 i32.sub - local.tee $2 + local.tee $0 br_if $do-continue|0 end - local.get $2 + local.get $0 if i32.const 0 i32.const 1056 @@ -1177,7 +1177,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 10 i32.ne if @@ -1494,7 +1494,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1509,26 +1509,26 @@ i32.store local.get $1 call $do/Ref#constructor - local.tee $2 + local.tee $0 i32.store loop $do-continue|06 block $do-break|07 - local.get $0 + local.get $2 i32.const 1 i32.add - local.tee $0 + local.tee $2 i32.const 10 i32.eq if i32.const 0 - local.set $2 + local.set $0 br $do-break|07 end call $do/Ref#constructor br_if $do-continue|06 end end - local.get $0 + local.get $2 i32.const 10 i32.ne if @@ -1539,7 +1539,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 if i32.const 0 i32.const 1056 diff --git a/tests/compiler/empty-exportruntime.optimized.wat b/tests/compiler/empty-exportruntime.optimized.wat index 9028df2869..1178f405c9 100644 --- a/tests/compiler/empty-exportruntime.optimized.wat +++ b/tests/compiler/empty-exportruntime.optimized.wat @@ -152,7 +152,7 @@ if local.get $0 i32.load offset=8 - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -162,7 +162,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 global.set $~lib/rt/itcms/iter end local.get $0 @@ -384,17 +384,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1263,12 +1263,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1284,14 +1284,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1305,15 +1305,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1324,13 +1324,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1338,21 +1338,21 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl @@ -1360,12 +1360,12 @@ i32.sub i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1379,16 +1379,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1396,18 +1396,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1418,8 +1418,8 @@ unreachable end end - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1432,13 +1432,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1451,54 +1451,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1508,37 +1508,37 @@ i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $3 + local.set $3 local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 - local.get $1 local.get $3 - local.get $1 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1546,22 +1546,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1570,18 +1570,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 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 @@ -1590,10 +1590,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1602,20 +1602,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1630,10 +1630,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1650,16 +1650,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1682,8 +1682,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/empty-new.optimized.wat b/tests/compiler/empty-new.optimized.wat index 2a00627662..ca6a7070f4 100644 --- a/tests/compiler/empty-new.optimized.wat +++ b/tests/compiler/empty-new.optimized.wat @@ -165,16 +165,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -186,7 +186,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -202,26 +202,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -362,17 +362,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/exports.optimized.wat b/tests/compiler/exports.optimized.wat index 479fea6fc3..16332c0eca 100644 --- a/tests/compiler/exports.optimized.wat +++ b/tests/compiler/exports.optimized.wat @@ -219,16 +219,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -240,7 +240,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -256,26 +256,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -416,17 +416,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/exportstar-rereexport.optimized.wat b/tests/compiler/exportstar-rereexport.optimized.wat index 49b5eb409c..389f2644bf 100644 --- a/tests/compiler/exportstar-rereexport.optimized.wat +++ b/tests/compiler/exportstar-rereexport.optimized.wat @@ -220,16 +220,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1536 i32.load i32.gt_u @@ -241,7 +241,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1540 @@ -257,26 +257,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -417,17 +417,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index eedffbb6ba..ddb37e01f6 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -168,16 +168,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1696 i32.load i32.gt_u @@ -189,7 +189,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1700 @@ -205,26 +205,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -384,17 +384,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1691,26 +1691,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $3 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $3 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total diff --git a/tests/compiler/extends-recursive.optimized.wat b/tests/compiler/extends-recursive.optimized.wat index b959595d32..fab896cbc3 100644 --- a/tests/compiler/extends-recursive.optimized.wat +++ b/tests/compiler/extends-recursive.optimized.wat @@ -157,16 +157,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -178,7 +178,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -194,26 +194,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -373,17 +373,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/features/simd.optimized.wat b/tests/compiler/features/simd.optimized.wat index 819c31b5c1..22b782c7a2 100644 --- a/tests/compiler/features/simd.optimized.wat +++ b/tests/compiler/features/simd.optimized.wat @@ -149,17 +149,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -752,7 +752,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $3 local.get $0 i32.const 1073741820 i32.gt_u @@ -780,11 +780,11 @@ end local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $3 + local.tee $2 local.get $0 i32.const 536870910 i32.lt_u @@ -803,9 +803,9 @@ local.get $0 end i32.const 4 - local.get $1 - i32.load offset=1568 local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -819,16 +819,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.tee $1 + local.get $1 local.get $2 - local.get $3 i32.lt_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 @@ -836,18 +836,18 @@ unreachable end end - 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 $1 + local.get $3 local.get $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -859,7 +859,7 @@ end end local.get $0 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -872,13 +872,10 @@ call $~lib/builtins/abort unreachable end + local.get $3 local.get $1 - local.get $2 call $~lib/rt/tlsf/removeBlock local.get $1 - local.set $3 - local.get $2 - local.tee $1 i32.load local.set $2 local.get $0 diff --git a/tests/compiler/field-initialization.optimized.wat b/tests/compiler/field-initialization.optimized.wat index 72d6135bc4..acad288279 100644 --- a/tests/compiler/field-initialization.optimized.wat +++ b/tests/compiler/field-initialization.optimized.wat @@ -175,16 +175,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1792 i32.load i32.gt_u @@ -196,7 +196,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1796 @@ -212,26 +212,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -391,17 +391,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1698,26 +1698,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $3 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $3 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1952,17 +1952,18 @@ return end local.get $0 - i32.load offset=4 local.tee $1 + i32.load offset=4 + local.tee $0 if - local.get $1 + local.get $0 call $~lib/rt/itcms/__visit end - local.get $0 + local.get $1 i32.load offset=8 - local.tee $0 + local.tee $1 if - local.get $0 + local.get $1 call $~lib/rt/itcms/__visit end return diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index db5ece8724..6c0a12536a 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -169,16 +169,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1472 i32.load i32.gt_u @@ -190,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1476 @@ -206,26 +206,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -366,17 +366,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1487,7 +1487,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1497,40 +1497,40 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 call $for/Ref#constructor i32.store global.get $~lib/memory/__stack_pointer call $for/Ref#constructor - local.tee $1 + local.tee $0 i32.store loop $for-loop|06 call $for/Ref#constructor if block $for-break07 - local.get $0 + local.get $1 i32.const 1 i32.add - local.tee $0 + local.tee $1 i32.const 10 i32.eq if i32.const 0 - local.set $1 + local.set $0 br $for-break07 end global.get $~lib/memory/__stack_pointer call $for/Ref#constructor - local.tee $1 + local.tee $0 i32.store br $for-loop|06 end end end - local.get $0 + local.get $1 i32.const 10 i32.ne if @@ -1541,7 +1541,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 if i32.const 0 i32.const 1056 diff --git a/tests/compiler/function-call.optimized.wat b/tests/compiler/function-call.optimized.wat index 229249adbb..ca661c44a5 100644 --- a/tests/compiler/function-call.optimized.wat +++ b/tests/compiler/function-call.optimized.wat @@ -207,16 +207,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1760 i32.load i32.gt_u @@ -228,7 +228,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1764 @@ -244,26 +244,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -404,17 +404,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/function-expression.optimized.wat b/tests/compiler/function-expression.optimized.wat index 1fe3c0790e..5db5d3f05d 100644 --- a/tests/compiler/function-expression.optimized.wat +++ b/tests/compiler/function-expression.optimized.wat @@ -221,16 +221,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 2112 i32.load i32.gt_u @@ -242,7 +242,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 2116 @@ -258,26 +258,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -437,17 +437,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/getter-call.optimized.wat b/tests/compiler/getter-call.optimized.wat index 6b996226c8..4a33cdc28d 100644 --- a/tests/compiler/getter-call.optimized.wat +++ b/tests/compiler/getter-call.optimized.wat @@ -172,16 +172,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1472 i32.load i32.gt_u @@ -193,7 +193,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1476 @@ -209,26 +209,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -369,17 +369,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/heap.optimized.wat b/tests/compiler/heap.optimized.wat index 78d3dacd3b..daf2baa022 100644 --- a/tests/compiler/heap.optimized.wat +++ b/tests/compiler/heap.optimized.wat @@ -157,17 +157,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1982,52 +1982,53 @@ else block $__inlined_func$~lib/rt/tlsf/reallocateBlock (result i32) global.get $~lib/rt/tlsf/ROOT - local.set $2 + local.set $3 local.get $0 call $~lib/rt/tlsf/checkUsedBlock - local.set $0 + local.set $2 block $folding-inner0 local.get $1 + local.tee $0 call $~lib/rt/tlsf/prepareSize - local.tee $4 - local.get $0 + local.tee $1 + local.get $2 i32.load local.tee $5 i32.const -4 i32.and - local.tee $6 + local.tee $4 i32.le_u br_if $folding-inner0 - local.get $0 + local.get $2 i32.const 4 i32.add - local.get $0 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $7 + local.tee $6 i32.load - local.tee $3 + local.tee $7 i32.const 1 i32.and if + local.get $1 local.get $4 - local.get $6 i32.const 4 i32.add - local.get $3 + local.get $7 i32.const -4 i32.and i32.add - local.tee $3 + local.tee $4 i32.le_u if - local.get $2 - local.get $7 - call $~lib/rt/tlsf/removeBlock - local.get $0 local.get $3 + local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $2 + local.get $4 local.get $5 i32.const 3 i32.and @@ -2036,17 +2037,17 @@ br $folding-inner0 end end + local.get $3 local.get $2 local.get $0 - local.get $1 call $~lib/rt/tlsf/moveBlock br $__inlined_func$~lib/rt/tlsf/reallocateBlock end + local.get $3 local.get $2 - local.get $0 - local.get $4 + local.get $1 call $~lib/rt/tlsf/prepareBlock - local.get $0 + local.get $2 end end i32.const 4 diff --git a/tests/compiler/implicit-getter-setter.optimized.wat b/tests/compiler/implicit-getter-setter.optimized.wat index 45d8cf0bcf..6a4d583892 100644 --- a/tests/compiler/implicit-getter-setter.optimized.wat +++ b/tests/compiler/implicit-getter-setter.optimized.wat @@ -163,16 +163,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -184,7 +184,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -200,26 +200,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -379,17 +379,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index 9e0da51d42..307c71492d 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -189,16 +189,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 2112 i32.load i32.gt_u @@ -210,7 +210,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 2116 @@ -226,26 +226,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -405,17 +405,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1284,12 +1284,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1305,14 +1305,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1326,15 +1326,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1345,13 +1345,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1359,21 +1359,21 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl @@ -1381,12 +1381,12 @@ i32.sub i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1400,16 +1400,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1417,18 +1417,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1439,8 +1439,8 @@ unreachable end end - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1453,13 +1453,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1472,54 +1472,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1529,37 +1529,37 @@ i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $3 + local.set $3 local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 - local.get $1 local.get $3 - local.get $1 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1567,22 +1567,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1591,18 +1591,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 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 @@ -1611,10 +1611,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1623,20 +1623,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1651,10 +1651,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1671,16 +1671,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1703,8 +1703,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat index 808c53d7f9..b4dcdc6c79 100644 --- a/tests/compiler/infer-generic.optimized.wat +++ b/tests/compiler/infer-generic.optimized.wat @@ -194,16 +194,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1616 i32.load i32.gt_u @@ -215,7 +215,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1620 @@ -231,26 +231,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -391,17 +391,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat index d75ae4dad4..3ff34a60d8 100644 --- a/tests/compiler/inlining.optimized.wat +++ b/tests/compiler/inlining.optimized.wat @@ -181,16 +181,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1520 i32.load i32.gt_u @@ -202,7 +202,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1524 @@ -218,26 +218,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -378,17 +378,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1257,12 +1257,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1278,14 +1278,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1299,15 +1299,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1318,13 +1318,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1332,21 +1332,21 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl @@ -1354,12 +1354,12 @@ i32.sub i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1373,16 +1373,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1390,18 +1390,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1412,8 +1412,8 @@ unreachable end end - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1426,13 +1426,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1445,54 +1445,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1502,37 +1502,37 @@ i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $3 + local.set $3 local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 - local.get $1 local.get $3 - local.get $1 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1540,22 +1540,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1564,18 +1564,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 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 @@ -1584,10 +1584,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1596,20 +1596,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1624,10 +1624,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1644,16 +1644,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1676,8 +1676,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/instanceof-class.optimized.wat b/tests/compiler/instanceof-class.optimized.wat index af516fe408..75f85fe4a3 100644 --- a/tests/compiler/instanceof-class.optimized.wat +++ b/tests/compiler/instanceof-class.optimized.wat @@ -183,16 +183,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1504 i32.load i32.gt_u @@ -204,7 +204,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1508 @@ -220,26 +220,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -380,17 +380,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/issues/1095.optimized.wat b/tests/compiler/issues/1095.optimized.wat index c7cc743214..112260552c 100644 --- a/tests/compiler/issues/1095.optimized.wat +++ b/tests/compiler/issues/1095.optimized.wat @@ -157,16 +157,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1584 i32.load i32.gt_u @@ -178,7 +178,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1588 @@ -194,26 +194,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -373,17 +373,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/issues/1225.optimized.wat b/tests/compiler/issues/1225.optimized.wat index b14a157e29..e26fed4218 100644 --- a/tests/compiler/issues/1225.optimized.wat +++ b/tests/compiler/issues/1225.optimized.wat @@ -178,16 +178,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1488 i32.load i32.gt_u @@ -199,7 +199,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -215,26 +215,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -375,17 +375,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/issues/1699.optimized.wat b/tests/compiler/issues/1699.optimized.wat index 6b92c527f8..ec08ef7d19 100644 --- a/tests/compiler/issues/1699.optimized.wat +++ b/tests/compiler/issues/1699.optimized.wat @@ -164,16 +164,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1712 i32.load i32.gt_u @@ -185,7 +185,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1716 @@ -201,26 +201,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -380,17 +380,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1687,26 +1687,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $3 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $3 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -2905,13 +2905,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i64.const 0 i64.store offset=8 - local.get $1 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2949,20 +2949,20 @@ i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 32 call $~lib/memory/memory.fill local.get $0 - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link local.get $0 - local.get $2 + local.get $1 i32.store offset=4 local.get $0 i32.const 32 @@ -2974,7 +2974,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.get $0 i32.store call $issues/1699/MultiAssignmentTest#constructor diff --git a/tests/compiler/logical.optimized.wat b/tests/compiler/logical.optimized.wat index 4dd8cf375c..7a59cfe8ca 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -169,16 +169,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1488 i32.load i32.gt_u @@ -190,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -206,26 +206,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -366,17 +366,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index 57fb4a9d27..65555741cf 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -173,16 +173,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1632 i32.load i32.gt_u @@ -194,7 +194,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1636 @@ -210,26 +210,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -370,17 +370,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1468,17 +1468,17 @@ i32.const 1344 global.set $~lib/rt/itcms/fromSpace call $managed-cast/Cat#constructor - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store call $managed-cast/Cat#constructor - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1489,7 +1489,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 + local.get $1 i32.eqz if i32.const 1456 @@ -1500,22 +1500,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer call $managed-cast/Cat#constructor - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store call $managed-cast/Cat#constructor - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store call $managed-cast/Cat#constructor local.set $1 diff --git a/tests/compiler/new.optimized.wat b/tests/compiler/new.optimized.wat index 22caaa5893..35bcb32338 100644 --- a/tests/compiler/new.optimized.wat +++ b/tests/compiler/new.optimized.wat @@ -209,16 +209,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -230,7 +230,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -246,26 +246,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -406,17 +406,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index b206eb6e81..f8328b862b 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -216,16 +216,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 4656 i32.load i32.gt_u @@ -237,7 +237,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 4660 @@ -253,26 +253,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -413,17 +413,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1319,8 +1319,8 @@ br_if $do-continue|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 @@ -1334,15 +1334,15 @@ local.get $0 i32.const 16 i32.add - local.set $1 + 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.tee $3 - local.get $1 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1353,13 +1353,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1367,21 +1367,21 @@ i32.const 4 i32.sub end - local.tee $1 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size local.tee $4 - local.get $1 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1 i32.const 27 - local.get $1 + local.get $2 i32.clz i32.sub i32.shl @@ -1389,10 +1389,10 @@ i32.sub i32.add else - local.get $1 + local.get $2 end i32.const 4 - local.get $3 + local.get $5 i32.load offset=1568 local.get $4 i32.const 16 @@ -1408,8 +1408,8 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 local.get $4 i32.lt_s select @@ -1417,7 +1417,7 @@ i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1425,7 +1425,7 @@ unreachable end end - local.get $3 + local.get $5 local.get $4 i32.const 16 i32.shl @@ -1433,10 +1433,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $1 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1447,8 +1447,8 @@ unreachable end end - local.get $1 local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1461,13 +1461,13 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $3 i32.load local.set $4 - local.get $1 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1483,51 +1483,51 @@ local.get $4 i32.const -4 i32.and - local.get $1 + local.get $2 i32.sub - local.tee $5 + local.tee $1 i32.const 16 i32.ge_u if + local.get $3 local.get $2 - local.get $1 local.get $4 i32.const 2 i32.and i32.or i32.store - local.get $1 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $1 - local.get $5 + local.tee $2 + local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 - local.get $1 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 + local.get $3 local.get $4 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.tee $1 - local.get $2 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.get $1 local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1537,37 +1537,37 @@ i32.and i32.store end - local.get $2 + local.get $3 i32.const 1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 local.set $1 - local.get $2 local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $2 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $2 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1575,7 +1575,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $3 diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index 48c435be48..9178d47e75 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -122,16 +122,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1712 i32.load i32.gt_u @@ -143,7 +143,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1716 @@ -159,26 +159,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -438,17 +438,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1310,7 +1310,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $3 local.get $0 i32.const 1073741820 i32.gt_u @@ -1338,11 +1338,11 @@ end local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $3 + local.tee $2 local.get $0 i32.const 536870910 i32.lt_u @@ -1361,9 +1361,9 @@ local.get $0 end i32.const 4 - local.get $1 - i32.load offset=1568 local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1377,16 +1377,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.tee $1 + local.get $1 local.get $2 - local.get $3 i32.lt_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 @@ -1394,18 +1394,18 @@ unreachable end end - 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 $1 + local.get $3 local.get $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -1417,7 +1417,7 @@ end end local.get $0 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1430,13 +1430,10 @@ call $~lib/builtins/abort unreachable end + local.get $3 local.get $1 - local.get $2 call $~lib/rt/tlsf/removeBlock local.get $1 - local.set $3 - local.get $2 - local.tee $1 i32.load local.set $2 local.get $0 @@ -2820,15 +2817,15 @@ i32.const 8 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer @@ -2836,22 +2833,22 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 123 i32.store - local.get $2 + local.get $0 i32.const 1056 i32.store offset=4 - local.get $2 + local.get $0 i32.const 1056 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2862,7 +2859,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $2 + local.get $0 i32.load i32.const 123 i32.ne @@ -2876,7 +2873,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $2 + local.get $0 i32.load offset=4 local.tee $0 i32.store @@ -2901,20 +2898,20 @@ global.set $~lib/memory/__stack_pointer i32.const 8 call $~lib/rt/tlsf/__alloc - 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 $1 + local.tee $0 i32.const 1056 i32.store - local.get $1 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2922,8 +2919,6 @@ i32.const 1772 i32.lt_s br_if $folding-inner1 - local.get $0 - local.set $4 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -2945,25 +2940,25 @@ i32.const 5 i32.gt_s select - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $2 i32.lt_s select i32.const 1 i32.shl - local.tee $0 + local.tee $1 local.get $2 - local.get $1 - local.get $1 + local.get $0 + local.get $0 local.get $2 i32.gt_s select i32.const 1 i32.shl - local.tee $1 + local.tee $2 i32.sub - local.tee $6 + local.tee $0 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -2975,12 +2970,12 @@ br $__inlined_func$~lib/string/String#substring end i32.const 0 - local.get $0 + local.get $1 local.get $3 i32.const 1 i32.shl i32.eq - local.get $1 + local.get $2 select if global.get $~lib/memory/__stack_pointer @@ -2992,15 +2987,17 @@ br $__inlined_func$~lib/string/String#substring end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.const 1 call $~lib/rt/itcms/__new local.tee $5 i32.store + local.get $0 + local.set $4 block $~lib/util/memory/memmove|inlined.0 local.get $5 local.tee $0 - local.get $1 + local.get $2 i32.const 1056 i32.add local.tee $1 @@ -3009,10 +3006,10 @@ local.get $1 local.get $0 i32.sub - local.get $6 + local.get $4 i32.sub i32.const 0 - local.get $6 + local.get $4 i32.const 1 i32.shl i32.sub @@ -3020,7 +3017,7 @@ if local.get $0 local.get $1 - local.get $6 + local.get $4 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end @@ -3041,13 +3038,13 @@ i32.const 7 i32.and if - local.get $6 + local.get $4 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $6 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 local.get $0 local.tee $3 i32.const 1 @@ -3066,7 +3063,7 @@ end end loop $while-continue|1 - local.get $6 + local.get $4 i32.const 8 i32.ge_u if @@ -3074,10 +3071,10 @@ local.get $1 i64.load i64.store - local.get $6 + local.get $4 i32.const 8 i32.sub - local.set $6 + local.set $4 local.get $0 i32.const 8 i32.add @@ -3091,7 +3088,7 @@ end end loop $while-continue|2 - local.get $6 + local.get $4 if local.get $0 local.tee $3 @@ -3107,10 +3104,10 @@ local.get $2 i32.load8_u i32.store8 - local.get $6 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $while-continue|2 end end @@ -3125,22 +3122,22 @@ if loop $while-continue|3 local.get $0 - local.get $6 + local.get $4 i32.add i32.const 7 i32.and if - local.get $6 + local.get $4 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 local.get $0 - local.get $6 + local.get $4 i32.const 1 i32.sub - local.tee $6 + local.tee $4 i32.add local.get $1 - local.get $6 + local.get $4 i32.add i32.load8_u i32.store8 @@ -3148,18 +3145,18 @@ end end loop $while-continue|4 - local.get $6 + local.get $4 i32.const 8 i32.ge_u if local.get $0 - local.get $6 + local.get $4 i32.const 8 i32.sub - local.tee $6 + local.tee $4 i32.add local.get $1 - local.get $6 + local.get $4 i32.add i64.load i64.store @@ -3168,16 +3165,16 @@ end end loop $while-continue|5 - local.get $6 + local.get $4 if local.get $0 - local.get $6 + local.get $4 i32.const 1 i32.sub - local.tee $6 + local.tee $4 i32.add local.get $1 - local.get $6 + local.get $4 i32.add i32.load8_u i32.store8 @@ -3191,7 +3188,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $4 + local.get $6 local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -3205,7 +3202,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $4 + local.get $6 i32.load i32.const 123 i32.ne @@ -3219,7 +3216,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $4 + local.get $6 i32.load offset=4 local.tee $0 i32.store @@ -3238,7 +3235,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $6 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 8 diff --git a/tests/compiler/optional-typeparameters.optimized.wat b/tests/compiler/optional-typeparameters.optimized.wat index 743eaa442c..f7431d648f 100644 --- a/tests/compiler/optional-typeparameters.optimized.wat +++ b/tests/compiler/optional-typeparameters.optimized.wat @@ -181,16 +181,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -202,7 +202,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -218,26 +218,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -378,17 +378,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/reexport.optimized.wat b/tests/compiler/reexport.optimized.wat index 6f15b9a47e..1882267e40 100644 --- a/tests/compiler/reexport.optimized.wat +++ b/tests/compiler/reexport.optimized.wat @@ -258,16 +258,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1488 i32.load i32.gt_u @@ -279,7 +279,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -295,26 +295,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -455,17 +455,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/rereexport.optimized.wat b/tests/compiler/rereexport.optimized.wat index e956a70bcb..bb01c66df4 100644 --- a/tests/compiler/rereexport.optimized.wat +++ b/tests/compiler/rereexport.optimized.wat @@ -220,16 +220,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1536 i32.load i32.gt_u @@ -241,7 +241,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1540 @@ -257,26 +257,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -417,17 +417,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index a5fa94ebbc..f3143731ad 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -175,16 +175,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 3296 i32.load i32.gt_u @@ -196,7 +196,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 3300 @@ -212,26 +212,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -391,17 +391,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1270,12 +1270,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1291,14 +1291,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1312,15 +1312,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1331,13 +1331,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1345,21 +1345,21 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl @@ -1367,12 +1367,12 @@ i32.sub i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1386,16 +1386,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1403,18 +1403,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1425,8 +1425,8 @@ unreachable end end - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1439,13 +1439,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1458,54 +1458,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1515,37 +1515,37 @@ i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $3 + local.set $3 local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 - local.get $1 local.get $3 - local.get $1 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1553,22 +1553,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1577,18 +1577,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 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 @@ -1597,10 +1597,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1609,20 +1609,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1637,10 +1637,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1657,16 +1657,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1689,8 +1689,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 @@ -2932,87 +2932,87 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $5 i32.const 0 i32.store i32.const 1056 local.set $0 i32.const 8 - local.set $5 + local.set $7 block $~lib/util/memory/memmove|inlined.0 i32.const 8 i32.const 0 call $~lib/rt/itcms/__new local.tee $4 - local.tee $1 + local.tee $3 i32.const 1056 i32.eq br_if $~lib/util/memory/memmove|inlined.0 i32.const 1048 - local.get $1 + local.get $3 i32.sub i32.const -16 i32.le_u if - local.get $1 + local.get $3 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end - local.get $1 + local.get $3 i32.const 1056 i32.lt_u if - local.get $1 + local.get $3 i32.const 7 i32.and i32.eqz if loop $while-continue|0 - local.get $1 + local.get $3 i32.const 7 i32.and if - local.get $5 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 + local.get $7 i32.const 1 i32.sub - local.set $5 - local.get $1 - local.tee $3 + local.set $7 + local.get $3 + local.tee $2 i32.const 1 i32.add - local.set $1 + local.set $3 local.get $0 - local.tee $2 + local.tee $1 i32.const 1 i32.add local.set $0 - local.get $3 local.get $2 + local.get $1 i32.load8_u i32.store8 br $while-continue|0 end end loop $while-continue|1 - local.get $5 + local.get $7 i32.const 8 i32.ge_u if - local.get $1 + local.get $3 local.get $0 i64.load i64.store - local.get $5 + local.get $7 i32.const 8 i32.sub - local.set $5 - local.get $1 + local.set $7 + local.get $3 i32.const 8 i32.add - local.set $1 + local.set $3 local.get $0 i32.const 8 i32.add @@ -3022,52 +3022,52 @@ end end loop $while-continue|2 - local.get $5 + local.get $7 if - local.get $1 - local.tee $3 + local.get $3 + local.tee $2 i32.const 1 i32.add - local.set $1 + local.set $3 local.get $0 - local.tee $2 + local.tee $1 i32.const 1 i32.add local.set $0 - local.get $3 local.get $2 + local.get $1 i32.load8_u i32.store8 - local.get $5 + local.get $7 i32.const 1 i32.sub - local.set $5 + local.set $7 br $while-continue|2 end end else - local.get $1 + local.get $3 i32.const 7 i32.and i32.eqz if loop $while-continue|3 - local.get $1 - local.get $5 + local.get $3 + local.get $7 i32.add i32.const 7 i32.and if - local.get $5 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $1 - local.get $5 + local.get $3 + local.get $7 i32.const 1 i32.sub - local.tee $5 + local.tee $7 i32.add - local.get $5 + local.get $7 i32.const 1056 i32.add i32.load8_u @@ -3076,17 +3076,17 @@ end end loop $while-continue|4 - local.get $5 + local.get $7 i32.const 8 i32.ge_u if - local.get $1 - local.get $5 + local.get $3 + local.get $7 i32.const 8 i32.sub - local.tee $5 + local.tee $7 i32.add - local.get $5 + local.get $7 i32.const 1056 i32.add i64.load @@ -3096,15 +3096,15 @@ end end loop $while-continue|5 - local.get $5 + local.get $7 if - local.get $1 - local.get $5 + local.get $3 + local.get $7 i32.const 1 i32.sub - local.tee $5 + local.tee $7 i32.add - local.get $5 + local.get $7 i32.const 1056 i32.add i32.load8_u @@ -3114,20 +3114,20 @@ end end end - local.get $7 + local.get $5 local.get $4 local.tee $0 i32.store i32.const 16 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 local.get $0 i32.store local.get $0 local.tee $1 if - local.get $2 + local.get $3 i32.eqz if i32.const 0 @@ -3141,13 +3141,13 @@ local.get $1 i32.const 20 i32.sub - local.tee $3 + local.tee $2 i32.load offset=4 i32.const 3 i32.and i32.eq if - local.get $2 + local.get $3 i32.const 20 i32.sub i32.load offset=4 @@ -3158,7 +3158,7 @@ i32.eqz i32.eq if - local.get $3 + local.get $2 call $~lib/rt/itcms/Object#makeGray else global.get $~lib/rt/itcms/state @@ -3170,19 +3170,19 @@ i32.eq select if - local.get $3 + local.get $2 call $~lib/rt/itcms/Object#makeGray end end end end - local.get $2 + local.get $3 local.get $0 i32.store offset=4 - local.get $2 + local.get $3 i32.const 8 i32.store offset=8 - local.get $2 + local.get $3 i32.const 1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -3190,9 +3190,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 - local.get $2 + local.get $3 i32.store - local.get $2 + local.get $3 i32.load offset=12 i32.eqz if @@ -3203,7 +3203,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.load offset=4 i64.load call $~lib/number/U64#toString diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index ad100c20da..d6dbc07a6f 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -510,16 +510,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 11248 i32.load i32.gt_u @@ -531,7 +531,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 11252 @@ -547,26 +547,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -707,17 +707,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1586,12 +1586,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1607,14 +1607,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1628,15 +1628,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1647,13 +1647,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1661,21 +1661,21 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl @@ -1683,12 +1683,12 @@ i32.sub i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1702,16 +1702,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1719,18 +1719,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1741,8 +1741,8 @@ unreachable end end - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1755,13 +1755,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1774,54 +1774,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1831,37 +1831,37 @@ i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $3 + local.set $3 local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 - local.get $1 local.get $3 - local.get $1 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1869,22 +1869,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1893,18 +1893,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 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 @@ -1913,10 +1913,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1925,20 +1925,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1953,10 +1953,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1973,16 +1973,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -2005,8 +2005,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index 3f86939ae5..d15f804a12 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -227,16 +227,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 4800 i32.load i32.gt_u @@ -248,7 +248,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 4804 @@ -264,26 +264,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -443,17 +443,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1750,26 +1750,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $3 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $3 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total diff --git a/tests/compiler/resolve-function-expression.optimized.wat b/tests/compiler/resolve-function-expression.optimized.wat index 65dc7992a1..e6d470de48 100644 --- a/tests/compiler/resolve-function-expression.optimized.wat +++ b/tests/compiler/resolve-function-expression.optimized.wat @@ -209,16 +209,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 3424 i32.load i32.gt_u @@ -230,7 +230,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 3428 @@ -246,26 +246,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -406,17 +406,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1312,8 +1312,8 @@ br_if $do-continue|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 @@ -1327,15 +1327,15 @@ local.get $0 i32.const 16 i32.add - local.set $1 + 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.tee $3 - local.get $1 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1346,13 +1346,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1360,21 +1360,21 @@ i32.const 4 i32.sub end - local.tee $1 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size local.tee $4 - local.get $1 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1 i32.const 27 - local.get $1 + local.get $2 i32.clz i32.sub i32.shl @@ -1382,10 +1382,10 @@ i32.sub i32.add else - local.get $1 + local.get $2 end i32.const 4 - local.get $3 + local.get $5 i32.load offset=1568 local.get $4 i32.const 16 @@ -1401,8 +1401,8 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 local.get $4 i32.lt_s select @@ -1410,7 +1410,7 @@ i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1418,7 +1418,7 @@ unreachable end end - local.get $3 + local.get $5 local.get $4 i32.const 16 i32.shl @@ -1426,10 +1426,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $1 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1440,8 +1440,8 @@ unreachable end end - local.get $1 local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1454,13 +1454,13 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $3 i32.load local.set $4 - local.get $1 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1476,51 +1476,51 @@ local.get $4 i32.const -4 i32.and - local.get $1 + local.get $2 i32.sub - local.tee $5 + local.tee $1 i32.const 16 i32.ge_u if + local.get $3 local.get $2 - local.get $1 local.get $4 i32.const 2 i32.and i32.or i32.store - local.get $1 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $1 - local.get $5 + local.tee $2 + local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 - local.get $1 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 + local.get $3 local.get $4 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.tee $1 - local.get $2 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.get $1 local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1530,37 +1530,37 @@ i32.and i32.store end - local.get $2 + local.get $3 i32.const 1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 local.set $1 - local.get $2 local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $2 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $2 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1568,7 +1568,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $3 diff --git a/tests/compiler/resolve-nested.optimized.wat b/tests/compiler/resolve-nested.optimized.wat index 442c9ec450..2536a6c7ec 100644 --- a/tests/compiler/resolve-nested.optimized.wat +++ b/tests/compiler/resolve-nested.optimized.wat @@ -178,16 +178,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -199,7 +199,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -215,26 +215,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -375,17 +375,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/resolve-new.optimized.wat b/tests/compiler/resolve-new.optimized.wat index 3348673d35..2bc063e3b9 100644 --- a/tests/compiler/resolve-new.optimized.wat +++ b/tests/compiler/resolve-new.optimized.wat @@ -174,16 +174,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -195,7 +195,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -211,26 +211,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -371,17 +371,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/resolve-propertyaccess.optimized.wat b/tests/compiler/resolve-propertyaccess.optimized.wat index 6b853eb73b..8f2d7d0c12 100644 --- a/tests/compiler/resolve-propertyaccess.optimized.wat +++ b/tests/compiler/resolve-propertyaccess.optimized.wat @@ -209,16 +209,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 3680 i32.load i32.gt_u @@ -230,7 +230,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 3684 @@ -246,26 +246,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -406,17 +406,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1285,12 +1285,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1306,14 +1306,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1327,15 +1327,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1346,13 +1346,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1360,21 +1360,21 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl @@ -1382,12 +1382,12 @@ i32.sub i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1401,16 +1401,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1418,18 +1418,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1440,8 +1440,8 @@ unreachable end end - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1454,13 +1454,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1473,54 +1473,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1530,37 +1530,37 @@ i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $3 + local.set $3 local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 - local.get $1 local.get $3 - local.get $1 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1568,22 +1568,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1592,18 +1592,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 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 @@ -1612,10 +1612,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1624,20 +1624,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1652,10 +1652,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1672,16 +1672,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1704,8 +1704,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index 34785f64a6..22edc93b8d 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -213,16 +213,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 4608 i32.load i32.gt_u @@ -234,7 +234,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 4612 @@ -250,26 +250,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -410,17 +410,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1316,8 +1316,8 @@ br_if $do-continue|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 @@ -1331,15 +1331,15 @@ local.get $0 i32.const 16 i32.add - local.set $1 + 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.tee $3 - local.get $1 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1350,13 +1350,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1364,21 +1364,21 @@ i32.const 4 i32.sub end - local.tee $1 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size local.tee $4 - local.get $1 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1 i32.const 27 - local.get $1 + local.get $2 i32.clz i32.sub i32.shl @@ -1386,10 +1386,10 @@ i32.sub i32.add else - local.get $1 + local.get $2 end i32.const 4 - local.get $3 + local.get $5 i32.load offset=1568 local.get $4 i32.const 16 @@ -1405,8 +1405,8 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 local.get $4 i32.lt_s select @@ -1414,7 +1414,7 @@ i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1422,7 +1422,7 @@ unreachable end end - local.get $3 + local.get $5 local.get $4 i32.const 16 i32.shl @@ -1430,10 +1430,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $1 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1444,8 +1444,8 @@ unreachable end end - local.get $1 local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1458,13 +1458,13 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $3 - local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $3 i32.load local.set $4 - local.get $1 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1480,51 +1480,51 @@ local.get $4 i32.const -4 i32.and - local.get $1 + local.get $2 i32.sub - local.tee $5 + local.tee $1 i32.const 16 i32.ge_u if + local.get $3 local.get $2 - local.get $1 local.get $4 i32.const 2 i32.and i32.or i32.store - local.get $1 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $1 - local.get $5 + local.tee $2 + local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 - local.get $1 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 + local.get $3 local.get $4 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.tee $1 - local.get $2 + local.tee $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.get $1 local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1534,37 +1534,37 @@ i32.and i32.store end - local.get $2 + local.get $3 i32.const 1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 local.set $1 - local.get $2 local.get $3 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $2 + local.get $3 local.get $1 i32.store offset=8 local.get $1 - local.get $2 + local.get $3 local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1572,7 +1572,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $3 diff --git a/tests/compiler/resolve-unary.optimized.wat b/tests/compiler/resolve-unary.optimized.wat index a7439ae369..2bb32c9ef1 100644 --- a/tests/compiler/resolve-unary.optimized.wat +++ b/tests/compiler/resolve-unary.optimized.wat @@ -229,16 +229,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 3728 i32.load i32.gt_u @@ -250,7 +250,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 3732 @@ -266,26 +266,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -426,17 +426,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1305,12 +1305,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1326,14 +1326,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1347,15 +1347,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1366,13 +1366,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1380,21 +1380,21 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl @@ -1402,12 +1402,12 @@ i32.sub i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1421,16 +1421,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1438,18 +1438,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1460,8 +1460,8 @@ unreachable end end - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1474,13 +1474,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1493,54 +1493,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1550,37 +1550,37 @@ i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $3 + local.set $3 local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 - local.get $1 local.get $3 - local.get $1 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1588,22 +1588,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1612,18 +1612,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 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 @@ -1632,10 +1632,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1644,20 +1644,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1672,10 +1672,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1692,16 +1692,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1724,8 +1724,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/rt/finalize.optimized.wat b/tests/compiler/rt/finalize.optimized.wat index f4f0b34ca8..a95686b7df 100644 --- a/tests/compiler/rt/finalize.optimized.wat +++ b/tests/compiler/rt/finalize.optimized.wat @@ -172,16 +172,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1488 i32.load i32.gt_u @@ -193,7 +193,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -209,26 +209,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -369,17 +369,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/rt/instanceof.optimized.wat b/tests/compiler/rt/instanceof.optimized.wat index 85c878ac88..469909e781 100644 --- a/tests/compiler/rt/instanceof.optimized.wat +++ b/tests/compiler/rt/instanceof.optimized.wat @@ -212,16 +212,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1504 i32.load i32.gt_u @@ -233,7 +233,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1508 @@ -249,26 +249,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -409,17 +409,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/rt/runtime-incremental-export.optimized.wat b/tests/compiler/rt/runtime-incremental-export.optimized.wat index 9028df2869..1178f405c9 100644 --- a/tests/compiler/rt/runtime-incremental-export.optimized.wat +++ b/tests/compiler/rt/runtime-incremental-export.optimized.wat @@ -152,7 +152,7 @@ if local.get $0 i32.load offset=8 - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -162,7 +162,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 global.set $~lib/rt/itcms/iter end local.get $0 @@ -384,17 +384,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1263,12 +1263,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1284,14 +1284,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1305,15 +1305,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1324,13 +1324,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1338,21 +1338,21 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl @@ -1360,12 +1360,12 @@ i32.sub i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1379,16 +1379,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1396,18 +1396,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1418,8 +1418,8 @@ unreachable end end - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1432,13 +1432,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1451,54 +1451,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1508,37 +1508,37 @@ i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $3 + local.set $3 local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 - local.get $1 local.get $3 - local.get $1 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1546,22 +1546,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1570,18 +1570,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 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 @@ -1590,10 +1590,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1602,20 +1602,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1630,10 +1630,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1650,16 +1650,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1682,8 +1682,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/rt/runtime-minimal-export.optimized.wat b/tests/compiler/rt/runtime-minimal-export.optimized.wat index e0ebf66c61..87505befa3 100644 --- a/tests/compiler/rt/runtime-minimal-export.optimized.wat +++ b/tests/compiler/rt/runtime-minimal-export.optimized.wat @@ -165,17 +165,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -987,26 +987,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/tcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $1 local.get $2 - local.get $1 + local.get $0 global.get $~lib/rt/tcms/white i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 local.get $2 - local.get $0 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $0 local.get $2 i32.store offset=8 global.get $~lib/rt/tcms/total diff --git a/tests/compiler/rt/runtime-stub-export.optimized.wat b/tests/compiler/rt/runtime-stub-export.optimized.wat index 46e0e6bc25..d55fbb4dbe 100644 --- a/tests/compiler/rt/runtime-stub-export.optimized.wat +++ b/tests/compiler/rt/runtime-stub-export.optimized.wat @@ -66,21 +66,21 @@ i32.sub local.tee $4 i32.add - local.tee $3 - memory.size local.tee $6 + memory.size + local.tee $7 i32.const 16 i32.shl i32.const 15 i32.add i32.const -16 i32.and - local.tee $7 + local.tee $3 i32.gt_u if + local.get $7 local.get $6 local.get $3 - local.get $7 i32.sub i32.const 65535 i32.add @@ -88,16 +88,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $7 - local.get $6 + local.tee $3 + local.get $3 local.get $7 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $7 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -106,7 +106,7 @@ end end end - local.get $3 + local.get $6 global.set $~lib/rt/stub/offset local.get $5 local.get $4 diff --git a/tests/compiler/std-wasi/console.optimized.wat b/tests/compiler/std-wasi/console.optimized.wat index c9a39156ed..82fe1b35f4 100644 --- a/tests/compiler/std-wasi/console.optimized.wat +++ b/tests/compiler/std-wasi/console.optimized.wat @@ -1135,17 +1135,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1738,7 +1738,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $3 local.get $0 i32.const 1073741820 i32.gt_u @@ -1766,11 +1766,11 @@ end local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $3 + local.tee $2 local.get $0 i32.const 536870910 i32.lt_u @@ -1789,9 +1789,9 @@ local.get $0 end i32.const 4 - local.get $1 - i32.load offset=1568 local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1805,16 +1805,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.tee $1 + local.get $1 local.get $2 - local.get $3 i32.lt_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 @@ -1822,18 +1822,18 @@ unreachable end end - 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 $1 + local.get $3 local.get $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -1845,7 +1845,7 @@ end end local.get $0 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1858,13 +1858,10 @@ call $~lib/wasi/index/abort unreachable end + local.get $3 local.get $1 - local.get $2 call $~lib/rt/tlsf/removeBlock local.get $1 - local.set $3 - local.get $2 - local.tee $1 i32.load local.set $2 local.get $0 @@ -2106,15 +2103,15 @@ i32.sub i32.load offset=16 i32.add - local.set $5 + local.set $4 loop $while-continue|0 local.get $2 - local.get $5 + local.get $4 i32.lt_u if local.get $2 i32.load16_u - local.tee $4 + local.tee $5 i32.const 128 i32.lt_u if (result i32) @@ -2122,7 +2119,7 @@ i32.const 1 i32.add else - local.get $4 + local.get $5 i32.const 2048 i32.lt_u if (result i32) @@ -2130,13 +2127,13 @@ i32.const 2 i32.add else - local.get $5 + local.get $4 local.get $2 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $4 + local.get $5 i32.const 64512 i32.and i32.const 55296 @@ -2362,16 +2359,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 7936 i32.load i32.gt_u @@ -2383,7 +2380,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 7940 @@ -2399,26 +2396,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index e93a52b547..e4057127a2 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -793,16 +793,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 6864 i32.load i32.gt_u @@ -814,7 +814,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 6868 @@ -830,26 +830,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -1009,17 +1009,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1881,7 +1881,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $3 local.get $0 i32.const 1073741820 i32.gt_u @@ -1909,11 +1909,11 @@ end local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $3 + local.tee $2 local.get $0 i32.const 536870910 i32.lt_u @@ -1932,9 +1932,9 @@ local.get $0 end i32.const 4 - local.get $1 - i32.load offset=1568 local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1948,16 +1948,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.tee $1 + local.get $1 local.get $2 - local.get $3 i32.lt_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 @@ -1965,18 +1965,18 @@ unreachable end end - 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 $1 + local.get $3 local.get $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -1988,7 +1988,7 @@ end end local.get $0 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -2001,13 +2001,10 @@ call $~lib/wasi/index/abort unreachable end + local.get $3 local.get $1 - local.get $2 call $~lib/rt/tlsf/removeBlock local.get $1 - local.set $3 - local.get $2 - local.tee $1 i32.load local.set $2 local.get $0 @@ -4049,24 +4046,25 @@ end return end + local.get $0 + local.set $1 i32.const 0 local.set $2 local.get $0 - local.tee $1 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.add - local.set $4 + local.set $3 loop $while-continue|0 local.get $1 - local.get $4 + local.get $3 i32.lt_u if local.get $1 i32.load16_u - local.tee $3 + local.tee $4 i32.const 128 i32.lt_u if (result i32) @@ -4074,7 +4072,7 @@ i32.const 1 i32.add else - local.get $3 + local.get $4 i32.const 2048 i32.lt_u if (result i32) @@ -4082,13 +4080,13 @@ i32.const 2 i32.add else - local.get $4 + local.get $3 local.get $1 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $3 + local.get $4 i32.const 64512 i32.and i32.const 55296 @@ -4880,13 +4878,14 @@ block $__inlined_func$~lib/string/String#substring i32.const 0 local.get $1 + local.tee $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 0 i32.gt_s select @@ -4898,8 +4897,8 @@ i32.gt_s select local.tee $3 - local.get $0 - local.get $0 + local.get $1 + local.get $1 local.get $3 i32.gt_s select @@ -4934,7 +4933,7 @@ end i32.const 0 local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.eq @@ -4945,18 +4944,16 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 br $__inlined_func$~lib/string/String#substring end global.get $~lib/memory/__stack_pointer local.get $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 local.get $1 + local.get $0 local.get $2 i32.add local.get $3 @@ -4965,6 +4962,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end br $folding-inner0 end @@ -5013,12 +5012,23 @@ i32.const 0 local.get $0 i32.load offset=8 - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 0 i32.gt_s select local.set $5 + local.get $1 + local.get $5 + i32.sub + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $6 + local.set $2 local.get $4 i32.const 4 i32.sub @@ -5037,17 +5047,6 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store - local.get $2 - local.get $5 - i32.sub - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $6 - local.set $2 global.get $~lib/memory/__stack_pointer local.tee $7 i32.const 8 diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index 26ee41775c..5921deadda 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -1121,17 +1121,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1724,7 +1724,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $3 local.get $0 i32.const 1073741820 i32.gt_u @@ -1752,11 +1752,11 @@ end local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $3 + local.tee $2 local.get $0 i32.const 536870910 i32.lt_u @@ -1775,9 +1775,9 @@ local.get $0 end i32.const 4 - local.get $1 - i32.load offset=1568 local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1791,16 +1791,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.tee $1 + local.get $1 local.get $2 - local.get $3 i32.lt_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 @@ -1808,18 +1808,18 @@ unreachable end end - 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 $1 + local.get $3 local.get $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -1831,7 +1831,7 @@ end end local.get $0 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1844,13 +1844,10 @@ call $~lib/wasi/index/abort unreachable end + local.get $3 local.get $1 - local.get $2 call $~lib/rt/tlsf/removeBlock local.get $1 - local.set $3 - local.get $2 - local.tee $1 i32.load local.set $2 local.get $0 @@ -2083,24 +2080,25 @@ end return end + local.get $0 + local.set $1 i32.const 0 local.set $2 local.get $0 - local.tee $1 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.add - local.set $4 + local.set $3 loop $while-continue|0 local.get $1 - local.get $4 + local.get $3 i32.lt_u if local.get $1 i32.load16_u - local.tee $3 + local.tee $4 i32.const 128 i32.lt_u if (result i32) @@ -2108,7 +2106,7 @@ i32.const 1 i32.add else - local.get $3 + local.get $4 i32.const 2048 i32.lt_u if (result i32) @@ -2116,13 +2114,13 @@ i32.const 2 i32.add else - local.get $4 + local.get $3 local.get $1 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $3 + local.get $4 i32.const 64512 i32.and i32.const 55296 @@ -2378,16 +2376,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 7360 i32.load i32.gt_u @@ -2399,7 +2397,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 7364 @@ -2415,26 +2413,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -3980,10 +3978,10 @@ local.get $1 local.get $2 i32.load offset=16 - local.tee $0 - local.get $0 + local.tee $2 local.get $1 - i32.gt_u + local.get $2 + i32.lt_u select call $~lib/memory/memory.copy local.get $3 @@ -4497,14 +4495,6 @@ i64.const 100000000 i64.ge_u if - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - local.get $0 - i32.add local.get $1 local.get $1 i64.const 100000000 @@ -4516,8 +4506,20 @@ i32.wrap_i64 local.tee $3 i32.const 10000 + i32.div_u + local.set $4 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 10000 i32.rem_u - local.tee $4 + local.tee $3 i32.const 100 i32.div_u i32.const 2 @@ -4525,7 +4527,7 @@ i32.const 5708 i32.add i64.load32_u - local.get $4 + local.get $3 i32.const 100 i32.rem_u i32.const 2 @@ -4545,10 +4547,7 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 10000 - i32.div_u - local.tee $3 + local.get $4 i32.const 100 i32.div_u i32.const 2 @@ -4556,7 +4555,7 @@ i32.const 5708 i32.add i64.load32_u - local.get $3 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -5207,7 +5206,7 @@ i32.const 1092 i32.load i32.add - local.tee $7 + local.tee $6 call $~lib/rt/tlsf/__alloc local.tee $1 local.get $1 @@ -5243,18 +5242,18 @@ i32.shl i32.add i32.load - local.tee $6 + local.tee $7 local.get $6 local.get $7 i32.add local.get $1 i32.sub call $~lib/string/String.UTF8.decodeUnsafe - local.tee $6 + local.tee $7 i32.store offset=4 local.get $5 local.get $3 - local.get $6 + local.get $7 call $~lib/array/Array<~lib/string/String>#__set local.get $3 i32.const 1 @@ -5317,10 +5316,10 @@ global.get $~lib/memory/__stack_pointer local.tee $4 global.get $std-wasi/process/env - local.tee $1 + local.tee $3 i32.store i32.const 0 - local.set $3 + local.set $1 i32.const 0 local.set $0 local.get $4 @@ -5335,23 +5334,23 @@ local.tee $4 i64.const 0 i64.store - local.get $1 + local.get $3 i32.load offset=8 local.set $5 local.get $4 - local.get $1 + local.get $3 i32.load offset=16 - local.tee $7 - call $~lib/array/Array<~lib/string/String>#constructor local.tee $4 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $3 i32.store loop $for-loop|01 - local.get $3 - local.get $7 + local.get $1 + local.get $4 i32.lt_s if local.get $5 - local.get $3 + local.get $1 i32.const 12 i32.mul i32.add @@ -5361,40 +5360,39 @@ 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 $6 i32.load local.tee $6 i32.store offset=4 - local.get $4 - local.get $1 + local.get $3 + local.get $0 local.get $6 call $~lib/array/Array<~lib/string/String>#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|01 end end - local.get $4 + local.get $3 local.get $0 i32.const 0 call $~lib/array/ensureCapacity - local.get $4 + local.get $3 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 global.set $std-wasi/process/envKeys global.get $~lib/memory/__stack_pointer i32.const 5232 diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index 6df6a8faaa..d15b6f0ac5 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -248,16 +248,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1792 i32.load i32.gt_u @@ -269,7 +269,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1796 @@ -285,26 +285,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -464,17 +464,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1343,12 +1343,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1364,14 +1364,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1385,15 +1385,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1404,13 +1404,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1418,21 +1418,21 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl @@ -1440,12 +1440,12 @@ i32.sub i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1459,16 +1459,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1476,18 +1476,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1498,8 +1498,8 @@ unreachable end end - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1512,13 +1512,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1531,54 +1531,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1588,37 +1588,37 @@ i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $3 + local.set $3 local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 - local.get $1 local.get $3 - local.get $1 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1626,22 +1626,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1650,18 +1650,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 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 @@ -1670,10 +1670,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1682,20 +1682,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1710,10 +1710,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1730,16 +1730,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1762,8 +1762,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index c5ad0083c1..2d04e0ab5c 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -847,16 +847,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 14960 i32.load i32.gt_u @@ -868,7 +868,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 14964 @@ -884,26 +884,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -1063,17 +1063,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1935,7 +1935,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $3 local.get $0 i32.const 1073741820 i32.gt_u @@ -1963,11 +1963,11 @@ end local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $3 + local.tee $2 local.get $0 i32.const 536870910 i32.lt_u @@ -1986,9 +1986,9 @@ local.get $0 end i32.const 4 - local.get $1 - i32.load offset=1568 local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -2002,16 +2002,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.tee $1 + local.get $1 local.get $2 - local.get $3 i32.lt_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 @@ -2019,18 +2019,18 @@ unreachable end end - 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 $1 + local.get $3 local.get $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -2042,7 +2042,7 @@ end end local.get $0 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -2055,13 +2055,10 @@ call $~lib/builtins/abort unreachable end + local.get $3 local.get $1 - local.get $2 call $~lib/rt/tlsf/removeBlock local.get $1 - local.set $3 - local.get $2 - local.tee $1 i32.load local.set $2 local.get $0 @@ -2284,11 +2281,11 @@ i32.and i32.const 24 i32.add - local.tee $3 + local.tee $5 i32.add local.set $1 local.get $2 - local.get $3 + local.get $5 i32.sub local.set $2 local.get $0 @@ -3656,88 +3653,90 @@ select local.get $2 i32.shl - local.set $2 + local.set $1 block $__inlined_func$~lib/rt/itcms/__renew (result i32) local.get $3 if local.get $5 i32.const 1 i32.shl - local.tee $1 + local.tee $2 i32.const 1073741820 - local.get $1 + local.get $2 i32.const 1073741820 i32.lt_u select - local.tee $1 - local.get $2 + local.tee $2 + local.get $1 local.get $1 local.get $2 - i32.gt_u + i32.lt_u select - local.set $2 + local.set $1 end - local.get $2 + local.get $1 + local.set $2 local.get $4 - local.tee $1 + local.tee $3 i32.const 20 i32.sub - local.tee $6 + local.tee $4 i32.load i32.const -4 i32.and i32.const 16 i32.sub - i32.le_u + local.get $1 + i32.ge_u if - local.get $6 + local.get $4 local.get $2 i32.store offset=16 - local.get $1 + local.get $3 br $__inlined_func$~lib/rt/itcms/__renew end local.get $2 - local.get $6 + local.get $4 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $3 - local.get $1 + local.tee $6 + local.get $3 local.get $2 - local.get $6 + local.get $4 i32.load offset=16 - local.tee $1 - local.get $1 + local.tee $4 local.get $2 - i32.gt_u + local.get $4 + i32.lt_u select call $~lib/memory/memory.copy - local.get $3 + local.get $6 end - local.tee $1 + local.tee $2 local.get $5 i32.add i32.const 0 - local.get $2 + local.get $1 local.get $5 i32.sub call $~lib/memory/memory.fill - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.ne if local.get $0 - local.get $1 + local.get $2 i32.store local.get $0 - local.get $1 + local.get $2 i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link end local.get $0 - local.get $2 + local.get $1 i32.store offset=8 end ) @@ -4814,14 +4813,14 @@ i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $7 f32.load f32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 + local.get $7 local.get $5 f32.store local.get $2 @@ -5000,14 +4999,13 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f32) + (local $9 i64) (local $10 i32) - (local $11 f32) + (local $11 i32) (local $12 i32) - (local $13 f32) - (local $14 i32) - (local $15 i32) - (local $16 i64) + (local $13 i32) + (local $14 f32) + (local $15 f32) local.get $1 i32.const 48 i32.le_s @@ -5021,10 +5019,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -5032,17 +5031,17 @@ end local.get $0 f32.load - local.set $13 + local.set $15 local.get $0 f32.load offset=4 - local.set $9 + local.set $14 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $9 - local.get $13 - local.get $13 - local.get $9 + local.get $14 + local.get $15 + local.get $15 + local.get $14 local.get $2 i32.load call_indirect $0 (type $f32_f32_=>_i32) @@ -5051,49 +5050,49 @@ local.tee $1 select f32.store + local.get $15 + local.get $14 + local.get $1 + select + local.set $15 local.get $0 f32.load offset=8 - local.set $11 + local.set $14 i32.const 2 global.set $~argumentsLength - local.get $13 - local.get $9 - local.get $1 - select - local.tee $9 - local.get $11 + local.get $0 + local.get $14 + local.get $15 + local.get $15 + local.get $14 local.get $2 i32.load call_indirect $0 (type $f32_f32_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $11 - local.get $9 - local.get $1 + local.tee $1 select f32.store offset=4 local.get $0 - local.get $9 - local.get $11 + local.get $15 + local.get $14 local.get $1 select f32.store offset=8 end local.get $0 f32.load - local.set $11 + local.set $15 local.get $0 f32.load offset=4 - local.set $9 + local.set $14 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $9 - local.get $11 - local.get $11 - local.get $9 + local.get $14 + local.get $15 + local.get $15 + local.get $14 local.get $2 i32.load call_indirect $0 (type $f32_f32_=>_i32) @@ -5103,8 +5102,8 @@ select f32.store local.get $0 - local.get $11 - local.get $9 + local.get $15 + local.get $14 local.get $1 select f32.store offset=4 @@ -5112,7 +5111,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -5127,32 +5126,32 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc local.tee $12 - local.get $5 + local.get $7 i32.add - local.set $14 + local.set $11 i32.const 0 - local.set $5 + local.set $7 loop $for-loop|1 - local.get $5 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $5 + local.get $7 i32.const 2 i32.shl local.get $12 i32.add i32.const -1 i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|1 end end @@ -5160,16 +5159,16 @@ i32.const 2 i32.shl call $~lib/rt/tlsf/__alloc - local.set $15 + local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $10 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $5 i32.const 1 i32.add local.tee $1 @@ -5178,31 +5177,31 @@ if local.get $0 i32.const 0 - local.get $10 + local.get $13 i32.const 31 - local.get $10 + local.get $13 i32.const 31 i32.lt_s select - local.tee $7 + local.tee $5 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 - local.get $10 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $7 + local.get $5 i32.const 1 i32.add local.tee $6 - local.get $10 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 local.get $6 i32.sub i32.const 1 @@ -5213,16 +5212,16 @@ if local.get $0 local.get $6 - local.get $10 + local.get $13 local.get $6 i32.const 31 i32.add local.tee $1 local.get $1 - local.get $10 + local.get $13 i32.gt_s select - local.tee $5 + local.tee $7 local.get $8 local.get $2 call $~lib/util/sort/insertionSort @@ -5233,21 +5232,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $10 + local.get $13 i32.const 1 i32.add i64.extend_i32_u - local.tee $16 + local.tee $9 i64.div_u - local.get $5 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $16 + local.get $9 i64.div_u i64.xor i32.wrap_i64 @@ -5272,7 +5271,7 @@ if local.get $0 local.get $4 - local.get $14 + local.get $11 local.get $8 i32.const 2 i32.shl @@ -5281,8 +5280,8 @@ i32.load i32.const 1 i32.add - local.get $7 - local.get $15 + local.get $5 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 @@ -5309,14 +5308,14 @@ local.get $3 i32.store local.get $4 - local.get $14 + local.get $11 i32.add - local.get $7 + local.get $5 i32.store local.get $6 local.set $3 - local.get $5 - local.set $7 + local.get $7 + local.set $5 local.get $1 local.set $4 br $while-continue|2 @@ -5340,13 +5339,13 @@ local.get $4 i32.const 2 i32.shl - local.get $14 + local.get $11 i32.add i32.load i32.const 1 i32.add + local.get $13 local.get $10 - local.get $15 local.get $2 call $~lib/util/sort/mergeRuns end @@ -5357,7 +5356,7 @@ br $for-loop|4 end end - local.get $15 + local.get $10 call $~lib/rt/tlsf/__free local.get $12 call $~lib/rt/tlsf/__free @@ -5703,14 +5702,14 @@ i32.const 3 i32.shl i32.add - local.tee $3 + local.tee $7 f64.load f64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 + local.get $7 local.get $5 f64.store local.get $2 @@ -5889,14 +5888,13 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f64) + (local $9 i64) (local $10 i32) - (local $11 f64) + (local $11 i32) (local $12 i32) - (local $13 f64) - (local $14 i32) - (local $15 i32) - (local $16 i64) + (local $13 i32) + (local $14 f64) + (local $15 f64) local.get $1 i32.const 48 i32.le_s @@ -5910,10 +5908,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -5921,17 +5920,17 @@ end local.get $0 f64.load - local.set $13 + local.set $15 local.get $0 f64.load offset=8 - local.set $9 + local.set $14 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $9 - local.get $13 - local.get $13 - local.get $9 + local.get $14 + local.get $15 + local.get $15 + local.get $14 local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) @@ -5940,49 +5939,49 @@ local.tee $1 select f64.store + local.get $15 + local.get $14 + local.get $1 + select + local.set $15 local.get $0 f64.load offset=16 - local.set $11 + local.set $14 i32.const 2 global.set $~argumentsLength - local.get $13 - local.get $9 - local.get $1 - select - local.tee $9 - local.get $11 + local.get $0 + local.get $14 + local.get $15 + local.get $15 + local.get $14 local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $11 - local.get $9 - local.get $1 + local.tee $1 select f64.store offset=8 local.get $0 - local.get $9 - local.get $11 + local.get $15 + local.get $14 local.get $1 select f64.store offset=16 end local.get $0 f64.load - local.set $11 + local.set $15 local.get $0 f64.load offset=8 - local.set $9 + local.set $14 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $9 - local.get $11 - local.get $11 - local.get $9 + local.get $14 + local.get $15 + local.get $15 + local.get $14 local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) @@ -5992,8 +5991,8 @@ select f64.store local.get $0 - local.get $11 - local.get $9 + local.get $15 + local.get $14 local.get $1 select f64.store offset=8 @@ -6001,7 +6000,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -6016,32 +6015,32 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc local.tee $12 - local.get $5 + local.get $7 i32.add - local.set $14 + local.set $11 i32.const 0 - local.set $5 + local.set $7 loop $for-loop|1 - local.get $5 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $5 + local.get $7 i32.const 2 i32.shl local.get $12 i32.add i32.const -1 i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|1 end end @@ -6049,16 +6048,16 @@ i32.const 3 i32.shl call $~lib/rt/tlsf/__alloc - local.set $15 + local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $10 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $5 i32.const 1 i32.add local.tee $1 @@ -6067,31 +6066,31 @@ if local.get $0 i32.const 0 - local.get $10 + local.get $13 i32.const 31 - local.get $10 + local.get $13 i32.const 31 i32.lt_s select - local.tee $7 + local.tee $5 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 - local.get $10 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $7 + local.get $5 i32.const 1 i32.add local.tee $6 - local.get $10 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 local.get $6 i32.sub i32.const 1 @@ -6102,16 +6101,16 @@ if local.get $0 local.get $6 - local.get $10 + local.get $13 local.get $6 i32.const 31 i32.add local.tee $1 local.get $1 - local.get $10 + local.get $13 i32.gt_s select - local.tee $5 + local.tee $7 local.get $8 local.get $2 call $~lib/util/sort/insertionSort @@ -6122,21 +6121,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $10 + local.get $13 i32.const 1 i32.add i64.extend_i32_u - local.tee $16 + local.tee $9 i64.div_u - local.get $5 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $16 + local.get $9 i64.div_u i64.xor i32.wrap_i64 @@ -6161,7 +6160,7 @@ if local.get $0 local.get $4 - local.get $14 + local.get $11 local.get $8 i32.const 2 i32.shl @@ -6170,8 +6169,8 @@ i32.load i32.const 1 i32.add - local.get $7 - local.get $15 + local.get $5 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 @@ -6198,14 +6197,14 @@ local.get $3 i32.store local.get $4 - local.get $14 + local.get $11 i32.add - local.get $7 + local.get $5 i32.store local.get $6 local.set $3 - local.get $5 - local.set $7 + local.get $7 + local.set $5 local.get $1 local.set $4 br $while-continue|2 @@ -6229,13 +6228,13 @@ local.get $4 i32.const 2 i32.shl - local.get $14 + local.get $11 i32.add i32.load i32.const 1 i32.add + local.get $13 local.get $10 - local.get $15 local.get $2 call $~lib/util/sort/mergeRuns end @@ -6246,7 +6245,7 @@ br $for-loop|4 end end - local.get $15 + local.get $10 call $~lib/rt/tlsf/__free local.get $12 call $~lib/rt/tlsf/__free @@ -6312,13 +6311,13 @@ i32.sub i32.const 1 i32.add - local.tee $5 + local.tee $6 local.get $3 i32.sub i32.const 1 i32.and i32.sub - local.get $5 + local.get $6 i32.const 1 i32.and local.get $3 @@ -6540,22 +6539,22 @@ i32.add local.tee $3 i32.load - local.set $5 + local.set $6 local.get $3 local.get $0 local.get $2 i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $5 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store local.get $2 i32.const 1 @@ -6674,18 +6673,18 @@ local.get $4 i32.add i32.load - local.set $7 + local.set $8 local.get $2 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -6697,7 +6696,7 @@ i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store local.get $6 i32.const 1 @@ -6709,7 +6708,7 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store local.get $2 i32.const 1 @@ -6731,11 +6730,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) + (local $13 i64) local.get $1 i32.const 48 i32.le_s @@ -6749,10 +6748,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -6760,7 +6760,7 @@ end local.get $0 i32.load - local.set $7 + local.set $3 local.get $0 i32.load offset=4 local.set $4 @@ -6768,8 +6768,8 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $7 - local.get $7 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load @@ -6779,32 +6779,32 @@ local.tee $1 select i32.store + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load offset=8 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $7 + local.get $0 local.get $4 - local.get $1 - select - local.tee $4 local.get $3 + local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $3 - local.get $4 - local.get $1 + local.tee $1 select i32.store offset=4 local.get $0 - local.get $4 local.get $3 + local.get $4 local.get $1 select i32.store offset=8 @@ -6840,7 +6840,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -6855,32 +6855,32 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc - local.tee $12 - local.get $7 + local.tee $10 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $7 + local.set $5 loop $for-loop|1 + local.get $5 local.get $6 - local.get $7 - i32.gt_u + i32.lt_u if - local.get $7 + local.get $5 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.const -1 i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|1 end end @@ -6888,16 +6888,16 @@ i32.const 2 i32.shl call $~lib/rt/tlsf/__alloc - local.set $10 + local.set $12 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $13 + local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -6906,31 +6906,31 @@ if local.get $0 i32.const 0 - local.get $13 + local.get $9 i32.const 31 - local.get $13 + local.get $9 i32.const 31 i32.lt_s select - local.tee $5 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 - local.get $13 + local.get $7 + local.get $9 i32.lt_s if local.get $0 - local.get $5 + local.get $7 i32.const 1 i32.add local.tee $6 - local.get $13 + local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $5 local.get $6 i32.sub i32.const 1 @@ -6941,16 +6941,16 @@ if local.get $0 local.get $6 - local.get $13 + local.get $9 local.get $6 i32.const 31 i32.add local.tee $1 local.get $1 - local.get $13 + local.get $9 i32.gt_s select - local.tee $7 + local.tee $5 local.get $8 local.get $2 call $~lib/util/sort/insertionSort @@ -6961,21 +6961,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $9 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $13 i64.div_u + local.get $5 local.get $6 - local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $13 i64.div_u i64.xor i32.wrap_i64 @@ -6991,7 +6991,7 @@ local.get $8 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $4 @@ -7009,12 +7009,12 @@ i32.load i32.const 1 i32.add - local.get $5 - local.get $10 + local.get $7 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $10 i32.add i32.const -1 i32.store @@ -7028,7 +7028,7 @@ br $for-loop|3 end end - local.get $12 + local.get $10 local.get $1 i32.const 2 i32.shl @@ -7039,12 +7039,12 @@ local.get $4 local.get $11 i32.add - local.get $5 + local.get $7 i32.store local.get $6 local.set $3 - local.get $7 - local.set $5 + local.get $5 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -7056,7 +7056,7 @@ local.get $4 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $1 @@ -7073,8 +7073,8 @@ i32.load i32.const 1 i32.add - local.get $13 - local.get $10 + local.get $9 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns end @@ -7085,10 +7085,10 @@ br $for-loop|4 end end - local.get $10 - call $~lib/rt/tlsf/__free local.get $12 call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -7106,13 +7106,13 @@ i32.sub i32.const 1 i32.add - local.tee $5 + local.tee $6 local.get $3 i32.sub i32.const 1 i32.and i32.sub - local.get $5 + local.get $6 i32.const 1 i32.and local.get $3 @@ -7334,22 +7334,22 @@ i32.add local.tee $3 i32.load - local.set $5 + local.set $6 local.get $3 local.get $0 local.get $2 i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $5 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store local.get $2 i32.const 1 @@ -7468,18 +7468,18 @@ local.get $4 i32.add i32.load - local.set $7 + local.set $8 local.get $2 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -7491,7 +7491,7 @@ i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store local.get $6 i32.const 1 @@ -7503,7 +7503,7 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store local.get $2 i32.const 1 @@ -7525,11 +7525,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) + (local $13 i64) local.get $1 i32.const 48 i32.le_s @@ -7543,10 +7543,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -7554,7 +7555,7 @@ end local.get $0 i32.load - local.set $7 + local.set $3 local.get $0 i32.load offset=4 local.set $4 @@ -7562,8 +7563,8 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $7 - local.get $7 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load @@ -7573,32 +7574,32 @@ local.tee $1 select i32.store + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load offset=8 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $7 + local.get $0 local.get $4 - local.get $1 - select - local.tee $4 local.get $3 + local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $3 - local.get $4 - local.get $1 + local.tee $1 select i32.store offset=4 local.get $0 - local.get $4 local.get $3 + local.get $4 local.get $1 select i32.store offset=8 @@ -7634,7 +7635,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -7649,32 +7650,32 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc - local.tee $12 - local.get $7 + local.tee $10 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $7 + local.set $5 loop $for-loop|1 + local.get $5 local.get $6 - local.get $7 - i32.gt_u + i32.lt_u if - local.get $7 + local.get $5 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.const -1 i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|1 end end @@ -7682,16 +7683,16 @@ i32.const 2 i32.shl call $~lib/rt/tlsf/__alloc - local.set $10 + local.set $12 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $13 + local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -7700,31 +7701,31 @@ if local.get $0 i32.const 0 - local.get $13 + local.get $9 i32.const 31 - local.get $13 + local.get $9 i32.const 31 i32.lt_s select - local.tee $5 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 - local.get $13 + local.get $7 + local.get $9 i32.lt_s if local.get $0 - local.get $5 + local.get $7 i32.const 1 i32.add local.tee $6 - local.get $13 + local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $5 local.get $6 i32.sub i32.const 1 @@ -7735,16 +7736,16 @@ if local.get $0 local.get $6 - local.get $13 + local.get $9 local.get $6 i32.const 31 i32.add local.tee $1 local.get $1 - local.get $13 + local.get $9 i32.gt_s select - local.tee $7 + local.tee $5 local.get $8 local.get $2 call $~lib/util/sort/insertionSort @@ -7755,21 +7756,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $9 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $13 i64.div_u + local.get $5 local.get $6 - local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $13 i64.div_u i64.xor i32.wrap_i64 @@ -7785,7 +7786,7 @@ local.get $8 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $4 @@ -7803,12 +7804,12 @@ i32.load i32.const 1 i32.add - local.get $5 - local.get $10 + local.get $7 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $10 i32.add i32.const -1 i32.store @@ -7822,7 +7823,7 @@ br $for-loop|3 end end - local.get $12 + local.get $10 local.get $1 i32.const 2 i32.shl @@ -7833,12 +7834,12 @@ local.get $4 local.get $11 i32.add - local.get $5 + local.get $7 i32.store local.get $6 local.set $3 - local.get $7 - local.set $5 + local.get $5 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -7850,7 +7851,7 @@ local.get $4 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $1 @@ -7867,8 +7868,8 @@ i32.load i32.const 1 i32.add - local.get $13 - local.get $10 + local.get $9 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns end @@ -7879,10 +7880,10 @@ br $for-loop|4 end end - local.get $10 - call $~lib/rt/tlsf/__free local.get $12 call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -10460,26 +10461,28 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $4 - i32.const 1 - local.get $4 - select - i32.const 1075 - i32.sub - local.tee $10 - i32.const 1 - i32.sub + local.set $5 local.get $2 i64.const 4503599627370495 i64.and - local.get $4 + local.get $5 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl i64.add - local.tee $2 + local.set $2 + local.get $5 + i32.const 1 + local.get $5 + select + i32.const 1075 + i32.sub + local.tee $5 + i32.const 1 + i32.sub + local.get $2 i64.const 1 i64.shl i64.const 1 @@ -10487,11 +10490,11 @@ local.tee $3 i64.clz i32.wrap_i64 - local.tee $5 + local.tee $4 i32.sub - local.set $4 + local.set $10 local.get $3 - local.get $5 + local.get $4 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -10501,25 +10504,25 @@ i64.eq i32.const 1 i32.add - local.tee $5 + local.tee $4 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $10 local.get $5 - i32.sub local.get $4 i32.sub + local.get $10 + i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $4 + local.get $10 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $10 + local.tee $5 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -10541,10 +10544,10 @@ local.tee $4 i32.const 3 i32.shl - local.tee $5 + local.tee $10 i32.sub global.set $~lib/util/number/_K - local.get $5 + local.get $10 i32.const 11752 i32.add i64.load @@ -10563,34 +10566,40 @@ local.tee $3 i64.const 4294967295 i64.and - local.set $11 + local.set $12 global.get $~lib/util/number/_frc_pow - local.tee $6 + local.tee $11 i64.const 4294967295 i64.and - local.tee $2 + local.set $2 local.get $3 i64.const 32 i64.shr_u - local.tee $13 + local.set $13 + local.get $11 + i64.const 32 + i64.shr_u + local.set $3 + local.get $2 + local.get $13 i64.mul local.get $2 - local.get $11 + local.get $12 i64.mul i64.const 32 i64.shr_u i64.add - local.set $12 + local.set $11 global.get $~lib/util/number/_frc_plus - local.tee $3 + local.tee $6 i64.const 4294967295 i64.and local.set $7 local.get $2 - local.get $3 + local.get $6 i64.const 32 i64.shr_u - local.tee $3 + local.tee $6 i64.mul local.get $2 local.get $7 @@ -10601,9 +10610,6 @@ local.set $8 local.get $3 local.get $6 - i64.const 32 - i64.shr_u - local.tee $3 i64.mul local.get $8 i64.const 32 @@ -10623,17 +10629,17 @@ i64.add i64.const 1 i64.sub - local.set $7 + local.set $6 global.get $~lib/util/number/_frc_minus - local.tee $6 + local.tee $7 i64.const 4294967295 i64.and local.set $8 local.get $2 - local.get $6 + local.get $7 i64.const 32 i64.shr_u - local.tee $6 + local.tee $7 i64.mul local.get $2 local.get $8 @@ -10651,14 +10657,14 @@ local.get $3 local.get $13 i64.mul - local.get $12 + local.get $11 i64.const 32 i64.shr_u i64.add local.get $3 - local.get $11 - i64.mul local.get $12 + i64.mul + local.get $11 i64.const 4294967295 i64.and i64.add @@ -10667,15 +10673,15 @@ i64.const 32 i64.shr_u i64.add - local.get $7 - local.get $10 + local.get $6 + local.get $5 global.get $~lib/util/number/_exp_pow i32.add i32.const -64 i32.sub - local.get $7 - local.get $3 local.get $6 + local.get $3 + local.get $7 i64.mul local.get $2 i64.const 32 @@ -11327,14 +11333,6 @@ i64.const 100000000 i64.ge_u if - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - local.get $0 - i32.add local.get $1 local.get $1 i64.const 100000000 @@ -11346,8 +11344,20 @@ i32.wrap_i64 local.tee $3 i32.const 10000 + i32.div_u + local.set $4 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 10000 i32.rem_u - local.tee $4 + local.tee $3 i32.const 100 i32.div_u i32.const 2 @@ -11355,7 +11365,7 @@ i32.const 9628 i32.add i64.load32_u - local.get $4 + local.get $3 i32.const 100 i32.rem_u i32.const 2 @@ -11375,10 +11385,7 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 10000 - i32.div_u - local.tee $3 + local.get $4 i32.const 100 i32.div_u i32.const 2 @@ -11386,7 +11393,7 @@ i32.const 9628 i32.add i64.load32_u - local.get $3 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -11961,13 +11968,13 @@ i32.sub i32.const 1 i32.add - local.tee $5 + local.tee $6 local.get $3 i32.sub i32.const 1 i32.and i32.sub - local.get $5 + local.get $6 i32.const 1 i32.and local.get $3 @@ -12167,20 +12174,20 @@ i32.add local.tee $3 i32.load8_u - local.set $5 + local.set $6 local.get $3 local.get $0 local.get $2 i32.add - local.tee $3 + local.tee $5 i32.load8_u i32.store8 local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store8 local.get $2 i32.const 1 @@ -12248,10 +12255,9 @@ i32.const 1 i32.sub local.tee $2 - local.tee $8 i32.add local.get $0 - local.get $8 + local.get $2 i32.add i32.load8_u i32.store8 @@ -12289,16 +12295,16 @@ local.get $6 i32.add i32.load8_u - local.set $7 + local.set $8 local.get $2 local.get $4 i32.add i32.load8_u - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -12308,7 +12314,7 @@ local.get $0 local.get $1 i32.add - local.get $7 + local.get $8 i32.store8 local.get $6 i32.const 1 @@ -12318,7 +12324,7 @@ local.get $0 local.get $1 i32.add - local.get $8 + local.get $7 i32.store8 local.get $2 i32.const 1 @@ -12340,11 +12346,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) + (local $13 i64) local.get $1 i32.const 48 i32.le_s @@ -12358,10 +12364,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -12369,7 +12376,7 @@ end local.get $0 i32.load8_u - local.set $7 + local.set $3 local.get $0 i32.load8_u offset=1 local.set $4 @@ -12377,8 +12384,8 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $7 - local.get $7 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load @@ -12388,32 +12395,32 @@ local.tee $1 select i32.store8 + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load8_u offset=2 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $7 + local.get $0 local.get $4 - local.get $1 - select - local.tee $4 local.get $3 + local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $3 - local.get $4 - local.get $1 + local.tee $1 select i32.store8 offset=1 local.get $0 - local.get $4 local.get $3 + local.get $4 local.get $1 select i32.store8 offset=2 @@ -12449,7 +12456,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -12464,47 +12471,47 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc - local.tee $12 - local.get $7 + local.tee $10 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $7 + local.set $5 loop $for-loop|1 + local.get $5 local.get $6 - local.get $7 - i32.gt_u + i32.lt_u if - local.get $7 + local.get $5 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.const -1 i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|1 end end local.get $1 call $~lib/rt/tlsf/__alloc - local.set $10 + local.set $12 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $13 + local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -12513,31 +12520,31 @@ if local.get $0 i32.const 0 - local.get $13 + local.get $9 i32.const 31 - local.get $13 + local.get $9 i32.const 31 i32.lt_s select - local.tee $5 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 - local.get $13 + local.get $7 + local.get $9 i32.lt_s if local.get $0 - local.get $5 + local.get $7 i32.const 1 i32.add local.tee $6 - local.get $13 + local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $5 local.get $6 i32.sub i32.const 1 @@ -12548,16 +12555,16 @@ if local.get $0 local.get $6 - local.get $13 + local.get $9 local.get $6 i32.const 31 i32.add local.tee $1 local.get $1 - local.get $13 + local.get $9 i32.gt_s select - local.tee $7 + local.tee $5 local.get $8 local.get $2 call $~lib/util/sort/insertionSort @@ -12568,21 +12575,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $9 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $13 i64.div_u + local.get $5 local.get $6 - local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $13 i64.div_u i64.xor i32.wrap_i64 @@ -12598,7 +12605,7 @@ local.get $8 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $4 @@ -12616,12 +12623,12 @@ i32.load i32.const 1 i32.add - local.get $5 - local.get $10 + local.get $7 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $10 i32.add i32.const -1 i32.store @@ -12635,7 +12642,7 @@ br $for-loop|3 end end - local.get $12 + local.get $10 local.get $1 i32.const 2 i32.shl @@ -12646,12 +12653,12 @@ local.get $4 local.get $11 i32.add - local.get $5 + local.get $7 i32.store local.get $6 local.set $3 - local.get $7 - local.set $5 + local.get $5 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -12663,7 +12670,7 @@ local.get $4 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $1 @@ -12680,8 +12687,8 @@ i32.load i32.const 1 i32.add - local.get $13 - local.get $10 + local.get $9 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns end @@ -12692,10 +12699,10 @@ br $for-loop|4 end end - local.get $10 - call $~lib/rt/tlsf/__free local.get $12 call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free ) (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -16242,16 +16249,16 @@ 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 $3 if - local.get $0 + local.get $1 i32.load offset=4 - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.load offset=4 local.get $3 i32.const 1 @@ -16259,30 +16266,30 @@ i32.const 2 i32.shl i32.add - local.set $0 + local.set $1 loop $while-continue|0 local.get $0 local.get $1 - i32.gt_u + i32.lt_u if - local.get $1 + local.get $0 i32.load local.set $3 - local.get $1 local.get $0 + local.get $1 i32.load i32.store - local.get $0 + local.get $1 local.get $3 i32.store - local.get $1 + local.get $0 i32.const 4 i32.add - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 4 i32.sub - local.set $0 + local.set $1 br $while-continue|0 end end @@ -20024,48 +20031,48 @@ i32.const 3 i32.const 6080 call $~lib/rt/__newArray - local.tee $4 + local.tee $0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 6128 i32.store offset=8 - local.get $4 + local.get $0 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|070 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $4 - i32.load offset=4 local.get $0 + i32.load offset=4 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $1 local.get $0 - local.get $4 i32.const 6128 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|070 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 @@ -20079,43 +20086,43 @@ global.get $~lib/memory/__stack_pointer i32.const 6160 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#findLastIndex47 loop $for-loop|048 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $4 - i32.load offset=4 local.get $0 + i32.load offset=4 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $1 local.get $0 - local.get $4 i32.const 6160 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex47 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|048 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 @@ -20131,43 +20138,43 @@ global.get $~lib/memory/__stack_pointer i32.const 6192 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#findLastIndex49 loop $for-loop|050 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $4 - i32.load offset=4 local.get $0 + i32.load offset=4 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $1 local.get $0 - local.get $4 i32.const 6192 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex49 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|050 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 @@ -20183,7 +20190,7 @@ global.get $~lib/memory/__stack_pointer i32.const 6224 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=12 i32.const 1 i32.sub @@ -20194,7 +20201,7 @@ i32.const 0 i32.ge_s if - local.get $4 + local.get $0 i32.load offset=4 local.get $1 i32.const 2 @@ -20204,7 +20211,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $0 i32.const 6224 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -21025,17 +21032,17 @@ i32.const 6576 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 - local.set $0 + local.set $1 loop $for-loop|057 - local.get $1 local.get $0 + local.get $1 local.get $4 i32.load offset=12 local.tee $3 - local.get $0 + local.get $1 local.get $3 i32.lt_s select @@ -21043,22 +21050,22 @@ if local.get $4 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 $4 i32.const 6576 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|057 end end @@ -21084,17 +21091,17 @@ i32.const 6608 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 - local.set $0 + local.set $1 loop $for-loop|05989 - local.get $1 local.get $0 + local.get $1 local.get $4 i32.load offset=12 local.tee $3 - local.get $0 + local.get $1 local.get $3 i32.lt_s select @@ -21102,22 +21109,22 @@ if local.get $4 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 $4 i32.const 6608 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|05989 end end @@ -21159,17 +21166,17 @@ i32.const 6640 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 - local.set $0 + local.set $1 loop $for-loop|062 - local.get $1 local.get $0 + local.get $1 local.get $4 i32.load offset=12 local.tee $3 - local.get $0 + local.get $1 local.get $3 i32.lt_s select @@ -21177,22 +21184,22 @@ if local.get $4 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 $4 i32.const 6640 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|062 end end @@ -21246,17 +21253,17 @@ i32.const 6672 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 - local.set $0 + local.set $1 loop $for-loop|064 - local.get $1 local.get $0 + local.get $1 local.get $4 i32.load offset=12 local.tee $3 - local.get $0 + local.get $1 local.get $3 i32.lt_s select @@ -21264,22 +21271,22 @@ if local.get $4 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 $4 i32.const 6672 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|064 end end @@ -21335,17 +21342,17 @@ i32.const 6704 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 - local.set $0 + local.set $1 loop $for-loop|06790 - local.get $1 local.get $0 + local.get $1 local.get $4 i32.load offset=12 local.tee $3 - local.get $0 + local.get $1 local.get $3 i32.lt_s select @@ -21353,22 +21360,22 @@ if local.get $4 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 $4 i32.const 6704 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|06790 end end @@ -21442,16 +21449,16 @@ call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 global.get $std/array/arr local.tee $8 i32.store - local.get $3 + local.get $2 i32.const 6736 i32.store offset=8 i32.const 0 - local.set $1 - local.get $3 + local.set $0 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21460,13 +21467,13 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 0 i32.store - local.get $0 + local.get $3 local.get $8 i32.load offset=12 - local.tee $2 + local.tee $5 i32.const 2 i32.const 9 i32.const 0 @@ -21475,44 +21482,44 @@ i32.store local.get $7 i32.load offset=4 - local.set $5 + local.set $4 loop $for-loop|07093 - local.get $1 - local.get $2 + local.get $0 + local.get $5 local.get $8 i32.load offset=12 - local.tee $0 - local.get $0 - local.get $2 + local.tee $3 + local.get $3 + local.get $5 i32.gt_s select i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.tee $4 + local.tee $1 local.get $8 i32.load offset=4 i32.add i32.load - local.set $0 + local.set $3 i32.const 3 global.set $~argumentsLength + local.get $1 local.get $4 - local.get $5 i32.add + local.get $3 local.get $0 - local.get $1 local.get $8 i32.const 6736 i32.load call_indirect $0 (type $i32_i32_i32_=>_f32) f32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|07093 end end @@ -21520,7 +21527,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $7 i32.store offset=20 local.get $7 @@ -22411,20 +22418,20 @@ i32.const 7216 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|079107 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -22432,22 +22439,22 @@ local.set $3 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $3 local.get $1 + local.get $3 + local.get $0 local.get $4 i32.const 7216 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|079107 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -22469,20 +22476,20 @@ i32.const 7248 i32.store offset=8 i32.const 4 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|081 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -22490,22 +22497,22 @@ local.set $3 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $3 local.get $1 + local.get $3 + local.get $0 local.get $4 i32.const 7248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|081 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -22527,20 +22534,20 @@ i32.const 7280 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|083 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -22548,22 +22555,22 @@ local.set $3 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $3 local.get $1 + local.get $3 + local.get $0 local.get $4 i32.const 7280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|083 end end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -22582,20 +22589,20 @@ i32.const 7312 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|085 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -22603,22 +22610,22 @@ local.set $3 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $3 local.get $1 + local.get $3 + local.get $0 local.get $4 i32.const 7312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|085 end end - local.get $0 + local.get $1 if i32.const 0 i32.const 1552 @@ -22636,20 +22643,20 @@ i32.const 7344 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|087 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -22657,22 +22664,22 @@ local.set $3 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $3 local.get $1 + local.get $3 + local.get $0 local.get $4 i32.const 7344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|087 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -22710,20 +22717,20 @@ i32.const 7376 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|090 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -22731,22 +22738,22 @@ local.set $3 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $3 local.get $1 + local.get $3 + local.get $0 local.get $4 i32.const 7376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|090 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -22796,20 +22803,20 @@ i32.const 7408 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|092 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -22817,22 +22824,22 @@ local.set $3 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $3 local.get $1 + local.get $3 + local.get $0 local.get $4 i32.const 7408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|092 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23333,13 +23340,13 @@ i32.const 7904 call $~lib/rt/__newArray local.tee $5 - local.set $1 + local.set $0 local.get $5 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 @@ -23360,16 +23367,16 @@ unreachable end i32.const 8000 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8000 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 @@ -23386,7 +23393,7 @@ i32.store offset=8 block $__inlined_func$std/array/isArraysEqual (result i32) i32.const 0 - local.set $0 + local.set $1 i32.const 0 local.get $5 i32.load offset=12 @@ -23403,19 +23410,19 @@ br_if $__inlined_func$std/array/isArraysEqual drop loop $for-loop|026 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $5 - local.get $0 + local.get $1 call $~lib/array/Array#__get local.tee $10 local.get $10 f64.ne if (result i32) local.get $4 - local.get $0 + local.get $1 call $~lib/array/Array#__get local.tee $10 local.get $10 @@ -23427,19 +23434,19 @@ if i32.const 0 local.get $5 - local.get $0 + local.get $1 call $~lib/array/Array#__get local.get $4 - local.get $0 + local.get $1 call $~lib/array/Array#__get f64.ne br_if $__inlined_func$std/array/isArraysEqual drop end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|026 end end @@ -24483,9 +24490,9 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -24501,10 +24508,10 @@ i32.const 0 i32.const 400 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $1 + local.tee $6 i32.store loop $for-loop|0144 - local.get $0 + local.get $1 i32.const 400 i32.lt_s if @@ -24512,9 +24519,9 @@ f64.const 32 f64.mul i32.trunc_f64_s - local.set $2 + local.set $5 i32.const 0 - local.set $6 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -24524,29 +24531,29 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i64.const 0 i64.store - local.get $4 + local.get $0 i32.const 0 i32.store offset=8 i32.const 9024 local.set $3 - local.get $4 + local.get $0 i32.const 9024 i32.store loop $for-loop|022 - local.get $2 - local.get $6 + local.get $5 + local.get $8 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 i32.const 7488 i32.store offset=4 call $~lib/math/NativeMath.random global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i32.const 7488 i32.store offset=8 i32.const 7484 @@ -24557,8 +24564,8 @@ f64.mul f64.floor i32.trunc_f64_s - local.set $8 - local.get $4 + local.set $7 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -24570,7 +24577,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/string/String#charAt - local.get $8 + local.get $7 i32.const 7484 i32.load i32.const 1 @@ -24582,17 +24589,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9024 - local.set $4 + 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 $4 + local.tee $0 i32.store - local.get $4 - local.get $8 + local.get $0 + local.get $7 i32.const 1 i32.shl i32.const 7488 @@ -24605,18 +24612,18 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $5 - local.get $3 local.get $4 + local.get $3 + local.get $0 call $~lib/string/String.__concat local.tee $3 i32.store - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|022 end end @@ -24627,14 +24634,14 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=4 + local.get $6 local.get $1 - local.get $0 local.get $3 call $~lib/array/Array<~lib/array/Array>#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0144 end end @@ -24642,9 +24649,8 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $1 - local.tee $3 + local.get $2 + local.get $6 i32.store offset=156 i32.const 1 global.set $~argumentsLength @@ -24677,7 +24683,7 @@ i32.const 9184 i32.store end - local.get $3 + local.get $6 local.get $1 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -27598,14 +27604,14 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load offset=12 - local.tee $3 local.get $1 i32.load offset=12 i32.const 0 local.get $1 select + local.tee $3 + local.get $0 + i32.load offset=12 local.tee $4 i32.add local.tee $2 @@ -27632,7 +27638,7 @@ local.tee $5 local.get $0 i32.load offset=4 - local.get $3 + local.get $4 i32.const 2 i32.shl local.tee $0 @@ -27642,7 +27648,7 @@ i32.add local.get $1 i32.load offset=4 - local.get $4 + local.get $3 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -30570,14 +30576,14 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load offset=12 - local.tee $3 local.get $1 i32.load offset=12 i32.const 0 local.get $1 select + local.tee $3 + local.get $0 + i32.load offset=12 local.tee $4 i32.add local.tee $2 @@ -30604,7 +30610,7 @@ local.tee $5 local.get $0 i32.load offset=4 - local.get $3 + local.get $4 i32.const 2 i32.shl local.tee $0 @@ -30614,7 +30620,7 @@ i32.add local.get $1 i32.load offset=4 - local.get $4 + local.get $3 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -34355,15 +34361,15 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $0 + i32.load offset=12 + local.tee $3 local.get $1 i32.load offset=12 i32.const 0 local.get $1 select local.tee $6 - local.get $0 - i32.load offset=12 - local.tee $3 i32.add local.tee $2 i32.const 268435455 @@ -34422,26 +34428,26 @@ local.get $3 local.get $5 i32.add - local.set $4 + local.set $0 local.get $1 i32.load offset=4 - local.set $1 + local.set $4 local.get $6 i32.const 2 i32.shl local.set $5 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 local.get $5 i32.lt_u if local.get $0 - local.get $4 + local.get $1 i32.add - local.get $0 local.get $1 + local.get $4 i32.add i32.load local.tee $3 @@ -34450,10 +34456,10 @@ local.get $3 i32.const 1 call $~lib/rt/itcms/__link - local.get $0 + local.get $1 i32.const 4 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index d280d5c219..e58dc189da 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -165,16 +165,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1712 i32.load i32.gt_u @@ -186,7 +186,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1716 @@ -202,26 +202,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -381,17 +381,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1688,26 +1688,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $3 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $3 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index c85e3e74bd..351fde0324 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -171,16 +171,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1744 i32.load i32.gt_u @@ -192,7 +192,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1748 @@ -208,26 +208,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -387,17 +387,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1694,26 +1694,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $3 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $3 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index 7529501c3c..85034442e2 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -532,16 +532,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 7504 i32.load i32.gt_u @@ -553,7 +553,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 7508 @@ -569,26 +569,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -748,17 +748,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -2055,26 +2055,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $3 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $3 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -4425,8 +4425,8 @@ return end local.get $0 - local.tee $1 local.get $0 + local.tee $1 i32.const 20 i32.sub i32.load offset=16 @@ -9608,7 +9608,7 @@ i32.shr_u i32.const 1 i32.shl - local.tee $6 + local.tee $5 local.get $1 i32.const 1 i32.shl @@ -9632,7 +9632,7 @@ i32.store local.get $3 local.get $2 - local.get $6 + local.get $5 i32.sub local.tee $2 i32.lt_u @@ -9643,37 +9643,33 @@ i32.sub local.get $3 i32.div_u - local.tee $4 i32.mul + local.tee $6 local.set $7 - local.get $3 - local.get $4 - i32.mul - local.set $4 loop $while-continue|0 local.get $4 - local.get $5 - i32.gt_u + local.get $7 + i32.lt_u if local.get $1 - local.get $5 + local.get $4 i32.add i32.const 1872 local.get $3 call $~lib/memory/memory.copy local.get $3 - local.get $5 + local.get $4 i32.add - local.set $5 + local.set $4 br $while-continue|0 end end local.get $1 - local.get $7 + local.get $6 i32.add i32.const 1872 local.get $2 - local.get $7 + local.get $6 i32.sub call $~lib/memory/memory.copy else @@ -9686,7 +9682,7 @@ local.get $2 i32.add local.get $0 - local.get $6 + local.get $5 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 2213faeec4..a2dfa0240d 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -179,16 +179,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1760 i32.load i32.gt_u @@ -200,7 +200,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1764 @@ -216,26 +216,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -395,17 +395,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1702,26 +1702,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $3 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $3 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -2783,7 +2783,7 @@ local.get $1 local.get $0 i32.load offset=8 - local.tee $9 + local.tee $8 local.get $2 i32.shr_u i32.gt_u @@ -2803,7 +2803,7 @@ end local.get $0 i32.load - local.set $7 + local.set $4 local.get $1 i32.const 8 local.get $1 @@ -2812,34 +2812,34 @@ select local.get $2 i32.shl - local.set $2 - block $__inlined_func$~lib/rt/itcms/__renew + local.set $1 + block $__inlined_func$~lib/rt/itcms/__renew (result i32) local.get $3 if (result i32) - local.get $9 + local.get $8 i32.const 1 i32.shl - local.tee $1 + local.tee $2 i32.const 1073741820 - local.get $1 + local.get $2 i32.const 1073741820 i32.lt_u select - local.tee $1 - local.get $2 + local.tee $2 + local.get $1 local.get $1 local.get $2 - i32.gt_u + i32.lt_u select else - local.get $2 + local.get $1 end local.tee $6 - local.get $7 - local.tee $1 + local.get $4 + local.tee $2 i32.const 20 i32.sub - local.tee $2 + local.tee $1 i32.load i32.const -4 i32.and @@ -2847,107 +2847,109 @@ i32.sub i32.le_u if - local.get $2 + local.get $1 local.get $6 i32.store offset=16 + local.get $2 br $__inlined_func$~lib/rt/itcms/__renew end local.get $6 - local.get $2 + local.get $1 i32.load offset=12 call $~lib/rt/itcms/__new + local.tee $9 local.set $3 local.get $6 - local.get $2 + local.get $1 i32.load offset=16 - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 local.get $6 i32.gt_u select - local.set $8 + local.set $7 block $~lib/util/memory/memmove|inlined.0 local.get $3 - local.tee $2 - local.get $1 + local.get $2 + local.tee $1 i32.eq br_if $~lib/util/memory/memmove|inlined.0 local.get $1 - local.get $2 + local.get $3 i32.sub - local.get $8 + local.get $7 i32.sub i32.const 0 - local.get $8 + local.get $7 i32.const 1 i32.shl i32.sub i32.le_u if - local.get $2 + local.get $3 local.get $1 - local.get $8 + local.get $7 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end local.get $1 - local.get $2 + local.get $3 i32.gt_u if local.get $1 i32.const 7 i32.and - local.get $2 + local.get $3 i32.const 7 i32.and i32.eq if loop $while-continue|0 - local.get $2 + local.get $3 i32.const 7 i32.and if - local.get $8 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $8 + local.get $7 i32.const 1 i32.sub - local.set $8 - local.get $2 - local.tee $4 + local.set $7 + local.get $3 + local.tee $5 i32.const 1 i32.add - local.set $2 + local.set $3 local.get $1 - local.tee $5 + local.tee $4 i32.const 1 i32.add local.set $1 - local.get $4 local.get $5 + local.get $4 i32.load8_u i32.store8 br $while-continue|0 end end loop $while-continue|1 - local.get $8 + local.get $7 i32.const 8 i32.ge_u if - local.get $2 + local.get $3 local.get $1 i64.load i64.store - local.get $8 + local.get $7 i32.const 8 i32.sub - local.set $8 - local.get $2 + local.set $7 + local.get $3 i32.const 8 i32.add - local.set $2 + local.set $3 local.get $1 i32.const 8 i32.add @@ -2957,26 +2959,26 @@ end end loop $while-continue|2 - local.get $8 + local.get $7 if - local.get $2 - local.tee $4 + local.get $3 + local.tee $5 i32.const 1 i32.add - local.set $2 + local.set $3 local.get $1 - local.tee $5 + local.tee $4 i32.const 1 i32.add local.set $1 - local.get $4 local.get $5 + local.get $4 i32.load8_u i32.store8 - local.get $8 + local.get $7 i32.const 1 i32.sub - local.set $8 + local.set $7 br $while-continue|2 end end @@ -2984,29 +2986,29 @@ local.get $1 i32.const 7 i32.and - local.get $2 + local.get $3 i32.const 7 i32.and i32.eq if loop $while-continue|3 - local.get $2 - local.get $8 + local.get $3 + local.get $7 i32.add i32.const 7 i32.and if - local.get $8 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $2 - local.get $8 + local.get $3 + local.get $7 i32.const 1 i32.sub - local.tee $8 + local.tee $7 i32.add local.get $1 - local.get $8 + local.get $7 i32.add i32.load8_u i32.store8 @@ -3014,18 +3016,18 @@ end end loop $while-continue|4 - local.get $8 + local.get $7 i32.const 8 i32.ge_u if - local.get $2 - local.get $8 + local.get $3 + local.get $7 i32.const 8 i32.sub - local.tee $8 + local.tee $7 i32.add local.get $1 - local.get $8 + local.get $7 i32.add i64.load i64.store @@ -3034,16 +3036,16 @@ end end loop $while-continue|5 - local.get $8 + local.get $7 if - local.get $2 - local.get $8 + local.get $3 + local.get $7 i32.const 1 i32.sub - local.tee $8 + local.tee $7 i32.add local.get $1 - local.get $8 + local.get $7 i32.add i32.load8_u i32.store8 @@ -3052,18 +3054,17 @@ end end end - local.get $3 - local.set $1 + local.get $9 end - local.get $1 - local.get $9 + local.tee $1 + local.get $8 i32.add local.get $6 - local.get $9 + local.get $8 i32.sub call $~lib/memory/memory.fill local.get $1 - local.get $7 + local.get $2 i32.ne if local.get $0 @@ -3522,16 +3523,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $3 i64.const 0 i64.store offset=8 - local.get $2 + local.get $3 i32.const 0 i32.store offset=16 - local.get $2 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3540,61 +3541,61 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $16 i32.const 0 i32.store - local.get $6 + local.get $16 i32.const 24 i32.const 3 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $15 i32.store - local.get $6 + local.get $15 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $16 i32.store - local.get $6 - local.get $0 + local.get $15 + local.get $16 call $~lib/rt/itcms/__link - local.get $6 + local.get $15 i32.const 3 i32.store offset=4 - local.get $6 + local.get $15 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $16 i32.store offset=8 - local.get $6 - local.get $0 + local.get $15 + local.get $16 call $~lib/rt/itcms/__link - local.get $6 + local.get $15 i32.const 4 i32.store offset=12 - local.get $6 + local.get $15 i32.const 0 i32.store offset=16 - local.get $6 + local.get $15 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $6 + local.get $3 + local.get $15 i32.store loop $for-loop|1 - local.get $1 + local.get $4 i32.extend8_s i32.const 100 i32.lt_s if - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $4 i32.extend8_s i32.const -1028477379 i32.mul @@ -3604,22 +3605,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u i32.xor @@ -3628,38 +3629,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $14 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $2 + local.get $14 if - local.get $2 + local.get $14 i32.load offset=8 - local.tee $3 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $14 i32.load8_u - local.get $1 + local.get $4 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $3 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $14 br $while-continue|0 end end i32.const 0 - local.set $2 + local.set $14 end - local.get $2 + local.get $14 if i32.const 0 i32.const 1568 @@ -3668,19 +3669,19 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 - local.get $1 + local.get $15 + local.get $4 + local.get $4 i32.extend8_s - local.tee $2 + local.tee $16 i32.const 10 i32.add call $~lib/map/Map#set - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $2 + local.get $16 i32.const -1028477379 i32.mul i32.const 374761394 @@ -3689,22 +3690,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u i32.xor @@ -3713,38 +3714,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $14 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $2 + local.get $14 if - local.get $2 + local.get $14 i32.load offset=8 - local.tee $3 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $14 i32.load8_u - local.get $1 + local.get $4 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $3 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $14 br $while-continue|02 end end i32.const 0 - local.set $2 + local.set $14 end - local.get $2 + local.get $14 i32.eqz if i32.const 0 @@ -3754,10 +3755,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 + local.get $15 + local.get $4 call $~lib/map/Map#get - local.get $1 + local.get $4 i32.extend8_s i32.const 10 i32.add @@ -3770,14 +3771,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|1 end end - local.get $6 + local.get $15 i32.load offset=20 i32.const 100 i32.ne @@ -3790,18 +3791,18 @@ unreachable end i32.const 0 - local.set $1 + local.set $4 loop $for-loop|3 - local.get $1 + local.get $4 i32.extend8_s i32.const 100 i32.lt_s if - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $4 i32.extend8_s i32.const -1028477379 i32.mul @@ -3811,22 +3812,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u i32.xor @@ -3835,38 +3836,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $14 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $2 + local.get $14 if - local.get $2 + local.get $14 i32.load offset=8 - local.tee $3 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $14 i32.load8_u - local.get $1 + local.get $4 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $3 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $14 br $while-continue|05 end end i32.const 0 - local.set $2 + local.set $14 end - local.get $2 + local.get $14 i32.eqz if i32.const 0 @@ -3876,10 +3877,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 + local.get $15 + local.get $4 call $~lib/map/Map#get - local.get $1 + local.get $4 i32.extend8_s i32.const 10 i32.add @@ -3892,19 +3893,19 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 - local.get $1 + local.get $15 + local.get $4 + local.get $4 i32.extend8_s - local.tee $2 + local.tee $16 i32.const 20 i32.add call $~lib/map/Map#set - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $2 + local.get $16 i32.const -1028477379 i32.mul i32.const 374761394 @@ -3913,22 +3914,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u i32.xor @@ -3937,38 +3938,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $14 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $2 + local.get $14 if - local.get $2 + local.get $14 i32.load offset=8 - local.tee $3 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $14 i32.load8_u - local.get $1 + local.get $4 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $3 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $14 br $while-continue|08 end end i32.const 0 - local.set $2 + local.set $14 end - local.get $2 + local.get $14 i32.eqz if i32.const 0 @@ -3978,10 +3979,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 + local.get $15 + local.get $4 call $~lib/map/Map#get - local.get $1 + local.get $4 i32.extend8_s i32.const 20 i32.add @@ -3994,14 +3995,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|3 end end - local.get $6 + local.get $15 i32.load offset=20 i32.const 100 i32.ne @@ -4013,10 +4014,8 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4025,17 +4024,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $13 i32.const 0 i32.store - local.get $6 + local.get $15 i32.load offset=8 - local.set $10 - local.get $6 + local.set $3 + local.get $15 i32.load offset=16 - local.tee $11 - local.set $0 - local.get $4 + local.tee $16 + local.set $11 + local.get $13 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -4044,31 +4043,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 i64.const 0 i64.store - local.get $1 + local.get $4 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $14 i32.store - local.get $1 + local.get $14 i32.const 0 i32.store - local.get $1 + local.get $14 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $14 i32.const 0 i32.store offset=4 - local.get $1 + local.get $14 i32.const 0 i32.store offset=8 - local.get $1 + local.get $14 i32.const 0 i32.store offset=12 - local.get $0 + local.get $11 i32.const 1073741820 i32.gt_u if @@ -4080,99 +4079,97 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $11 i32.const 8 - local.get $0 + local.get $11 i32.const 8 i32.gt_u select - local.tee $5 + local.tee $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $10 i32.store offset=4 - local.get $3 - local.get $5 + local.get $10 + local.get $4 call $~lib/memory/memory.fill - local.get $1 - local.get $3 + local.get $14 + local.get $10 i32.store - local.get $1 - local.get $3 + local.get $14 + local.get $10 call $~lib/rt/itcms/__link - local.get $1 - local.get $3 + local.get $14 + local.get $10 i32.store offset=4 - local.get $1 - local.get $5 + local.get $14 + local.get $4 i32.store offset=8 - local.get $1 - local.get $0 + local.get $14 + 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 $4 - local.get $1 + local.get $13 + local.get $14 i32.store loop $for-loop|0 - local.get $8 - local.get $11 + local.get $12 + local.get $16 i32.lt_s if - local.get $10 - local.get $8 + local.get $3 + local.get $12 i32.const 12 i32.mul i32.add - local.tee $3 + local.tee $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 - local.tee $0 - i32.const 1 - i32.add - local.set $2 + local.get $14 local.get $1 - local.get $0 - local.get $3 + local.get $4 i32.load8_s call $~lib/array/Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 end - local.get $8 + local.get $12 i32.const 1 i32.add - local.set $8 + local.set $12 br $for-loop|0 end end + local.get $14 local.get $1 - local.get $2 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity + local.get $14 local.get $1 - 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 $1 - local.tee $3 + local.get $0 + local.get $14 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $15 call $~lib/map/Map#values - local.tee $13 + local.tee $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $16 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4181,62 +4178,63 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 24 i32.const 6 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 $0 + local.tee $4 i32.store - local.get $2 - local.get $0 + local.get $13 + local.get $4 call $~lib/rt/itcms/__link - local.get $2 + local.get $13 i32.const 3 i32.store offset=4 - local.get $2 + local.get $13 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $4 i32.store offset=8 - local.get $2 - local.get $0 + local.get $13 + local.get $4 call $~lib/rt/itcms/__link - 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 $1 - local.get $2 + local.get $16 + local.get $13 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $11 + local.tee $8 i32.store offset=16 loop $for-loop|4 - local.get $7 - local.get $3 + local.get $2 + local.get $14 i32.load offset=12 i32.lt_s if - local.get $7 - local.get $3 + local.get $2 + local.tee $3 + local.get $14 i32.load offset=12 i32.ge_u if @@ -4247,21 +4245,21 @@ call $~lib/builtins/abort unreachable end - local.get $7 local.get $3 + local.get $14 i32.load offset=4 i32.add i32.load8_s - local.set $1 - local.get $13 - local.get $7 - call $~lib/array/Array#__get - local.set $12 + local.set $2 local.get $6 + local.get $3 + call $~lib/array/Array#__get + local.set $7 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $2 i32.extend8_s i32.const -1028477379 i32.mul @@ -4271,22 +4269,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 @@ -4310,7 +4308,7 @@ else local.get $0 i32.load8_u - local.get $1 + local.get $2 i32.const 255 i32.and i32.eq @@ -4336,14 +4334,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $12 + local.get $7 i32.const 20 i32.sub - local.tee $4 + local.tee $16 i32.extend8_s i32.const -1028477379 i32.mul @@ -4353,22 +4351,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 @@ -4377,38 +4375,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $12 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $0 + local.get $12 if - local.get $0 + local.get $12 i32.load offset=8 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $12 i32.load8_u - local.get $4 + local.get $16 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $5 + local.get $4 i32.const -2 i32.and - local.set $0 + local.set $12 br $while-continue|014 end end i32.const 0 - local.set $0 + local.set $12 end - local.get $0 + local.get $12 i32.eqz if i32.const 0 @@ -4429,10 +4427,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 + local.get $13 i32.load - local.get $1 - local.tee $5 + local.get $2 i32.extend8_s i32.const -1028477379 i32.mul @@ -4442,39 +4439,39 @@ 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 - local.tee $14 - local.get $2 + local.tee $5 + local.get $13 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 local.tee $4 i32.const 1 @@ -4482,9 +4479,9 @@ if (result i32) i32.const 0 else - local.get $0 + local.get $1 i32.load8_u - local.get $5 + local.get $2 i32.const 255 i32.and i32.eq @@ -4493,28 +4490,28 @@ local.get $4 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|015 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if - local.get $0 - local.get $5 + local.get $1 + local.get $2 i32.store8 offset=1 else - local.get $2 + local.get $13 i32.load offset=16 - local.get $2 + local.get $13 i32.load offset=12 i32.eq if - local.get $2 + local.get $13 i32.load offset=20 - local.get $2 + local.get $13 i32.load offset=12 i32.const 3 i32.mul @@ -4522,17 +4519,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $2 + local.get $13 i32.load offset=4 else - local.get $2 + local.get $13 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $8 + local.set $16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4542,45 +4539,45 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i64.const 0 i64.store - local.get $0 - local.get $8 + local.get $4 + local.get $16 i32.const 1 i32.add - local.tee $0 + local.tee $4 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $11 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $4 i32.store offset=4 - local.get $2 + local.get $13 i32.load offset=8 local.tee $9 - local.get $2 + local.get $13 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $16 + local.set $10 local.get $4 local.set $0 loop $while-continue|016 local.get $9 - local.get $16 + local.get $10 i32.ne if local.get $9 @@ -4592,16 +4589,16 @@ local.get $0 local.get $9 i32.load8_s - local.tee $1 + local.tee $12 i32.store8 local.get $0 local.get $9 i32.load8_s offset=1 i32.store8 offset=1 local.get $0 - local.get $10 - local.get $8 local.get $1 + local.get $16 + local.get $12 i32.extend8_s i32.const -1028477379 i32.mul @@ -4611,22 +4608,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $12 + local.get $12 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $12 + local.get $12 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $12 + local.get $12 i32.const 16 i32.shr_u i32.xor @@ -4634,10 +4631,10 @@ i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $12 i32.load i32.store offset=4 - local.get $1 + local.get $12 local.get $0 i32.store local.get $0 @@ -4652,26 +4649,26 @@ br $while-continue|016 end end - local.get $2 - local.get $10 + local.get $13 + local.get $1 i32.store - local.get $2 - local.get $10 + local.get $13 + local.get $1 call $~lib/rt/itcms/__link - local.get $2 - local.get $8 + local.get $13 + local.get $16 i32.store offset=4 - local.get $2 + local.get $13 local.get $4 i32.store offset=8 - local.get $2 + local.get $13 local.get $4 call $~lib/rt/itcms/__link - local.get $2 - local.get $15 + local.get $13 + local.get $11 i32.store offset=12 - local.get $2 - local.get $2 + local.get $13 + local.get $13 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -4680,70 +4677,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $13 i32.load offset=8 - local.tee $0 + local.tee $16 i32.store - local.get $2 - local.get $2 + local.get $13 + local.get $13 i32.load offset=16 - local.tee $8 + local.tee $4 i32.const 1 i32.add i32.store offset=16 - local.get $0 - local.get $8 + local.get $16 + local.get $4 i32.const 3 i32.shl i32.add - local.tee $0 - local.get $5 - i32.store8 - local.get $0 - local.get $5 - i32.store8 offset=1 + local.tee $4 local.get $2 + i32.store8 + local.get $4 local.get $2 + i32.store8 offset=1 + local.get $13 + local.get $13 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $0 - local.get $2 + local.get $4 + local.get $13 i32.load - local.get $14 - local.get $2 + local.get $5 + local.get $13 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $2 i32.load i32.store offset=4 - local.get $1 - local.get $0 + local.get $2 + local.get $4 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 - local.get $12 + local.get $8 + local.get $7 i32.const 20 i32.sub - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 call $~lib/map/Map#set - local.get $7 + local.get $3 i32.const 1 i32.add - local.set $7 + local.set $2 br $for-loop|4 end end - local.get $2 + local.get $13 i32.load offset=20 i32.const 100 i32.ne @@ -4755,7 +4752,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $8 i32.load offset=20 i32.const 100 i32.ne @@ -4768,18 +4765,18 @@ unreachable end i32.const 0 - local.set $7 + local.set $2 loop $for-loop|6 - local.get $7 + local.get $2 i32.extend8_s i32.const 50 i32.lt_s if - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $7 + local.get $2 i32.extend8_s i32.const -1028477379 i32.mul @@ -4789,22 +4786,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -4813,38 +4810,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load8_u - local.get $7 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|019 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -4854,10 +4851,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $7 + local.get $15 + local.get $2 call $~lib/map/Map#get - local.get $7 + local.get $2 i32.extend8_s i32.const 20 i32.add @@ -4870,14 +4867,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $7 + local.get $15 + local.get $2 call $~lib/map/Map#delete - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $7 + local.get $2 i32.extend8_s i32.const -1028477379 i32.mul @@ -4887,22 +4884,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -4911,38 +4908,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load8_u - local.get $7 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|022 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -4951,14 +4948,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $2 i32.const 1 i32.add - local.set $7 + local.set $2 br $for-loop|6 end end - local.get $6 + local.get $15 i32.load offset=20 i32.const 50 i32.ne @@ -4971,18 +4968,18 @@ unreachable end i32.const 0 - local.set $7 + local.set $2 loop $for-loop|8 - local.get $7 + local.get $2 i32.extend8_s i32.const 50 i32.lt_s if - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $7 + local.get $2 i32.extend8_s i32.const -1028477379 i32.mul @@ -4992,22 +4989,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -5016,38 +5013,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load8_u - local.get $7 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|025 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -5056,19 +5053,19 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $7 - local.get $7 + local.get $15 + local.get $2 + local.get $2 i32.extend8_s - local.tee $1 + local.tee $4 i32.const 10 i32.add call $~lib/map/Map#set - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761394 @@ -5077,22 +5074,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -5101,38 +5098,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load8_u - local.get $7 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|028 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -5142,14 +5139,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $7 + local.get $15 + local.get $2 call $~lib/map/Map#delete - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $7 + local.get $2 i32.extend8_s i32.const -1028477379 i32.mul @@ -5159,22 +5156,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -5183,38 +5180,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load8_u - local.get $7 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|031 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -5223,14 +5220,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $2 i32.const 1 i32.add - local.set $7 + local.set $2 br $for-loop|8 end end - local.get $6 + local.get $15 i32.load offset=20 i32.const 50 i32.ne @@ -5242,9 +5239,9 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $15 call $~lib/map/Map#clear - local.get $6 + local.get $15 i32.load offset=20 if i32.const 0 @@ -5668,16 +5665,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $3 i64.const 0 i64.store offset=8 - local.get $2 + local.get $3 i32.const 0 i32.store offset=16 - local.get $2 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5686,62 +5683,62 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $16 i32.const 0 i32.store - local.get $6 + local.get $16 i32.const 24 i32.const 8 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $15 i32.store - local.get $6 + local.get $15 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $16 i32.store - local.get $6 - local.get $0 + local.get $15 + local.get $16 call $~lib/rt/itcms/__link - local.get $6 + local.get $15 i32.const 3 i32.store offset=4 - local.get $6 + local.get $15 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $16 i32.store offset=8 - local.get $6 - local.get $0 + local.get $15 + local.get $16 call $~lib/rt/itcms/__link - local.get $6 + local.get $15 i32.const 4 i32.store offset=12 - local.get $6 + local.get $15 i32.const 0 i32.store offset=16 - local.get $6 + local.get $15 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $6 + local.get $3 + local.get $15 i32.store loop $for-loop|1 - local.get $1 + local.get $4 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $4 i32.const 255 i32.and i32.const -1028477379 @@ -5752,22 +5749,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u i32.xor @@ -5776,38 +5773,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $14 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $2 + local.get $14 if - local.get $2 + local.get $14 i32.load offset=8 - local.tee $3 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $14 i32.load8_u - local.get $1 + local.get $4 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $3 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $14 br $while-continue|0 end end i32.const 0 - local.set $2 + local.set $14 end - local.get $2 + local.get $14 if i32.const 0 i32.const 1568 @@ -5816,20 +5813,20 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 - local.get $1 + local.get $15 + local.get $4 + local.get $4 i32.const 255 i32.and - local.tee $2 + local.tee $16 i32.const 10 i32.add call $~lib/map/Map#set - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $2 + local.get $16 i32.const -1028477379 i32.mul i32.const 374761394 @@ -5838,22 +5835,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u i32.xor @@ -5862,38 +5859,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $14 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $2 + local.get $14 if - local.get $2 + local.get $14 i32.load offset=8 - local.tee $3 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $14 i32.load8_u - local.get $1 + local.get $4 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $3 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $14 br $while-continue|02 end end i32.const 0 - local.set $2 + local.set $14 end - local.get $2 + local.get $14 i32.eqz if i32.const 0 @@ -5903,10 +5900,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 + local.get $15 + local.get $4 call $~lib/map/Map#get - local.get $1 + local.get $4 i32.const 255 i32.and i32.const 10 @@ -5920,14 +5917,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|1 end end - local.get $6 + local.get $15 i32.load offset=20 i32.const 100 i32.ne @@ -5940,19 +5937,19 @@ unreachable end i32.const 0 - local.set $1 + local.set $4 loop $for-loop|3 - local.get $1 + local.get $4 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $4 i32.const 255 i32.and i32.const -1028477379 @@ -5963,22 +5960,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u i32.xor @@ -5987,38 +5984,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $14 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $2 + local.get $14 if - local.get $2 + local.get $14 i32.load offset=8 - local.tee $3 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $14 i32.load8_u - local.get $1 + local.get $4 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $3 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $14 br $while-continue|05 end end i32.const 0 - local.set $2 + local.set $14 end - local.get $2 + local.get $14 i32.eqz if i32.const 0 @@ -6028,10 +6025,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 + local.get $15 + local.get $4 call $~lib/map/Map#get - local.get $1 + local.get $4 i32.const 255 i32.and i32.const 10 @@ -6045,20 +6042,20 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 - local.get $1 + local.get $15 + local.get $4 + local.get $4 i32.const 255 i32.and - local.tee $2 + local.tee $16 i32.const 20 i32.add call $~lib/map/Map#set - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $2 + local.get $16 i32.const -1028477379 i32.mul i32.const 374761394 @@ -6067,22 +6064,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u i32.xor @@ -6091,38 +6088,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $14 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $2 + local.get $14 if - local.get $2 + local.get $14 i32.load offset=8 - local.tee $3 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $14 i32.load8_u - local.get $1 + local.get $4 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $3 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $14 br $while-continue|08 end end i32.const 0 - local.set $2 + local.set $14 end - local.get $2 + local.get $14 i32.eqz if i32.const 0 @@ -6132,10 +6129,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 + local.get $15 + local.get $4 call $~lib/map/Map#get - local.get $1 + local.get $4 i32.const 255 i32.and i32.const 20 @@ -6149,14 +6146,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|3 end end - local.get $6 + local.get $15 i32.load offset=20 i32.const 100 i32.ne @@ -6168,10 +6165,8 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6180,17 +6175,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $13 i32.const 0 i32.store - local.get $6 + local.get $15 i32.load offset=8 - local.set $10 - local.get $6 + local.set $3 + local.get $15 i32.load offset=16 - local.tee $11 - local.set $0 - local.get $4 + local.tee $16 + local.set $11 + local.get $13 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -6199,31 +6194,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 i64.const 0 i64.store - local.get $1 + local.get $4 i32.const 16 i32.const 9 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $14 i32.store - local.get $1 + local.get $14 i32.const 0 i32.store - local.get $1 + local.get $14 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $14 i32.const 0 i32.store offset=4 - local.get $1 + local.get $14 i32.const 0 i32.store offset=8 - local.get $1 + local.get $14 i32.const 0 i32.store offset=12 - local.get $0 + local.get $11 i32.const 1073741820 i32.gt_u if @@ -6235,99 +6230,97 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $11 i32.const 8 - local.get $0 + local.get $11 i32.const 8 i32.gt_u select - local.tee $5 + local.tee $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $10 i32.store offset=4 - local.get $3 - local.get $5 + local.get $10 + local.get $4 call $~lib/memory/memory.fill - local.get $1 - local.get $3 + local.get $14 + local.get $10 i32.store - local.get $1 - local.get $3 + local.get $14 + local.get $10 call $~lib/rt/itcms/__link - local.get $1 - local.get $3 + local.get $14 + local.get $10 i32.store offset=4 - local.get $1 - local.get $5 + local.get $14 + local.get $4 i32.store offset=8 - local.get $1 - local.get $0 + local.get $14 + 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 $4 - local.get $1 + local.get $13 + local.get $14 i32.store loop $for-loop|0 - local.get $8 - local.get $11 + local.get $12 + local.get $16 i32.lt_s if - local.get $10 - local.get $8 + local.get $3 + local.get $12 i32.const 12 i32.mul i32.add - local.tee $3 + local.tee $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 - local.tee $0 - i32.const 1 - i32.add - local.set $2 + local.get $14 local.get $1 - local.get $0 - local.get $3 + local.get $4 i32.load8_u call $~lib/array/Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 end - local.get $8 + local.get $12 i32.const 1 i32.add - local.set $8 + local.set $12 br $for-loop|0 end end + local.get $14 local.get $1 - local.get $2 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity + local.get $14 local.get $1 - 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 $1 - local.tee $3 + local.get $0 + local.get $14 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $15 call $~lib/map/Map#values - local.tee $13 + local.tee $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $16 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6336,62 +6329,63 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 24 i32.const 10 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 $0 + local.tee $4 i32.store - local.get $2 - local.get $0 + local.get $13 + local.get $4 call $~lib/rt/itcms/__link - local.get $2 + local.get $13 i32.const 3 i32.store offset=4 - local.get $2 + local.get $13 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $4 i32.store offset=8 - local.get $2 - local.get $0 + local.get $13 + local.get $4 call $~lib/rt/itcms/__link - 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 $1 - local.get $2 + local.get $16 + local.get $13 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $11 + local.tee $8 i32.store offset=16 loop $for-loop|4 - local.get $7 - local.get $3 + local.get $2 + local.get $14 i32.load offset=12 i32.lt_s if - local.get $7 - local.get $3 + local.get $2 + local.tee $3 + local.get $14 i32.load offset=12 i32.ge_u if @@ -6402,21 +6396,21 @@ call $~lib/builtins/abort unreachable end - local.get $7 local.get $3 + local.get $14 i32.load offset=4 i32.add i32.load8_u - local.set $1 - local.get $13 - local.get $7 - call $~lib/array/Array#__get - local.set $12 + local.set $2 local.get $6 + local.get $3 + call $~lib/array/Array#__get + local.set $7 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $2 i32.const 255 i32.and i32.const -1028477379 @@ -6427,22 +6421,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 @@ -6466,7 +6460,7 @@ else local.get $0 i32.load8_u - local.get $1 + local.get $2 i32.const 255 i32.and i32.eq @@ -6492,14 +6486,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $12 + local.get $7 i32.const 20 i32.sub - local.tee $4 + local.tee $16 i32.const 255 i32.and i32.const -1028477379 @@ -6510,22 +6504,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 @@ -6534,38 +6528,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $12 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $0 + local.get $12 if - local.get $0 + local.get $12 i32.load offset=8 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $12 i32.load8_u - local.get $4 + local.get $16 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $5 + local.get $4 i32.const -2 i32.and - local.set $0 + local.set $12 br $while-continue|014 end end i32.const 0 - local.set $0 + local.set $12 end - local.get $0 + local.get $12 i32.eqz if i32.const 0 @@ -6586,10 +6580,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 + local.get $13 i32.load - local.get $1 - local.tee $5 + local.get $2 i32.const 255 i32.and i32.const -1028477379 @@ -6600,39 +6593,39 @@ 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 - local.tee $14 - local.get $2 + local.tee $5 + local.get $13 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 local.tee $4 i32.const 1 @@ -6640,9 +6633,9 @@ if (result i32) i32.const 0 else - local.get $0 + local.get $1 i32.load8_u - local.get $5 + local.get $2 i32.const 255 i32.and i32.eq @@ -6651,28 +6644,28 @@ local.get $4 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|015 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if - local.get $0 - local.get $5 + local.get $1 + local.get $2 i32.store8 offset=1 else - local.get $2 + local.get $13 i32.load offset=16 - local.get $2 + local.get $13 i32.load offset=12 i32.eq if - local.get $2 + local.get $13 i32.load offset=20 - local.get $2 + local.get $13 i32.load offset=12 i32.const 3 i32.mul @@ -6680,17 +6673,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $2 + local.get $13 i32.load offset=4 else - local.get $2 + local.get $13 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $8 + local.set $16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -6700,45 +6693,45 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i64.const 0 i64.store - local.get $0 - local.get $8 + local.get $4 + local.get $16 i32.const 1 i32.add - local.tee $0 + local.tee $4 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $11 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $4 i32.store offset=4 - local.get $2 + local.get $13 i32.load offset=8 local.tee $9 - local.get $2 + local.get $13 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $16 + local.set $10 local.get $4 local.set $0 loop $while-continue|016 local.get $9 - local.get $16 + local.get $10 i32.ne if local.get $9 @@ -6750,16 +6743,16 @@ local.get $0 local.get $9 i32.load8_u - local.tee $1 + local.tee $12 i32.store8 local.get $0 local.get $9 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $10 - local.get $8 local.get $1 + local.get $16 + local.get $12 i32.const 255 i32.and i32.const -1028477379 @@ -6770,22 +6763,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $12 + local.get $12 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $12 + local.get $12 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $12 + local.get $12 i32.const 16 i32.shr_u i32.xor @@ -6793,10 +6786,10 @@ i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $12 i32.load i32.store offset=4 - local.get $1 + local.get $12 local.get $0 i32.store local.get $0 @@ -6811,26 +6804,26 @@ br $while-continue|016 end end - local.get $2 - local.get $10 + local.get $13 + local.get $1 i32.store - local.get $2 - local.get $10 + local.get $13 + local.get $1 call $~lib/rt/itcms/__link - local.get $2 - local.get $8 + local.get $13 + local.get $16 i32.store offset=4 - local.get $2 + local.get $13 local.get $4 i32.store offset=8 - local.get $2 + local.get $13 local.get $4 call $~lib/rt/itcms/__link - local.get $2 - local.get $15 + local.get $13 + local.get $11 i32.store offset=12 - local.get $2 - local.get $2 + local.get $13 + local.get $13 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -6839,70 +6832,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $13 i32.load offset=8 - local.tee $0 + local.tee $16 i32.store - local.get $2 - local.get $2 + local.get $13 + local.get $13 i32.load offset=16 - local.tee $8 + local.tee $4 i32.const 1 i32.add i32.store offset=16 - local.get $0 - local.get $8 + local.get $16 + local.get $4 i32.const 3 i32.shl i32.add - local.tee $0 - local.get $5 - i32.store8 - local.get $0 - local.get $5 - i32.store8 offset=1 + local.tee $4 local.get $2 + i32.store8 + local.get $4 local.get $2 + i32.store8 offset=1 + local.get $13 + local.get $13 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $0 - local.get $2 - i32.load - local.get $14 - local.get $2 + local.get $4 + local.get $13 + i32.load + local.get $5 + local.get $13 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $2 i32.load i32.store offset=4 - local.get $1 - local.get $0 + local.get $2 + local.get $4 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 - local.get $12 + local.get $8 + local.get $7 i32.const 20 i32.sub - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 call $~lib/map/Map#set - local.get $7 + local.get $3 i32.const 1 i32.add - local.set $7 + local.set $2 br $for-loop|4 end end - local.get $2 + local.get $13 i32.load offset=20 i32.const 100 i32.ne @@ -6914,7 +6907,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $8 i32.load offset=20 i32.const 100 i32.ne @@ -6927,19 +6920,19 @@ unreachable end i32.const 0 - local.set $7 + local.set $2 loop $for-loop|6 - local.get $7 + local.get $2 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $7 + local.get $2 i32.const 255 i32.and i32.const -1028477379 @@ -6950,22 +6943,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -6974,38 +6967,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load8_u - local.get $7 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|019 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -7015,10 +7008,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $7 + local.get $15 + local.get $2 call $~lib/map/Map#get - local.get $7 + local.get $2 i32.const 255 i32.and i32.const 20 @@ -7032,14 +7025,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $7 + local.get $15 + local.get $2 call $~lib/map/Map#delete - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $7 + local.get $2 i32.const 255 i32.and i32.const -1028477379 @@ -7050,22 +7043,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -7074,38 +7067,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load8_u - local.get $7 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|022 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -7114,14 +7107,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $2 i32.const 1 i32.add - local.set $7 + local.set $2 br $for-loop|6 end end - local.get $6 + local.get $15 i32.load offset=20 i32.const 50 i32.ne @@ -7134,19 +7127,19 @@ unreachable end i32.const 0 - local.set $7 + local.set $2 loop $for-loop|8 - local.get $7 + local.get $2 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $7 + local.get $2 i32.const 255 i32.and i32.const -1028477379 @@ -7157,22 +7150,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -7181,38 +7174,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load8_u - local.get $7 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|025 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -7221,20 +7214,20 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $7 - local.get $7 + local.get $15 + local.get $2 + local.get $2 i32.const 255 i32.and - local.tee $1 + local.tee $4 i32.const 10 i32.add call $~lib/map/Map#set - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761394 @@ -7243,22 +7236,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -7267,38 +7260,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load8_u - local.get $7 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|028 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -7308,14 +7301,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $7 + local.get $15 + local.get $2 call $~lib/map/Map#delete - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $7 + local.get $2 i32.const 255 i32.and i32.const -1028477379 @@ -7326,22 +7319,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -7350,38 +7343,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load8_u - local.get $7 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|031 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -7390,14 +7383,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $2 i32.const 1 i32.add - local.set $7 + local.set $2 br $for-loop|8 end end - local.get $6 + local.get $15 i32.load offset=20 i32.const 50 i32.ne @@ -7409,9 +7402,9 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $15 call $~lib/map/Map#clear - local.get $6 + local.get $15 i32.load offset=20 if i32.const 0 @@ -7871,16 +7864,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $3 i64.const 0 i64.store offset=8 - local.get $2 + local.get $3 i32.const 0 i32.store offset=16 - local.get $2 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7889,61 +7882,61 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $16 i32.const 0 i32.store - local.get $6 + local.get $16 i32.const 24 i32.const 11 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $15 i32.store - local.get $6 + local.get $15 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $16 i32.store - local.get $6 - local.get $0 + local.get $15 + local.get $16 call $~lib/rt/itcms/__link - local.get $6 + local.get $15 i32.const 3 i32.store offset=4 - local.get $6 + local.get $15 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $16 i32.store offset=8 - local.get $6 - local.get $0 + local.get $15 + local.get $16 call $~lib/rt/itcms/__link - local.get $6 + local.get $15 i32.const 4 i32.store offset=12 - local.get $6 + local.get $15 i32.const 0 i32.store offset=16 - local.get $6 + local.get $15 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $6 + local.get $3 + local.get $15 i32.store loop $for-loop|1 - local.get $1 + local.get $4 i32.extend16_s i32.const 100 i32.lt_s if - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $4 i32.extend16_s i32.const -1028477379 i32.mul @@ -7953,22 +7946,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u i32.xor @@ -7977,38 +7970,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $14 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $2 + local.get $14 if - local.get $2 + local.get $14 i32.load offset=8 - local.tee $3 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $14 i32.load16_u - local.get $1 + local.get $4 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $3 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $14 br $while-continue|0 end end i32.const 0 - local.set $2 + local.set $14 end - local.get $2 + local.get $14 if i32.const 0 i32.const 1568 @@ -8017,19 +8010,19 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 - local.get $1 + local.get $15 + local.get $4 + local.get $4 i32.extend16_s - local.tee $2 + local.tee $16 i32.const 10 i32.add call $~lib/map/Map#set - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $2 + local.get $16 i32.const -1028477379 i32.mul i32.const 374761395 @@ -8038,22 +8031,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u i32.xor @@ -8062,38 +8055,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $14 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $2 + local.get $14 if - local.get $2 + local.get $14 i32.load offset=8 - local.tee $3 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $14 i32.load16_u - local.get $1 + local.get $4 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $3 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $14 br $while-continue|02 end end i32.const 0 - local.set $2 + local.set $14 end - local.get $2 + local.get $14 i32.eqz if i32.const 0 @@ -8103,10 +8096,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 + local.get $15 + local.get $4 call $~lib/map/Map#get - local.get $1 + local.get $4 i32.extend16_s i32.const 10 i32.add @@ -8119,14 +8112,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|1 end end - local.get $6 + local.get $15 i32.load offset=20 i32.const 100 i32.ne @@ -8139,18 +8132,18 @@ unreachable end i32.const 0 - local.set $1 + local.set $4 loop $for-loop|3 - local.get $1 + local.get $4 i32.extend16_s i32.const 100 i32.lt_s if - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $4 i32.extend16_s i32.const -1028477379 i32.mul @@ -8160,22 +8153,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u i32.xor @@ -8184,38 +8177,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $14 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $2 + local.get $14 if - local.get $2 + local.get $14 i32.load offset=8 - local.tee $3 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $14 i32.load16_u - local.get $1 + local.get $4 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $3 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $14 br $while-continue|05 end end i32.const 0 - local.set $2 + local.set $14 end - local.get $2 + local.get $14 i32.eqz if i32.const 0 @@ -8225,10 +8218,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 + local.get $15 + local.get $4 call $~lib/map/Map#get - local.get $1 + local.get $4 i32.extend16_s i32.const 10 i32.add @@ -8241,19 +8234,19 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 - local.get $1 + local.get $15 + local.get $4 + local.get $4 i32.extend16_s - local.tee $2 + local.tee $16 i32.const 20 i32.add call $~lib/map/Map#set - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $2 + local.get $16 i32.const -1028477379 i32.mul i32.const 374761395 @@ -8262,22 +8255,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u i32.xor @@ -8286,38 +8279,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $14 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $2 + local.get $14 if - local.get $2 + local.get $14 i32.load offset=8 - local.tee $3 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $14 i32.load16_u - local.get $1 + local.get $4 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $3 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $14 br $while-continue|08 end end i32.const 0 - local.set $2 + local.set $14 end - local.get $2 + local.get $14 i32.eqz if i32.const 0 @@ -8327,10 +8320,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 + local.get $15 + local.get $4 call $~lib/map/Map#get - local.get $1 + local.get $4 i32.extend16_s i32.const 20 i32.add @@ -8343,14 +8336,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|3 end end - local.get $6 + local.get $15 i32.load offset=20 i32.const 100 i32.ne @@ -8362,10 +8355,8 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -8374,17 +8365,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $13 i32.const 0 i32.store - local.get $6 + local.get $15 i32.load offset=8 - local.set $10 - local.get $6 + local.set $3 + local.get $15 i32.load offset=16 - local.tee $11 - local.set $0 - local.get $4 + local.tee $16 + local.set $11 + local.get $13 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -8393,31 +8384,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 i64.const 0 i64.store - local.get $1 + local.get $4 i32.const 16 i32.const 12 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $14 i32.store - local.get $1 + local.get $14 i32.const 0 i32.store - local.get $1 + local.get $14 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $14 i32.const 0 i32.store offset=4 - local.get $1 + local.get $14 i32.const 0 i32.store offset=8 - local.get $1 + local.get $14 i32.const 0 i32.store offset=12 - local.get $0 + local.get $11 i32.const 536870910 i32.gt_u if @@ -8429,101 +8420,99 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $11 i32.const 8 - local.get $0 + local.get $11 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $5 + local.tee $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $10 i32.store offset=4 - local.get $3 - local.get $5 + local.get $10 + local.get $4 call $~lib/memory/memory.fill - local.get $1 - local.get $3 + local.get $14 + local.get $10 i32.store - local.get $1 - local.get $3 + local.get $14 + local.get $10 call $~lib/rt/itcms/__link - local.get $1 - local.get $3 + local.get $14 + local.get $10 i32.store offset=4 - local.get $1 - local.get $5 + local.get $14 + local.get $4 i32.store offset=8 - local.get $1 - local.get $0 + local.get $14 + 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 $4 - local.get $1 + local.get $13 + local.get $14 i32.store loop $for-loop|0 - local.get $8 - local.get $11 + local.get $12 + local.get $16 i32.lt_s if - local.get $10 - local.get $8 + local.get $3 + local.get $12 i32.const 12 i32.mul i32.add - local.tee $3 + local.tee $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 - local.tee $0 - i32.const 1 - i32.add - local.set $2 + local.get $14 local.get $1 - local.get $0 - local.get $3 + local.get $4 i32.load16_s call $~lib/array/Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 end - local.get $8 + local.get $12 i32.const 1 i32.add - local.set $8 + local.set $12 br $for-loop|0 end end + local.get $14 local.get $1 - local.get $2 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity + local.get $14 local.get $1 - 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 $1 - local.tee $3 + local.get $0 + local.get $14 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $15 call $~lib/map/Map#values - local.tee $13 + local.tee $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $16 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -8532,62 +8521,63 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 24 i32.const 13 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 $0 + local.tee $4 i32.store - local.get $2 - local.get $0 + local.get $13 + local.get $4 call $~lib/rt/itcms/__link - local.get $2 + local.get $13 i32.const 3 i32.store offset=4 - local.get $2 + local.get $13 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $4 i32.store offset=8 - local.get $2 - local.get $0 + local.get $13 + local.get $4 call $~lib/rt/itcms/__link - 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 $1 - local.get $2 + local.get $16 + local.get $13 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $11 + local.tee $8 i32.store offset=16 loop $for-loop|4 - local.get $7 - local.get $3 + local.get $2 + local.get $14 i32.load offset=12 i32.lt_s if - local.get $7 - local.get $3 + local.get $2 + local.tee $3 + local.get $14 i32.load offset=12 i32.ge_u if @@ -8598,23 +8588,23 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $14 i32.load offset=4 - local.get $7 + local.get $3 i32.const 1 i32.shl i32.add i32.load16_s - local.set $1 - local.get $13 - local.get $7 - call $~lib/array/Array#__get - local.set $12 + local.set $2 local.get $6 + local.get $3 + call $~lib/array/Array#__get + local.set $7 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $2 i32.extend16_s i32.const -1028477379 i32.mul @@ -8624,22 +8614,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 @@ -8663,7 +8653,7 @@ else local.get $0 i32.load16_u - local.get $1 + local.get $2 i32.const 65535 i32.and i32.eq @@ -8689,14 +8679,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $12 + local.get $7 i32.const 20 i32.sub - local.tee $4 + local.tee $16 i32.extend16_s i32.const -1028477379 i32.mul @@ -8706,22 +8696,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 @@ -8730,38 +8720,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $12 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $0 + local.get $12 if - local.get $0 + local.get $12 i32.load offset=8 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $12 i32.load16_u - local.get $4 + local.get $16 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $5 + local.get $4 i32.const -2 i32.and - local.set $0 + local.set $12 br $while-continue|014 end end i32.const 0 - local.set $0 + local.set $12 end - local.get $0 + local.get $12 i32.eqz if i32.const 0 @@ -8782,10 +8772,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 + local.get $13 i32.load - local.get $1 - local.tee $5 + local.get $2 i32.extend16_s i32.const -1028477379 i32.mul @@ -8795,39 +8784,39 @@ 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 - local.tee $14 - local.get $2 + local.tee $5 + local.get $13 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 local.tee $4 i32.const 1 @@ -8835,9 +8824,9 @@ if (result i32) i32.const 0 else - local.get $0 + local.get $1 i32.load16_u - local.get $5 + local.get $2 i32.const 65535 i32.and i32.eq @@ -8846,28 +8835,28 @@ local.get $4 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|015 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if - local.get $0 - local.get $5 + local.get $1 + local.get $2 i32.store16 offset=2 else - local.get $2 + local.get $13 i32.load offset=16 - local.get $2 + local.get $13 i32.load offset=12 i32.eq if - local.get $2 + local.get $13 i32.load offset=20 - local.get $2 + local.get $13 i32.load offset=12 i32.const 3 i32.mul @@ -8875,17 +8864,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $2 + local.get $13 i32.load offset=4 else - local.get $2 + local.get $13 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $8 + local.set $16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8895,45 +8884,45 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i64.const 0 i64.store - local.get $0 - local.get $8 + local.get $4 + local.get $16 i32.const 1 i32.add - local.tee $0 + local.tee $4 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $11 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $4 i32.store offset=4 - local.get $2 + local.get $13 i32.load offset=8 local.tee $9 - local.get $2 + local.get $13 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $16 + local.set $10 local.get $4 local.set $0 loop $while-continue|016 local.get $9 - local.get $16 + local.get $10 i32.ne if local.get $9 @@ -8945,16 +8934,16 @@ local.get $0 local.get $9 i32.load16_s - local.tee $1 + local.tee $12 i32.store16 local.get $0 local.get $9 i32.load16_s offset=2 i32.store16 offset=2 local.get $0 - local.get $10 - local.get $8 local.get $1 + local.get $16 + local.get $12 i32.extend16_s i32.const -1028477379 i32.mul @@ -8964,22 +8953,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $12 + local.get $12 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $12 + local.get $12 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $12 + local.get $12 i32.const 16 i32.shr_u i32.xor @@ -8987,10 +8976,10 @@ i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $12 i32.load i32.store offset=4 - local.get $1 + local.get $12 local.get $0 i32.store local.get $0 @@ -9005,26 +8994,26 @@ br $while-continue|016 end end - local.get $2 - local.get $10 + local.get $13 + local.get $1 i32.store - local.get $2 - local.get $10 + local.get $13 + local.get $1 call $~lib/rt/itcms/__link - local.get $2 - local.get $8 + local.get $13 + local.get $16 i32.store offset=4 - local.get $2 + local.get $13 local.get $4 i32.store offset=8 - local.get $2 + local.get $13 local.get $4 call $~lib/rt/itcms/__link - local.get $2 - local.get $15 + local.get $13 + local.get $11 i32.store offset=12 - local.get $2 - local.get $2 + local.get $13 + local.get $13 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -9033,70 +9022,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $13 i32.load offset=8 - local.tee $0 + local.tee $16 i32.store - local.get $2 - local.get $2 + local.get $13 + local.get $13 i32.load offset=16 - local.tee $8 + local.tee $4 i32.const 1 i32.add i32.store offset=16 - local.get $0 - local.get $8 + local.get $16 + local.get $4 i32.const 3 i32.shl i32.add - local.tee $0 - local.get $5 - i32.store16 - local.get $0 - local.get $5 - i32.store16 offset=2 + local.tee $4 local.get $2 + i32.store16 + local.get $4 local.get $2 + i32.store16 offset=2 + local.get $13 + local.get $13 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $0 - local.get $2 + local.get $4 + local.get $13 i32.load - local.get $14 - local.get $2 + local.get $5 + local.get $13 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $2 i32.load i32.store offset=4 - local.get $1 - local.get $0 + local.get $2 + local.get $4 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 - local.get $12 + local.get $8 + local.get $7 i32.const 20 - i32.sub - local.tee $1 - local.get $1 + i32.sub + local.tee $2 + local.get $2 call $~lib/map/Map#set - local.get $7 + local.get $3 i32.const 1 i32.add - local.set $7 + local.set $2 br $for-loop|4 end end - local.get $2 + local.get $13 i32.load offset=20 i32.const 100 i32.ne @@ -9108,7 +9097,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $8 i32.load offset=20 i32.const 100 i32.ne @@ -9121,18 +9110,18 @@ unreachable end i32.const 0 - local.set $7 + local.set $2 loop $for-loop|6 - local.get $7 + local.get $2 i32.extend16_s i32.const 50 i32.lt_s if - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $7 + local.get $2 i32.extend16_s i32.const -1028477379 i32.mul @@ -9142,22 +9131,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -9166,38 +9155,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load16_u - local.get $7 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|019 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -9207,10 +9196,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $7 + local.get $15 + local.get $2 call $~lib/map/Map#get - local.get $7 + local.get $2 i32.extend16_s i32.const 20 i32.add @@ -9223,14 +9212,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $7 + local.get $15 + local.get $2 call $~lib/map/Map#delete - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $7 + local.get $2 i32.extend16_s i32.const -1028477379 i32.mul @@ -9240,22 +9229,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -9264,38 +9253,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load16_u - local.get $7 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|022 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -9304,14 +9293,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $2 i32.const 1 i32.add - local.set $7 + local.set $2 br $for-loop|6 end end - local.get $6 + local.get $15 i32.load offset=20 i32.const 50 i32.ne @@ -9324,18 +9313,18 @@ unreachable end i32.const 0 - local.set $7 + local.set $2 loop $for-loop|8 - local.get $7 + local.get $2 i32.extend16_s i32.const 50 i32.lt_s if - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $7 + local.get $2 i32.extend16_s i32.const -1028477379 i32.mul @@ -9345,22 +9334,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -9369,38 +9358,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load16_u - local.get $7 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|025 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -9409,19 +9398,19 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $7 - local.get $7 + local.get $15 + local.get $2 + local.get $2 i32.extend16_s - local.tee $1 + local.tee $4 i32.const 10 i32.add call $~lib/map/Map#set - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761395 @@ -9430,22 +9419,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -9454,38 +9443,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load16_u - local.get $7 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|028 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -9495,14 +9484,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $7 + local.get $15 + local.get $2 call $~lib/map/Map#delete - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $7 + local.get $2 i32.extend16_s i32.const -1028477379 i32.mul @@ -9512,22 +9501,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -9536,38 +9525,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load16_u - local.get $7 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|031 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -9576,14 +9565,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $2 i32.const 1 i32.add - local.set $7 + local.set $2 br $for-loop|8 end end - local.get $6 + local.get $15 i32.load offset=20 i32.const 50 i32.ne @@ -9595,9 +9584,9 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $15 call $~lib/map/Map#clear - local.get $6 + local.get $15 i32.load offset=20 if i32.const 0 @@ -10021,16 +10010,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $3 i64.const 0 i64.store offset=8 - local.get $2 + local.get $3 i32.const 0 i32.store offset=16 - local.get $2 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10039,62 +10028,62 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $16 i32.const 0 i32.store - local.get $6 + local.get $16 i32.const 24 i32.const 14 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $15 i32.store - local.get $6 + local.get $15 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $16 i32.store - local.get $6 - local.get $0 + local.get $15 + local.get $16 call $~lib/rt/itcms/__link - local.get $6 + local.get $15 i32.const 3 i32.store offset=4 - local.get $6 + local.get $15 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $16 i32.store offset=8 - local.get $6 - local.get $0 + local.get $15 + local.get $16 call $~lib/rt/itcms/__link - local.get $6 + local.get $15 i32.const 4 i32.store offset=12 - local.get $6 + local.get $15 i32.const 0 i32.store offset=16 - local.get $6 + local.get $15 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $6 + local.get $3 + local.get $15 i32.store loop $for-loop|1 - local.get $1 + local.get $4 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $4 i32.const 65535 i32.and i32.const -1028477379 @@ -10105,22 +10094,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u i32.xor @@ -10129,38 +10118,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $14 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $2 + local.get $14 if - local.get $2 + local.get $14 i32.load offset=8 - local.tee $3 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $14 i32.load16_u - local.get $1 + local.get $4 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $3 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $14 br $while-continue|0 end end i32.const 0 - local.set $2 + local.set $14 end - local.get $2 + local.get $14 if i32.const 0 i32.const 1568 @@ -10169,20 +10158,20 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 - local.get $1 + local.get $15 + local.get $4 + local.get $4 i32.const 65535 i32.and - local.tee $2 + local.tee $16 i32.const 10 i32.add call $~lib/map/Map#set - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $2 + local.get $16 i32.const -1028477379 i32.mul i32.const 374761395 @@ -10191,22 +10180,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u i32.xor @@ -10215,38 +10204,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $14 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $2 + local.get $14 if - local.get $2 + local.get $14 i32.load offset=8 - local.tee $3 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $14 i32.load16_u - local.get $1 + local.get $4 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $3 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $14 br $while-continue|02 end end i32.const 0 - local.set $2 + local.set $14 end - local.get $2 + local.get $14 i32.eqz if i32.const 0 @@ -10256,10 +10245,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 + local.get $15 + local.get $4 call $~lib/map/Map#get - local.get $1 + local.get $4 i32.const 65535 i32.and i32.const 10 @@ -10273,14 +10262,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|1 end end - local.get $6 + local.get $15 i32.load offset=20 i32.const 100 i32.ne @@ -10293,19 +10282,19 @@ unreachable end i32.const 0 - local.set $1 + local.set $4 loop $for-loop|3 - local.get $1 + local.get $4 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $4 i32.const 65535 i32.and i32.const -1028477379 @@ -10316,22 +10305,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u i32.xor @@ -10340,38 +10329,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $14 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $2 + local.get $14 if - local.get $2 + local.get $14 i32.load offset=8 - local.tee $3 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $14 i32.load16_u - local.get $1 + local.get $4 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $3 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $14 br $while-continue|05 end end i32.const 0 - local.set $2 + local.set $14 end - local.get $2 + local.get $14 i32.eqz if i32.const 0 @@ -10381,10 +10370,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 + local.get $15 + local.get $4 call $~lib/map/Map#get - local.get $1 + local.get $4 i32.const 65535 i32.and i32.const 10 @@ -10398,20 +10387,20 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 - local.get $1 + local.get $15 + local.get $4 + local.get $4 i32.const 65535 i32.and - local.tee $2 + local.tee $16 i32.const 20 i32.add call $~lib/map/Map#set - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $2 + local.get $16 i32.const -1028477379 i32.mul i32.const 374761395 @@ -10420,22 +10409,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u i32.xor @@ -10444,38 +10433,38 @@ i32.shl i32.add i32.load - local.set $2 + local.set $14 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $2 + local.get $14 if - local.get $2 + local.get $14 i32.load offset=8 - local.tee $3 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $14 i32.load16_u - local.get $1 + local.get $4 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $3 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $14 br $while-continue|08 end end i32.const 0 - local.set $2 + local.set $14 end - local.get $2 + local.get $14 i32.eqz if i32.const 0 @@ -10485,10 +10474,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 + local.get $15 + local.get $4 call $~lib/map/Map#get - local.get $1 + local.get $4 i32.const 65535 i32.and i32.const 20 @@ -10502,14 +10491,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|3 end end - local.get $6 + local.get $15 i32.load offset=20 i32.const 100 i32.ne @@ -10521,10 +10510,8 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10533,17 +10520,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $13 i32.const 0 i32.store - local.get $6 + local.get $15 i32.load offset=8 - local.set $10 - local.get $6 + local.set $3 + local.get $15 i32.load offset=16 - local.tee $11 - local.set $0 - local.get $4 + local.tee $16 + local.set $11 + local.get $13 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -10552,31 +10539,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 i64.const 0 i64.store - local.get $1 + local.get $4 i32.const 16 i32.const 15 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $14 i32.store - local.get $1 + local.get $14 i32.const 0 i32.store - local.get $1 + local.get $14 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $14 i32.const 0 i32.store offset=4 - local.get $1 + local.get $14 i32.const 0 i32.store offset=8 - local.get $1 + local.get $14 i32.const 0 i32.store offset=12 - local.get $0 + local.get $11 i32.const 536870910 i32.gt_u if @@ -10588,101 +10575,99 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $11 i32.const 8 - local.get $0 + local.get $11 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $5 + local.tee $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $10 i32.store offset=4 - local.get $3 - local.get $5 + local.get $10 + local.get $4 call $~lib/memory/memory.fill - local.get $1 - local.get $3 + local.get $14 + local.get $10 i32.store - local.get $1 - local.get $3 + local.get $14 + local.get $10 call $~lib/rt/itcms/__link - local.get $1 - local.get $3 + local.get $14 + local.get $10 i32.store offset=4 - local.get $1 - local.get $5 + local.get $14 + local.get $4 i32.store offset=8 - local.get $1 - local.get $0 + local.get $14 + 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 $4 - local.get $1 + local.get $13 + local.get $14 i32.store loop $for-loop|0 - local.get $8 - local.get $11 + local.get $12 + local.get $16 i32.lt_s if - local.get $10 - local.get $8 + local.get $3 + local.get $12 i32.const 12 i32.mul i32.add - local.tee $3 + local.tee $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 - local.tee $0 - i32.const 1 - i32.add - local.set $2 + local.get $14 local.get $1 - local.get $0 - local.get $3 + local.get $4 i32.load16_u call $~lib/array/Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 end - local.get $8 + local.get $12 i32.const 1 i32.add - local.set $8 + local.set $12 br $for-loop|0 end end + local.get $14 local.get $1 - local.get $2 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity + local.get $14 local.get $1 - 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 $1 - local.tee $3 + local.get $0 + local.get $14 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $15 call $~lib/map/Map#values - local.tee $13 + local.tee $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $16 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10691,62 +10676,63 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 24 i32.const 16 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 $0 + local.tee $4 i32.store - local.get $2 - local.get $0 + local.get $13 + local.get $4 call $~lib/rt/itcms/__link - local.get $2 + local.get $13 i32.const 3 i32.store offset=4 - local.get $2 + local.get $13 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $4 i32.store offset=8 - local.get $2 - local.get $0 + local.get $13 + local.get $4 call $~lib/rt/itcms/__link - 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 $1 - local.get $2 + local.get $16 + local.get $13 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $11 + local.tee $8 i32.store offset=16 loop $for-loop|4 - local.get $7 - local.get $3 + local.get $2 + local.get $14 i32.load offset=12 i32.lt_s if - local.get $7 - local.get $3 + local.get $2 + local.tee $3 + local.get $14 i32.load offset=12 i32.ge_u if @@ -10757,23 +10743,23 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $14 i32.load offset=4 - local.get $7 + local.get $3 i32.const 1 i32.shl i32.add i32.load16_u - local.set $1 - local.get $13 - local.get $7 - call $~lib/array/Array#__get - local.set $12 + local.set $2 local.get $6 + local.get $3 + call $~lib/array/Array#__get + local.set $7 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $2 i32.const 65535 i32.and i32.const -1028477379 @@ -10784,22 +10770,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 @@ -10823,7 +10809,7 @@ else local.get $0 i32.load16_u - local.get $1 + local.get $2 i32.const 65535 i32.and i32.eq @@ -10849,14 +10835,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $12 + local.get $7 i32.const 20 i32.sub - local.tee $4 + local.tee $16 i32.const 65535 i32.and i32.const -1028477379 @@ -10867,22 +10853,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 @@ -10891,38 +10877,38 @@ i32.shl i32.add i32.load - local.set $0 + local.set $12 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $0 + local.get $12 if - local.get $0 + local.get $12 i32.load offset=8 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $12 i32.load16_u - local.get $4 + local.get $16 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $5 + local.get $4 i32.const -2 i32.and - local.set $0 + local.set $12 br $while-continue|014 end end i32.const 0 - local.set $0 + local.set $12 end - local.get $0 + local.get $12 i32.eqz if i32.const 0 @@ -10943,10 +10929,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 + local.get $13 i32.load - local.get $1 - local.tee $5 + local.get $2 i32.const 65535 i32.and i32.const -1028477379 @@ -10957,39 +10942,39 @@ 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 - local.tee $14 - local.get $2 + local.tee $5 + local.get $13 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 local.tee $4 i32.const 1 @@ -10997,9 +10982,9 @@ if (result i32) i32.const 0 else - local.get $0 + local.get $1 i32.load16_u - local.get $5 + local.get $2 i32.const 65535 i32.and i32.eq @@ -11008,28 +10993,28 @@ local.get $4 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|015 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if - local.get $0 - local.get $5 + local.get $1 + local.get $2 i32.store16 offset=2 else - local.get $2 + local.get $13 i32.load offset=16 - local.get $2 + local.get $13 i32.load offset=12 i32.eq if - local.get $2 + local.get $13 i32.load offset=20 - local.get $2 + local.get $13 i32.load offset=12 i32.const 3 i32.mul @@ -11037,17 +11022,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $2 + local.get $13 i32.load offset=4 else - local.get $2 + local.get $13 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $8 + local.set $16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -11057,45 +11042,45 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i64.const 0 i64.store - local.get $0 - local.get $8 + local.get $4 + local.get $16 i32.const 1 i32.add - local.tee $0 + local.tee $4 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $11 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $4 i32.store offset=4 - local.get $2 + local.get $13 i32.load offset=8 local.tee $9 - local.get $2 + local.get $13 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $16 + local.set $10 local.get $4 local.set $0 loop $while-continue|016 local.get $9 - local.get $16 + local.get $10 i32.ne if local.get $9 @@ -11107,16 +11092,16 @@ local.get $0 local.get $9 i32.load16_u - local.tee $1 + local.tee $12 i32.store16 local.get $0 local.get $9 i32.load16_u offset=2 i32.store16 offset=2 local.get $0 - local.get $10 - local.get $8 local.get $1 + local.get $16 + local.get $12 i32.const 65535 i32.and i32.const -1028477379 @@ -11127,22 +11112,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $12 + local.get $12 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $12 + local.get $12 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $12 + local.get $12 i32.const 16 i32.shr_u i32.xor @@ -11150,10 +11135,10 @@ i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $12 i32.load i32.store offset=4 - local.get $1 + local.get $12 local.get $0 i32.store local.get $0 @@ -11168,26 +11153,26 @@ br $while-continue|016 end end - local.get $2 - local.get $10 + local.get $13 + local.get $1 i32.store - local.get $2 - local.get $10 + local.get $13 + local.get $1 call $~lib/rt/itcms/__link - local.get $2 - local.get $8 + local.get $13 + local.get $16 i32.store offset=4 - local.get $2 + local.get $13 local.get $4 i32.store offset=8 - local.get $2 + local.get $13 local.get $4 call $~lib/rt/itcms/__link - local.get $2 - local.get $15 + local.get $13 + local.get $11 i32.store offset=12 - local.get $2 - local.get $2 + local.get $13 + local.get $13 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -11196,70 +11181,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $13 i32.load offset=8 - local.tee $0 + local.tee $16 i32.store - local.get $2 - local.get $2 + local.get $13 + local.get $13 i32.load offset=16 - local.tee $8 + local.tee $4 i32.const 1 i32.add i32.store offset=16 - local.get $0 - local.get $8 + local.get $16 + local.get $4 i32.const 3 i32.shl i32.add - local.tee $0 - local.get $5 - i32.store16 - local.get $0 - local.get $5 - i32.store16 offset=2 + local.tee $4 local.get $2 + i32.store16 + local.get $4 local.get $2 + i32.store16 offset=2 + local.get $13 + local.get $13 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $0 - local.get $2 + local.get $4 + local.get $13 i32.load - local.get $14 - local.get $2 + local.get $5 + local.get $13 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $2 i32.load i32.store offset=4 - local.get $1 - local.get $0 + local.get $2 + local.get $4 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 - local.get $12 + local.get $8 + local.get $7 i32.const 20 i32.sub - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 call $~lib/map/Map#set - local.get $7 + local.get $3 i32.const 1 i32.add - local.set $7 + local.set $2 br $for-loop|4 end end - local.get $2 + local.get $13 i32.load offset=20 i32.const 100 i32.ne @@ -11271,7 +11256,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $8 i32.load offset=20 i32.const 100 i32.ne @@ -11284,19 +11269,19 @@ unreachable end i32.const 0 - local.set $7 + local.set $2 loop $for-loop|6 - local.get $7 + local.get $2 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $7 + local.get $2 i32.const 65535 i32.and i32.const -1028477379 @@ -11307,22 +11292,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -11331,38 +11316,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load16_u - local.get $7 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|019 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -11372,10 +11357,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $7 + local.get $15 + local.get $2 call $~lib/map/Map#get - local.get $7 + local.get $2 i32.const 65535 i32.and i32.const 20 @@ -11389,14 +11374,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $7 + local.get $15 + local.get $2 call $~lib/map/Map#delete - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $7 + local.get $2 i32.const 65535 i32.and i32.const -1028477379 @@ -11407,22 +11392,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -11431,38 +11416,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load16_u - local.get $7 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|022 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -11471,14 +11456,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $2 i32.const 1 i32.add - local.set $7 + local.set $2 br $for-loop|6 end end - local.get $6 + local.get $15 i32.load offset=20 i32.const 50 i32.ne @@ -11491,19 +11476,19 @@ unreachable end i32.const 0 - local.set $7 + local.set $2 loop $for-loop|8 - local.get $7 + local.get $2 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $7 + local.get $2 i32.const 65535 i32.and i32.const -1028477379 @@ -11514,22 +11499,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -11538,38 +11523,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load16_u - local.get $7 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|025 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -11578,20 +11563,20 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $7 - local.get $7 + local.get $15 + local.get $2 + local.get $2 i32.const 65535 i32.and - local.tee $1 + local.tee $4 i32.const 10 i32.add call $~lib/map/Map#set - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761395 @@ -11600,22 +11585,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -11624,38 +11609,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load16_u - local.get $7 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|028 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -11665,14 +11650,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $7 + local.get $15 + local.get $2 call $~lib/map/Map#delete - local.get $6 + local.get $15 i32.load - local.get $6 + local.get $15 i32.load offset=4 - local.get $7 + local.get $2 i32.const 65535 i32.and i32.const -1028477379 @@ -11683,22 +11668,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -11707,38 +11692,38 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load16_u - local.get $7 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|031 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -11747,14 +11732,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $2 i32.const 1 i32.add - local.set $7 + local.set $2 br $for-loop|8 end end - local.get $6 + local.get $15 i32.load offset=20 i32.const 50 i32.ne @@ -11766,9 +11751,9 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $15 call $~lib/map/Map#clear - local.get $6 + local.get $15 i32.load offset=20 if i32.const 0 @@ -12016,16 +12001,16 @@ 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 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 call $~lib/map/Map#constructor local.tee $2 i32.store @@ -12442,7 +12427,7 @@ i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $7 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -12456,62 +12441,61 @@ i32.store local.get $2 i32.load offset=8 - local.set $7 + local.set $5 local.get $1 local.get $2 i32.load offset=16 local.tee $8 call $~lib/array/Array#constructor - local.tee $4 + local.tee $1 i32.store loop $for-loop|01 - local.get $6 + local.get $3 local.get $8 i32.lt_s if - local.get $7 - local.get $6 + local.get $5 + local.get $3 i32.const 12 i32.mul i32.add - local.tee $9 + local.tee $6 i32.load offset=8 i32.const 1 i32.and i32.eqz if + local.get $1 + local.get $0 + local.get $6 + i32.load + call $~lib/array/Array#__set local.get $0 - local.tee $1 i32.const 1 i32.add local.set $0 - local.get $4 - local.get $1 - local.get $9 - i32.load - call $~lib/array/Array#__set end - local.get $6 + local.get $3 i32.const 1 i32.add - local.set $6 + local.set $3 br $for-loop|01 end end - local.get $4 + local.get $1 local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $4 + 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 $5 - local.get $4 + local.get $7 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 @@ -12520,26 +12504,26 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $6 + local.tee $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor local.tee $5 i32.store offset=16 loop $for-loop|2 - local.get $3 local.get $4 + local.get $1 i32.load offset=12 i32.lt_s if + local.get $1 local.get $4 - local.get $3 call $~lib/array/Array#__get local.set $0 local.get $9 - local.get $3 + local.get $4 call $~lib/array/Array#__get - local.set $7 + local.set $8 local.get $2 i32.load local.get $2 @@ -12553,22 +12537,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u i32.xor @@ -12577,36 +12561,36 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $10 + local.tee $6 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/map/Map#find10 - local.get $10 + local.get $6 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|011 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -12620,10 +12604,10 @@ i32.load local.get $2 i32.load offset=4 - local.get $7 + local.get $8 i32.const 20 i32.sub - local.tee $10 + local.tee $6 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12632,22 +12616,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u i32.xor @@ -12656,36 +12640,36 @@ i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 - local.tee $8 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $10 - local.get $1 + local.get $6 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $8 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|014 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -12695,25 +12679,25 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $7 local.get $0 local.get $0 call $~lib/map/Map#set local.get $5 - local.get $7 + local.get $8 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|2 end end - local.get $6 + local.get $7 i32.load offset=20 i32.const 100 i32.ne @@ -12738,9 +12722,9 @@ unreachable end i32.const 0 - local.set $3 + local.set $4 loop $for-loop|3 - local.get $3 + local.get $4 i32.const 50 i32.lt_s if @@ -12748,7 +12732,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12788,19 +12772,19 @@ if local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $4 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find16 - local.get $4 + local.get $3 i32.const -2 i32.and local.set $0 @@ -12821,9 +12805,9 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.const 20 i32.add i32.ne @@ -12836,13 +12820,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/map/Map#delete local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12882,19 +12866,19 @@ if local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $4 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find19 - local.get $4 + local.get $3 i32.const -2 i32.and local.set $0 @@ -12913,10 +12897,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|3 end end @@ -12933,9 +12917,9 @@ unreachable end i32.const 0 - local.set $3 + local.set $4 loop $for-loop|4 - local.get $3 + local.get $4 i32.const 50 i32.lt_s if @@ -12943,7 +12927,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12983,19 +12967,19 @@ if local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $4 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find22 - local.get $4 + local.get $3 i32.const -2 i32.and local.set $0 @@ -13015,8 +12999,8 @@ unreachable end local.get $2 - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 10 i32.add call $~lib/map/Map#set @@ -13024,7 +13008,7 @@ i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13064,19 +13048,19 @@ if local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $4 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find25 - local.get $4 + local.get $3 i32.const -2 i32.and local.set $0 @@ -13097,13 +13081,13 @@ unreachable end local.get $2 - local.get $3 + local.get $4 call $~lib/map/Map#delete local.get $2 i32.load local.get $2 i32.load offset=4 - local.get $3 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13143,19 +13127,19 @@ if local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $4 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find28 - local.get $4 + local.get $3 i32.const -2 i32.and local.set $0 @@ -13174,10 +13158,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|4 end end @@ -13599,7 +13583,6 @@ (local $14 i32) (local $15 i32) (local $16 i32) - (local $17 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -13628,41 +13611,41 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 i32.const 24 i32.const 17 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store - local.get $6 + local.get $4 local.get $1 call $~lib/rt/itcms/__link - local.get $6 + local.get $4 i32.const 3 i32.store offset=4 - local.get $6 + local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=8 - local.get $6 + local.get $4 local.get $1 call $~lib/rt/itcms/__link - local.get $6 + local.get $4 i32.const 4 i32.store offset=12 - local.get $6 + local.get $4 i32.const 0 i32.store offset=16 - local.get $6 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -13670,18 +13653,18 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 - local.get $6 + local.get $4 i32.store loop $for-loop|0 - local.get $2 + local.get $0 i32.const 100 i32.lt_u if - local.get $6 + local.get $4 i32.load - local.get $6 + local.get $4 i32.load offset=4 - local.get $2 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13721,19 +13704,19 @@ if local.get $3 i32.load offset=8 - local.tee $4 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $0 local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $2 i32.const -2 i32.and local.set $3 @@ -13752,17 +13735,17 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 - local.get $2 + local.get $4 + local.get $0 + local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $6 + local.get $4 i32.load - local.get $6 + local.get $4 i32.load offset=4 - local.get $2 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13802,19 +13785,19 @@ if local.get $3 i32.load offset=8 - local.tee $4 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $0 local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $4 + local.get $2 i32.const -2 i32.and local.set $3 @@ -13834,10 +13817,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $4 + local.get $0 call $~lib/map/Map#get - local.get $2 + local.get $0 i32.const 10 i32.add i32.ne @@ -13849,14 +13832,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end - local.get $6 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -13869,17 +13852,17 @@ unreachable end i32.const 0 - local.set $2 + local.set $0 loop $for-loop|1 - local.get $2 + local.get $0 i32.const 100 i32.lt_u if - local.get $6 + local.get $4 i32.load - local.get $6 + local.get $4 i32.load offset=4 - local.get $2 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13919,19 +13902,19 @@ if local.get $3 i32.load offset=8 - local.tee $4 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $0 local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $4 + local.get $2 i32.const -2 i32.and local.set $3 @@ -13951,10 +13934,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $4 + local.get $0 call $~lib/map/Map#get - local.get $2 + local.get $0 i32.const 10 i32.add i32.ne @@ -13966,17 +13949,17 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 - local.get $2 + local.get $4 + local.get $0 + local.get $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $6 + local.get $4 i32.load - local.get $6 + local.get $4 i32.load offset=4 - local.get $2 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14016,19 +13999,19 @@ if local.get $3 i32.load offset=8 - local.tee $4 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $0 local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $4 + local.get $2 i32.const -2 i32.and local.set $3 @@ -14048,10 +14031,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $4 + local.get $0 call $~lib/map/Map#get - local.get $2 + local.get $0 i32.const 20 i32.add i32.ne @@ -14063,14 +14046,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|1 end end - local.get $6 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -14083,9 +14066,9 @@ unreachable end i32.const 0 - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $10 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14094,18 +14077,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 0 i32.store - local.get $6 + local.get $4 i32.load offset=8 local.set $11 - local.get $6 + local.get $4 i32.load offset=16 local.tee $12 - local.set $4 - local.get $3 - local.tee $1 + local.set $3 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14114,31 +14096,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $1 i32.const 16 i32.const 18 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $6 i32.store - local.get $3 + local.get $6 i32.const 0 i32.store - local.get $3 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link - local.get $3 + local.get $6 i32.const 0 i32.store offset=4 - local.get $3 + local.get $6 i32.const 0 i32.store offset=8 - local.get $3 + local.get $6 i32.const 0 i32.store offset=12 - local.get $4 + local.get $3 i32.const 268435455 i32.gt_u if @@ -14150,101 +14132,99 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 8 - local.get $4 + local.get $3 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $10 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $1 i32.store offset=4 + local.get $1 local.get $7 - local.get $10 call $~lib/memory/memory.fill - local.get $3 - local.get $7 + local.get $6 + local.get $1 i32.store - local.get $3 - local.get $7 + local.get $6 + local.get $1 call $~lib/rt/itcms/__link - local.get $3 - local.get $7 + local.get $6 + local.get $1 i32.store offset=4 - local.get $3 - local.get $10 + local.get $6 + local.get $7 i32.store offset=8 + local.get $6 local.get $3 - local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $3 + local.get $2 + local.get $6 i32.store loop $for-loop|01 - local.get $5 + local.get $8 local.get $12 i32.lt_s if local.get $11 - local.get $5 + local.get $8 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 - local.tee $1 - i32.const 1 - i32.add - local.set $2 + local.get $6 + local.get $0 local.get $3 - local.get $1 - local.get $4 i32.load 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|01 end end - local.get $3 - local.get $2 + local.get $6 + local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $3 - local.get $2 + local.get $6 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 - local.get $3 - local.tee $1 + local.get $10 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 call $~lib/map/Map#values - local.tee $14 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14265,10 +14245,10 @@ local.get $3 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $1 i32.store local.get $3 - local.get $4 + local.get $1 call $~lib/rt/itcms/__link local.get $3 i32.const 3 @@ -14276,10 +14256,10 @@ local.get $3 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $1 i32.store offset=8 local.get $3 - local.get $4 + local.get $1 call $~lib/rt/itcms/__link local.get $3 i32.const 4 @@ -14294,22 +14274,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $12 + local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $0 - local.get $1 + local.get $5 + local.get $6 i32.load offset=12 i32.lt_s if - local.get $0 - local.tee $4 - local.get $1 + local.get $5 + local.get $6 i32.load offset=12 i32.ge_u if @@ -14320,21 +14299,21 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $6 i32.load offset=4 - local.get $4 + local.get $5 i32.const 2 i32.shl i32.add i32.load local.set $0 - local.get $14 - local.get $4 + local.get $13 + local.get $5 call $~lib/array/Array#__get - local.set $13 - local.get $6 + local.set $12 + local.get $4 i32.load - local.get $6 + local.get $4 i32.load offset=4 local.get $0 i32.const -1028477379 @@ -14345,22 +14324,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -14369,36 +14348,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $5 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $0 - local.get $2 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $5 + local.get $2 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|011 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -14408,14 +14387,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.load - local.get $6 + local.get $4 i32.load offset=4 - local.get $13 + local.get $12 i32.const 20 i32.sub - local.tee $5 + local.tee $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14424,22 +14403,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -14448,36 +14427,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $10 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 local.get $2 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $10 + local.get $7 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|014 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -14501,8 +14480,7 @@ local.get $3 i32.load local.get $0 - local.tee $2 - local.tee $10 + local.tee $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14530,7 +14508,7 @@ i32.const 16 i32.shr_u i32.xor - local.tee $15 + local.tee $14 local.get $3 i32.load offset=4 i32.and @@ -14545,19 +14523,19 @@ if local.get $0 i32.load offset=8 - local.tee $5 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $10 + local.get $1 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find15 - local.get $5 + local.get $2 i32.const -2 i32.and local.set $0 @@ -14570,7 +14548,7 @@ local.get $0 if local.get $0 - local.get $10 + local.get $1 i32.store offset=4 else local.get $3 @@ -14599,7 +14577,7 @@ i32.const 1 i32.or end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -14613,14 +14591,14 @@ i64.const 0 i64.store local.get $0 - local.get $7 + local.get $8 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -14628,47 +14606,47 @@ i32.shl i32.const 3 i32.div_s - local.tee $16 + local.tee $15 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $2 i32.store offset=4 local.get $3 i32.load offset=8 - local.tee $9 + local.tee $7 local.get $3 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $17 - local.get $5 + local.set $16 + local.get $2 local.set $0 - loop $while-continue|017 - local.get $9 - local.get $17 + loop $while-continue|017 + local.get $7 + local.get $16 i32.ne if - local.get $9 + local.get $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $9 + local.get $7 i32.load - local.tee $8 + local.tee $9 i32.store local.get $0 - local.get $9 + local.get $7 i32.load offset=4 i32.store offset=4 local.get $0 - local.get $11 - local.get $7 + local.get $10 local.get $8 + local.get $9 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14677,22 +14655,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 i32.const 16 i32.shr_u i32.xor @@ -14700,10 +14678,10 @@ i32.const 2 i32.shl i32.add - local.tee $8 + local.tee $9 i32.load i32.store offset=8 - local.get $8 + local.get $9 local.get $0 i32.store local.get $0 @@ -14711,30 +14689,30 @@ i32.add local.set $0 end - local.get $9 + local.get $7 i32.const 12 i32.add - local.set $9 + local.set $7 br $while-continue|017 end end local.get $3 - local.get $11 + local.get $10 i32.store local.get $3 - local.get $11 + local.get $10 call $~lib/rt/itcms/__link local.get $3 - local.get $7 + local.get $8 i32.store offset=4 local.get $3 - local.get $5 + local.get $2 i32.store offset=8 local.get $3 - local.get $5 + local.get $2 call $~lib/rt/itcms/__link local.get $3 - local.get $16 + local.get $15 i32.store offset=12 local.get $3 local.get $3 @@ -14753,20 +14731,20 @@ local.get $3 local.get $3 i32.load offset=16 - local.tee $7 + local.tee $8 i32.const 1 i32.add i32.store offset=16 local.get $0 - local.get $7 + local.get $8 i32.const 12 i32.mul i32.add local.tee $0 - local.get $2 + local.get $1 i32.store local.get $0 - local.get $10 + local.get $1 i32.store offset=4 local.get $3 local.get $3 @@ -14777,17 +14755,17 @@ local.get $0 local.get $3 i32.load - local.get $15 + local.get $14 local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $1 i32.load i32.store offset=8 - local.get $2 + local.get $1 local.get $0 i32.store end @@ -14795,17 +14773,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $11 local.get $12 - local.get $13 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $0 + local.set $5 br $for-loop|2 end end @@ -14821,7 +14799,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -14834,17 +14812,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $5 loop $for-loop|3 - local.get $0 + local.get $5 i32.const 50 i32.lt_u if - local.get $6 + local.get $4 i32.load - local.get $6 + local.get $4 i32.load offset=4 - local.get $0 + local.get $5 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14853,22 +14831,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -14877,12 +14855,12 @@ 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 $1 i32.const 1 @@ -14890,8 +14868,8 @@ if (result i32) i32.const 0 else + local.get $5 local.get $0 - local.get $2 i32.load i32.eq end @@ -14899,14 +14877,14 @@ local.get $1 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 i32.eqz if i32.const 0 @@ -14916,10 +14894,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $0 + local.get $4 + local.get $5 call $~lib/map/Map#get - local.get $0 + local.get $5 i32.const 20 i32.add i32.ne @@ -14931,14 +14909,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $0 + local.get $4 + local.get $5 call $~lib/map/Map#delete - local.get $6 + local.get $4 i32.load - local.get $6 + local.get $4 i32.load offset=4 - local.get $0 + local.get $5 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14947,22 +14925,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -14971,12 +14949,12 @@ 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 $1 i32.const 1 @@ -14984,8 +14962,8 @@ if (result i32) i32.const 0 else + local.get $5 local.get $0 - local.get $2 i32.load i32.eq end @@ -14993,14 +14971,14 @@ local.get $1 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 @@ -15009,14 +14987,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $5 i32.const 1 i32.add - local.set $0 + local.set $5 br $for-loop|3 end end - local.get $6 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -15029,17 +15007,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $5 loop $for-loop|4 - local.get $0 + local.get $5 i32.const 50 i32.lt_u if - local.get $6 + local.get $4 i32.load - local.get $6 + local.get $4 i32.load offset=4 - local.get $0 + local.get $5 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15048,22 +15026,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -15072,12 +15050,12 @@ 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 $1 i32.const 1 @@ -15085,8 +15063,8 @@ if (result i32) i32.const 0 else + local.get $5 local.get $0 - local.get $2 i32.load i32.eq end @@ -15094,14 +15072,14 @@ local.get $1 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 if i32.const 0 i32.const 1568 @@ -15110,17 +15088,17 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $0 - local.get $0 + local.get $4 + local.get $5 + local.get $5 i32.const 10 i32.add call $~lib/map/Map#set - local.get $6 + local.get $4 i32.load - local.get $6 + local.get $4 i32.load offset=4 - local.get $0 + local.get $5 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15129,22 +15107,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -15153,12 +15131,12 @@ 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 $1 i32.const 1 @@ -15166,8 +15144,8 @@ if (result i32) i32.const 0 else + local.get $5 local.get $0 - local.get $2 i32.load i32.eq end @@ -15175,14 +15153,14 @@ local.get $1 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 i32.eqz if i32.const 0 @@ -15192,14 +15170,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $0 + local.get $4 + local.get $5 call $~lib/map/Map#delete - local.get $6 + local.get $4 i32.load - local.get $6 + local.get $4 i32.load offset=4 - local.get $0 + local.get $5 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15208,22 +15186,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -15232,12 +15210,12 @@ i32.shl i32.add i32.load - local.set $2 + local.set $0 block $__inlined_func$~lib/map/Map#find31 loop $while-continue|032 - local.get $2 + local.get $0 if - local.get $2 + local.get $0 i32.load offset=8 local.tee $1 i32.const 1 @@ -15245,8 +15223,8 @@ if (result i32) i32.const 0 else + local.get $5 local.get $0 - local.get $2 i32.load i32.eq end @@ -15254,14 +15232,14 @@ local.get $1 i32.const -2 i32.and - local.set $2 + local.set $0 br $while-continue|032 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 @@ -15270,14 +15248,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $5 i32.const 1 i32.add - local.set $0 + local.set $5 br $for-loop|4 end end - local.get $6 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -15289,9 +15267,9 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 call $~lib/map/Map#clear - local.get $6 + local.get $4 i32.load offset=20 if i32.const 0 @@ -15871,8 +15849,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) @@ -15882,9 +15860,9 @@ (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 i32) + (local $14 i64) (local $15 i32) - (local $16 i64) + (local $16 i32) (local $17 i32) global.get $~lib/memory/__stack_pointer i32.const 20 @@ -15896,16 +15874,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $3 i64.const 0 i64.store offset=8 - local.get $2 + local.get $3 i32.const 0 i32.store offset=16 - local.get $2 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -15914,57 +15892,57 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $5 i32.const 0 i32.store - local.get $1 + local.get $5 i32.const 24 i32.const 20 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $0 i32.store - local.get $4 - local.get $1 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $4 + local.get $5 i32.const 3 i32.store offset=4 - local.get $4 + local.get $5 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $4 - local.get $1 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $4 + local.get $5 i32.const 4 i32.store offset=12 - local.get $4 + local.get $5 i32.const 0 i32.store offset=16 - local.get $4 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.store loop $for-loop|0 - local.get $3 + local.get $4 i64.const 100 i64.lt_s if + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -15974,15 +15952,15 @@ call $~lib/builtins/abort unreachable end + local.get $5 + local.get $4 local.get $4 - local.get $3 - local.get $3 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#has i32.eqz if @@ -15993,10 +15971,10 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -16009,14 +15987,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 $4 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -16029,14 +16007,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 $5 local.get $4 - local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16047,10 +16025,10 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -16063,15 +16041,15 @@ call $~lib/builtins/abort unreachable end + local.get $5 + local.get $4 local.get $4 - local.get $3 - local.get $3 i32.wrap_i64 i32.const 20 i32.add call $~lib/map/Map#set + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16082,10 +16060,10 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -16098,14 +16076,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 $4 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -16117,10 +16095,8 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $13 + local.tee $11 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -16129,17 +16105,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $7 i32.const 0 i32.store - local.get $4 + local.get $5 i32.load offset=8 - local.set $8 - local.get $4 + local.set $12 + local.get $5 i32.load offset=16 - local.tee $5 - local.set $9 - local.get $1 + local.tee $13 + local.set $3 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -16148,10 +16124,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $0 i64.const 0 i64.store - local.get $6 + local.get $0 i32.const 16 i32.const 21 call $~lib/rt/itcms/__new @@ -16172,7 +16148,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $9 + local.get $3 i32.const 134217727 i32.gt_u if @@ -16184,100 +16160,99 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.const 8 - local.get $9 + local.get $3 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $0 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $0 i32.store offset=4 - local.get $10 local.get $0 + local.get $9 call $~lib/memory/memory.fill local.get $6 - local.get $10 + local.get $0 i32.store local.get $6 - local.get $10 + local.get $0 call $~lib/rt/itcms/__link local.get $6 - local.get $10 + local.get $0 i32.store offset=4 local.get $6 - local.get $0 + local.get $9 i32.store offset=8 local.get $6 - local.get $9 + 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 $1 + local.get $7 local.get $6 i32.store loop $for-loop|01 - local.get $5 - local.get $7 - i32.gt_s + local.get $2 + local.get $13 + i32.lt_s if - local.get $8 - local.get $7 + local.get $12 + local.get $2 i32.const 4 i32.shl i32.add - local.tee $0 + local.tee $3 i32.load offset=12 i32.const 1 i32.and i32.eqz if - local.get $2 - local.tee $1 - i32.const 1 - i32.add - local.set $2 local.get $6 local.get $1 - local.get $0 + local.get $3 i64.load call $~lib/array/Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 end - local.get $7 + local.get $2 i32.const 1 i32.add - local.set $7 + local.set $2 br $for-loop|01 end end local.get $6 - local.get $2 + local.get $1 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity local.get $6 - 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 $13 + local.get $11 local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 call $~lib/map/Map#values - local.tee $17 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -16286,61 +16261,61 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i32.const 0 i32.store - local.get $1 + local.get $3 i32.const 24 i32.const 22 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store - local.get $5 + local.get $3 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store - local.get $5 + local.get $3 local.get $1 call $~lib/rt/itcms/__link - local.get $5 + local.get $3 i32.const 3 i32.store offset=4 - local.get $5 + local.get $3 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=8 - local.get $5 + local.get $3 local.get $1 call $~lib/rt/itcms/__link - local.get $5 + local.get $3 i32.const 4 i32.store offset=12 - local.get $5 + local.get $3 i32.const 0 i32.store offset=16 - local.get $5 + local.get $3 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 + local.get $0 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $14 + local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $12 + local.get $10 local.get $6 i32.load offset=12 i32.lt_s if - local.get $12 + local.get $10 local.get $6 i32.load offset=12 i32.ge_u @@ -16354,18 +16329,18 @@ end local.get $6 i32.load offset=4 - local.get $12 + local.get $10 i32.const 3 i32.shl i32.add i64.load - local.set $3 - local.get $17 - local.get $12 + local.set $4 + local.get $13 + local.get $10 call $~lib/array/Array#__get - local.set $15 + local.set $12 + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16376,8 +16351,8 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $15 + local.get $5 + local.get $12 i32.const 20 i32.sub i64.extend_i32_s @@ -16402,9 +16377,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $5 - i32.load local.get $3 + i32.load + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16414,7 +16389,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $3 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16425,77 +16400,77 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor - local.tee $9 - local.get $5 + local.tee $15 + local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $7 + local.get $0 if - local.get $7 + 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 $7 + local.get $4 + local.get $0 i64.load i64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $1 + local.get $2 i32.const -2 i32.and - local.set $7 + local.set $0 br $while-continue|0 end end i32.const 0 - local.set $7 + local.set $0 end - local.get $7 + local.get $0 if - local.get $7 - local.get $3 + local.get $0 + local.get $4 i64.store offset=8 else - local.get $5 + local.get $3 i32.load offset=16 - local.get $5 + local.get $3 i32.load offset=12 i32.eq if - local.get $5 + local.get $3 i32.load offset=20 - local.get $5 + local.get $3 i32.load offset=12 i32.const 3 i32.mul @@ -16503,17 +16478,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $5 + local.get $3 i32.load offset=4 else - local.get $5 + local.get $3 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -16523,66 +16498,66 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store + local.get $0 local.get $1 - local.get $2 i32.const 1 i32.add - local.tee $1 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $10 + local.tee $16 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $5 + local.get $3 i32.load offset=8 - local.tee $11 - local.get $5 + local.tee $7 + local.get $3 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $13 - local.get $1 + local.set $17 + local.get $2 local.set $0 loop $while-continue|00 - local.get $11 - local.get $13 + local.get $7 + local.get $17 i32.ne if - local.get $11 + local.get $7 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $11 + local.get $7 i64.load - local.tee $16 + local.tee $14 i64.store local.get $0 - local.get $11 + local.get $7 i64.load offset=8 i64.store offset=8 local.get $0 - local.get $7 - local.get $2 - local.get $16 + local.get $9 + local.get $1 + local.get $14 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16592,7 +16567,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $16 + local.get $14 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16637,33 +16612,33 @@ i32.add local.set $0 end - local.get $11 + local.get $7 i32.const 24 i32.add - local.set $11 + local.set $7 br $while-continue|00 end end - local.get $5 - local.get $7 + local.get $3 + local.get $9 i32.store - local.get $5 - local.get $7 + local.get $3 + local.get $9 call $~lib/rt/itcms/__link - local.get $5 - local.get $2 - i32.store offset=4 - local.get $5 + local.get $3 local.get $1 + i32.store offset=4 + local.get $3 + local.get $2 i32.store offset=8 - local.get $5 - local.get $1 + local.get $3 + local.get $2 call $~lib/rt/itcms/__link - local.get $5 - local.get $10 + local.get $3 + local.get $16 i32.store offset=12 - local.get $5 - local.get $5 + local.get $3 + local.get $3 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -16672,39 +16647,39 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.store - local.get $5 - local.get $5 + local.get $3 + local.get $3 i32.load offset=16 local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $0 local.get $1 i32.const 24 i32.mul i32.add - local.tee $2 - local.get $3 + local.tee $0 + local.get $4 i64.store - local.get $2 - local.get $3 + local.get $0 + local.get $4 i64.store offset=8 - local.get $5 - local.get $5 + local.get $3 + local.get $3 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $2 - local.get $5 + local.get $0 + local.get $3 i32.load - local.get $9 - local.get $5 + local.get $15 + local.get $3 i32.load offset=4 i32.and i32.const 2 @@ -16714,28 +16689,28 @@ i32.load i32.store offset=16 local.get $1 - 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 $14 - local.get $15 + local.get $11 + local.get $12 i32.const 20 i32.sub - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 call $~lib/map/Map#set - local.get $12 + local.get $10 i32.const 1 i32.add - local.set $12 + local.set $10 br $for-loop|2 end end - local.get $5 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -16747,7 +16722,7 @@ call $~lib/builtins/abort unreachable end - local.get $14 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -16760,14 +16735,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 $5 local.get $4 - local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16778,10 +16753,10 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -16794,11 +16769,11 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#delete + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -16808,14 +16783,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 $4 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -16828,14 +16803,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 $5 local.get $4 - local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -16845,15 +16820,15 @@ call $~lib/builtins/abort unreachable end + local.get $5 + local.get $4 local.get $4 - local.get $3 - local.get $3 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16864,11 +16839,11 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#delete + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -16878,14 +16853,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 $4 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -16897,9 +16872,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 @@ -17409,8 +17384,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) @@ -17420,9 +17395,9 @@ (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 i32) + (local $14 i64) (local $15 i32) - (local $16 i64) + (local $16 i32) (local $17 i32) global.get $~lib/memory/__stack_pointer i32.const 20 @@ -17434,16 +17409,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $3 i64.const 0 i64.store offset=8 - local.get $2 + local.get $3 i32.const 0 i32.store offset=16 - local.get $2 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17452,57 +17427,57 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $5 i32.const 0 i32.store - local.get $1 + local.get $5 i32.const 24 i32.const 23 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $0 i32.store - local.get $4 - local.get $1 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $4 + local.get $5 i32.const 3 i32.store offset=4 - local.get $4 + local.get $5 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $4 - local.get $1 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $4 + local.get $5 i32.const 4 i32.store offset=12 - local.get $4 + local.get $5 i32.const 0 i32.store offset=16 - local.get $4 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.store loop $for-loop|0 - local.get $3 + local.get $4 i64.const 100 i64.lt_u if + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -17512,15 +17487,15 @@ call $~lib/builtins/abort unreachable end + local.get $5 + local.get $4 local.get $4 - local.get $3 - local.get $3 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#has i32.eqz if @@ -17531,10 +17506,10 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -17547,14 +17522,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 $4 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -17567,14 +17542,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 $5 local.get $4 - local.get $3 call $~lib/map/Map#has i32.eqz if @@ -17585,10 +17560,10 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -17601,15 +17576,15 @@ call $~lib/builtins/abort unreachable end + local.get $5 + local.get $4 local.get $4 - local.get $3 - local.get $3 i32.wrap_i64 i32.const 20 i32.add call $~lib/map/Map#set + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#has i32.eqz if @@ -17620,10 +17595,10 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -17636,14 +17611,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 $4 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -17655,10 +17630,8 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $13 + local.tee $11 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17667,17 +17640,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $7 i32.const 0 i32.store - local.get $4 + local.get $5 i32.load offset=8 - local.set $8 - local.get $4 + local.set $12 + local.get $5 i32.load offset=16 - local.tee $5 - local.set $9 - local.get $1 + local.tee $13 + local.set $3 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -17686,10 +17659,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $0 i64.const 0 i64.store - local.get $6 + local.get $0 i32.const 16 i32.const 24 call $~lib/rt/itcms/__new @@ -17710,7 +17683,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $9 + local.get $3 i32.const 134217727 i32.gt_u if @@ -17722,100 +17695,99 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.const 8 - local.get $9 + local.get $3 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $0 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $0 i32.store offset=4 - local.get $10 local.get $0 + local.get $9 call $~lib/memory/memory.fill local.get $6 - local.get $10 + local.get $0 i32.store local.get $6 - local.get $10 + local.get $0 call $~lib/rt/itcms/__link local.get $6 - local.get $10 + local.get $0 i32.store offset=4 local.get $6 - local.get $0 + local.get $9 i32.store offset=8 local.get $6 - local.get $9 + 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 $1 + local.get $7 local.get $6 i32.store loop $for-loop|01 - local.get $5 - local.get $7 - i32.gt_s + local.get $2 + local.get $13 + i32.lt_s if - local.get $8 - local.get $7 + local.get $12 + local.get $2 i32.const 4 i32.shl i32.add - local.tee $0 + local.tee $3 i32.load offset=12 i32.const 1 i32.and i32.eqz if - local.get $2 - local.tee $1 - i32.const 1 - i32.add - local.set $2 local.get $6 local.get $1 - local.get $0 + local.get $3 i64.load call $~lib/array/Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 end - local.get $7 + local.get $2 i32.const 1 i32.add - local.set $7 + local.set $2 br $for-loop|01 end end local.get $6 - local.get $2 + local.get $1 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity local.get $6 - 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 $13 + local.get $11 local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 call $~lib/map/Map#values - local.tee $17 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17824,61 +17796,61 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i32.const 0 i32.store - local.get $1 + local.get $3 i32.const 24 i32.const 25 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store - local.get $5 + local.get $3 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store - local.get $5 + local.get $3 local.get $1 call $~lib/rt/itcms/__link - local.get $5 + local.get $3 i32.const 3 i32.store offset=4 - local.get $5 + local.get $3 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=8 - local.get $5 + local.get $3 local.get $1 call $~lib/rt/itcms/__link - local.get $5 + local.get $3 i32.const 4 i32.store offset=12 - local.get $5 + local.get $3 i32.const 0 i32.store offset=16 - local.get $5 + local.get $3 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 + local.get $0 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $14 + local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $12 + local.get $10 local.get $6 i32.load offset=12 i32.lt_s if - local.get $12 + local.get $10 local.get $6 i32.load offset=12 i32.ge_u @@ -17892,18 +17864,18 @@ end local.get $6 i32.load offset=4 - local.get $12 + local.get $10 i32.const 3 i32.shl i32.add i64.load - local.set $3 - local.get $17 - local.get $12 + local.set $4 + local.get $13 + local.get $10 call $~lib/array/Array#__get - local.set $15 + local.set $12 + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#has i32.eqz if @@ -17914,8 +17886,8 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $15 + local.get $5 + local.get $12 i32.const 20 i32.sub i64.extend_i32_s @@ -17940,9 +17912,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $5 - i32.load local.get $3 + i32.load + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17952,7 +17924,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $3 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -17963,77 +17935,77 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor - local.tee $9 - local.get $5 + local.tee $15 + local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $7 + local.get $0 if - local.get $7 + 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 $7 + local.get $4 + local.get $0 i64.load i64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $1 + local.get $2 i32.const -2 i32.and - local.set $7 + local.set $0 br $while-continue|0 end end i32.const 0 - local.set $7 + local.set $0 end - local.get $7 + local.get $0 if - local.get $7 - local.get $3 + local.get $0 + local.get $4 i64.store offset=8 else - local.get $5 + local.get $3 i32.load offset=16 - local.get $5 + local.get $3 i32.load offset=12 i32.eq if - local.get $5 + local.get $3 i32.load offset=20 - local.get $5 + local.get $3 i32.load offset=12 i32.const 3 i32.mul @@ -18041,17 +18013,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $5 + local.get $3 i32.load offset=4 else - local.get $5 + local.get $3 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -18061,66 +18033,66 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store + local.get $0 local.get $1 - local.get $2 i32.const 1 i32.add - local.tee $1 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $10 + local.tee $16 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $5 + local.get $3 i32.load offset=8 - local.tee $11 - local.get $5 + local.tee $7 + local.get $3 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $13 - local.get $1 + local.set $17 + local.get $2 local.set $0 loop $while-continue|00 - local.get $11 - local.get $13 + local.get $7 + local.get $17 i32.ne if - local.get $11 + local.get $7 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $11 + local.get $7 i64.load - local.tee $16 + local.tee $14 i64.store local.get $0 - local.get $11 + local.get $7 i64.load offset=8 i64.store offset=8 local.get $0 - local.get $7 - local.get $2 - local.get $16 + local.get $9 + local.get $1 + local.get $14 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -18130,7 +18102,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $16 + local.get $14 i64.const 32 i64.shr_u i32.wrap_i64 @@ -18175,33 +18147,33 @@ i32.add local.set $0 end - local.get $11 + local.get $7 i32.const 24 i32.add - local.set $11 + local.set $7 br $while-continue|00 end end - local.get $5 - local.get $7 + local.get $3 + local.get $9 i32.store - local.get $5 - local.get $7 + local.get $3 + local.get $9 call $~lib/rt/itcms/__link - local.get $5 - local.get $2 - i32.store offset=4 - local.get $5 + local.get $3 local.get $1 + i32.store offset=4 + local.get $3 + local.get $2 i32.store offset=8 - local.get $5 - local.get $1 + local.get $3 + local.get $2 call $~lib/rt/itcms/__link - local.get $5 - local.get $10 + local.get $3 + local.get $16 i32.store offset=12 - local.get $5 - local.get $5 + local.get $3 + local.get $3 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -18210,39 +18182,39 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.store - local.get $5 - local.get $5 + local.get $3 + local.get $3 i32.load offset=16 local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $0 local.get $1 i32.const 24 i32.mul i32.add - local.tee $2 - local.get $3 + local.tee $0 + local.get $4 i64.store - local.get $2 - local.get $3 + local.get $0 + local.get $4 i64.store offset=8 - local.get $5 - local.get $5 + local.get $3 + local.get $3 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $2 - local.get $5 + local.get $0 + local.get $3 i32.load - local.get $9 - local.get $5 + local.get $15 + local.get $3 i32.load offset=4 i32.and i32.const 2 @@ -18252,28 +18224,28 @@ i32.load i32.store offset=16 local.get $1 - 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 $14 - local.get $15 + local.get $11 + local.get $12 i32.const 20 i32.sub - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 call $~lib/map/Map#set - local.get $12 + local.get $10 i32.const 1 i32.add - local.set $12 + local.set $10 br $for-loop|2 end end - local.get $5 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -18285,7 +18257,7 @@ call $~lib/builtins/abort unreachable end - local.get $14 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -18298,14 +18270,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 $5 local.get $4 - local.get $3 call $~lib/map/Map#has i32.eqz if @@ -18316,10 +18288,10 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -18332,11 +18304,11 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#delete + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -18346,14 +18318,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 $4 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -18366,14 +18338,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 $5 local.get $4 - local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -18383,15 +18355,15 @@ call $~lib/builtins/abort unreachable end + local.get $5 + local.get $4 local.get $4 - local.get $3 - local.get $3 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#has i32.eqz if @@ -18402,11 +18374,11 @@ call $~lib/builtins/abort unreachable end + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#delete + local.get $5 local.get $4 - local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -18416,14 +18388,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 $4 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -18435,9 +18407,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 @@ -18885,10 +18857,10 @@ local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $0 i32.store local.get $4 - local.get $5 + local.get $0 call $~lib/rt/itcms/__link local.get $4 i32.const 3 @@ -18896,10 +18868,10 @@ local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $0 i32.store offset=8 local.get $4 - local.get $5 + local.get $0 call $~lib/rt/itcms/__link local.get $4 i32.const 4 @@ -18967,7 +18939,7 @@ if local.get $1 i32.load offset=8 - local.tee $6 + local.tee $5 i32.const 1 i32.and if (result i32) @@ -18979,7 +18951,7 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $6 + local.get $5 i32.const -2 i32.and local.set $1 @@ -19050,7 +19022,7 @@ if local.get $1 i32.load offset=8 - local.tee $6 + local.tee $5 i32.const 1 i32.and if (result i32) @@ -19062,7 +19034,7 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $6 + local.get $5 i32.const -2 i32.and local.set $1 @@ -19169,7 +19141,7 @@ if local.get $1 i32.load offset=8 - local.tee $6 + local.tee $5 i32.const 1 i32.and if (result i32) @@ -19181,7 +19153,7 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $6 + local.get $5 i32.const -2 i32.and local.set $1 @@ -19269,7 +19241,7 @@ if local.get $1 i32.load offset=8 - local.tee $6 + local.tee $5 i32.const 1 i32.and if (result i32) @@ -19281,7 +19253,7 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $6 + local.get $5 i32.const -2 i32.and local.set $1 @@ -19336,6 +19308,8 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer local.tee $11 i32.const 4 @@ -19355,7 +19329,7 @@ local.get $4 i32.load offset=16 local.tee $13 - local.set $1 + local.set $0 local.get $7 i32.const 8 i32.sub @@ -19389,7 +19363,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $1 + local.get $0 i32.const 268435455 i32.gt_u if @@ -19401,9 +19375,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 8 - local.get $1 + local.get $0 i32.const 8 i32.gt_u select @@ -19430,7 +19404,7 @@ local.get $9 i32.store offset=8 local.get $6 - local.get $1 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -19455,20 +19429,20 @@ i32.and i32.eqz if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.add - local.set $0 + local.set $1 local.get $5 f32.load local.set $3 - local.get $1 + local.get $0 local.get $6 i32.load offset=12 i32.ge_u if - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -19480,7 +19454,7 @@ unreachable end local.get $6 - local.get $1 + local.get $0 i32.const 1 i32.add local.tee $5 @@ -19493,7 +19467,7 @@ end local.get $6 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -19508,12 +19482,12 @@ end end local.get $6 - local.get $0 + local.get $1 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity local.get $6 - local.get $0 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -21162,10 +21136,10 @@ local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $0 i32.store local.get $4 - local.get $5 + local.get $0 call $~lib/rt/itcms/__link local.get $4 i32.const 3 @@ -21173,10 +21147,10 @@ local.get $4 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $0 i32.store offset=8 local.get $4 - local.get $5 + local.get $0 call $~lib/rt/itcms/__link local.get $4 i32.const 4 @@ -21353,6 +21327,8 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer local.tee $11 i32.const 4 @@ -21372,7 +21348,7 @@ local.get $4 i32.load offset=16 local.tee $13 - local.set $1 + local.set $0 local.get $7 i32.const 8 i32.sub @@ -21406,7 +21382,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $1 + local.get $0 i32.const 134217727 i32.gt_u if @@ -21418,9 +21394,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 8 - local.get $1 + local.get $0 i32.const 8 i32.gt_u select @@ -21447,7 +21423,7 @@ local.get $9 i32.store offset=8 local.get $6 - local.get $1 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -21472,20 +21448,20 @@ i32.and i32.eqz if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.add - local.set $0 + local.set $1 local.get $5 f64.load local.set $3 - local.get $1 + local.get $0 local.get $6 i32.load offset=12 i32.ge_u if - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -21497,7 +21473,7 @@ unreachable end local.get $6 - local.get $1 + local.get $0 i32.const 1 i32.add local.tee $5 @@ -21510,7 +21486,7 @@ end local.get $6 i32.load offset=4 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -21525,12 +21501,12 @@ end end local.get $6 - local.get $0 + local.get $1 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity local.get $6 - local.get $0 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -22635,7 +22611,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22661,36 +22636,35 @@ local.get $2 local.get $0 i32.load offset=16 - local.tee $5 - call $~lib/array/Array#constructor local.tee $2 + call $~lib/array/Array#constructor + local.tee $0 i32.store loop $for-loop|0 + local.get $2 local.get $3 - local.get $5 - i32.lt_s + i32.gt_s if local.get $4 local.get $3 i32.const 12 i32.mul i32.add - local.tee $6 + local.tee $5 i32.load offset=8 i32.const 1 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 $2 - local.get $0 - local.get $6 - i32.load offset=4 - call $~lib/array/Array#__set end local.get $3 i32.const 1 @@ -22699,19 +22673,19 @@ br $for-loop|0 end end - local.get $2 + local.get $0 local.get $1 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 + 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 $2 + local.get $0 ) (func $~lib/map/Map#constructor (result i32) (local $0 i32) @@ -23859,7 +23833,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23885,36 +23858,35 @@ local.get $2 local.get $0 i32.load offset=16 - local.tee $5 - call $~lib/array/Array#constructor local.tee $2 + call $~lib/array/Array#constructor + local.tee $0 i32.store loop $for-loop|0 + local.get $2 local.get $3 - local.get $5 - i32.lt_s + i32.gt_s if local.get $4 local.get $3 i32.const 4 i32.shl i32.add - local.tee $6 + local.tee $5 i32.load offset=12 i32.const 1 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 $2 - local.get $0 - local.get $6 - i32.load offset=8 - call $~lib/array/Array#__set end local.get $3 i32.const 1 @@ -23923,19 +23895,19 @@ br $for-loop|0 end end - local.get $2 + local.get $0 local.get $1 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 + 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 $2 + local.get $0 ) (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index ef88bf072c..1dfcd2110c 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -1252,11 +1252,11 @@ f64.mul f64.const -0.5 f64.mul - local.tee $3 - f64.add local.tee $5 + f64.add + local.tee $3 f64.sub - local.get $3 + local.get $5 f64.add local.get $0 local.get $2 @@ -1269,7 +1269,7 @@ f64.mul f64.add f64.add - local.get $5 + local.get $3 f64.add br $~lib/util/math/log_lut|inlined.0 end @@ -1337,23 +1337,23 @@ i32.wrap_i64 i32.const 4 i32.shl - local.tee $7 + local.tee $4 i32.const 3136 i32.add - local.set $4 + local.set $7 local.get $1 local.get $6 i64.const -4503599627370496 i64.and i64.sub f64.reinterpret_i64 - local.get $4 + local.get $7 f64.load f64.sub - local.get $4 + local.get $7 f64.load offset=8 f64.sub - local.get $7 + local.get $4 i32.const 1088 i32.add local.tee $4 @@ -1370,12 +1370,12 @@ local.get $4 f64.load offset=8 f64.add - local.tee $5 + local.tee $2 local.get $0 f64.add - local.set $2 - local.get $5 + local.set $5 local.get $2 + local.get $5 f64.sub local.get $0 f64.add @@ -1386,19 +1386,19 @@ local.get $0 local.get $0 f64.mul - local.tee $3 + local.tee $2 f64.const -0.5000000000000001 f64.mul f64.add local.get $0 - local.get $3 + local.get $2 f64.mul local.get $0 f64.const -0.2499999999622955 f64.mul f64.const 0.33333333331825593 f64.add - local.get $3 + local.get $2 local.get $0 f64.const -0.16667054827627667 f64.mul @@ -1408,7 +1408,7 @@ f64.add f64.mul f64.add - local.get $2 + local.get $5 f64.add end ) @@ -1419,17 +1419,17 @@ local.get $0 local.tee $3 i64.reinterpret_f64 - local.tee $4 + local.set $4 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.div + local.get $4 i64.const 4607182418800017408 i64.lt_s - if - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.div - br $__inlined_func$~lib/math/NativeMath.acosh - end + br_if $__inlined_func$~lib/math/NativeMath.acosh + drop local.get $4 i64.const 52 i64.shr_u @@ -1616,29 +1616,29 @@ f32.const 2 f32.add f32.div - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 f32.mul local.tee $6 local.get $6 f32.mul - local.set $0 - local.get $4 + local.set $4 + local.get $0 local.get $1 f32.const 0.5 f32.mul local.get $1 f32.mul - local.tee $4 + local.tee $0 local.get $6 - local.get $0 + local.get $4 f32.const 0.2849878668785095 f32.mul f32.const 0.6666666269302368 f32.add f32.mul - local.get $0 - local.get $0 + local.get $4 + local.get $4 f32.const 0.24279078841209412 f32.mul f32.const 0.40000972151756287 @@ -1649,17 +1649,17 @@ f32.mul local.get $3 f32.convert_i32_s - local.tee $0 + local.tee $4 f32.const 9.05800061445916e-06 f32.mul local.get $5 f32.add f32.add - local.get $4 + local.get $0 f32.sub local.get $1 f32.add - local.get $0 + local.get $4 f32.const 0.6931381225585938 f32.mul f32.add @@ -3338,20 +3338,20 @@ i64.const -1073741824 i64.and f64.reinterpret_i64 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 f64.mul f64.div - local.set $1 - local.get $0 - local.get $0 + local.set $0 + local.get $1 local.get $1 local.get $0 + local.get $1 f64.sub - local.get $0 - local.get $0 - f64.add local.get $1 + local.get $1 + f64.add + local.get $0 f64.add f64.div f64.mul @@ -3420,34 +3420,34 @@ local.get $3 local.get $0 f64.promote_f32 - local.tee $3 - local.get $3 + local.tee $6 + local.get $6 f64.add local.tee $8 local.get $4 f64.add f64.mul - local.get $3 + local.get $6 local.get $4 f64.add local.get $4 f64.add f64.div - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 f64.mul - local.get $4 + local.get $3 f64.mul - local.set $6 - local.get $4 + local.set $4 + local.get $3 local.get $8 - local.get $6 + local.get $4 f64.add f64.mul - local.get $3 local.get $6 + local.get $4 f64.add - local.get $6 + local.get $4 f64.add f64.div f32.demote_f64 @@ -3744,32 +3744,32 @@ ) (func $~lib/math/NativeMath.cos (param $0 f64) (result f64) (local $1 f64) - (local $2 f64) + (local $2 i64) (local $3 f64) - (local $4 i32) + (local $4 f64) (local $5 i32) (local $6 i32) - (local $7 f64) - (local $8 i64) + (local $7 i32) + (local $8 f64) (local $9 f64) local.get $0 i64.reinterpret_f64 - local.tee $8 + local.tee $2 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $4 + local.tee $5 i32.const 31 i32.shr_u - local.set $5 - local.get $4 + local.set $6 + local.get $5 i32.const 2147483647 i32.and - local.tee $4 + local.tee $5 i32.const 1072243195 i32.le_u if - local.get $4 + local.get $5 i32.const 1044816030 i32.lt_u if @@ -3779,26 +3779,26 @@ local.get $0 local.get $0 f64.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 f64.mul - local.set $3 + local.set $4 f64.const 1 - local.get $1 + local.get $3 f64.const 0.5 f64.mul - local.tee $2 + local.tee $1 f64.sub - local.tee $7 + local.tee $8 f64.const 1 - local.get $7 - f64.sub - local.get $2 + local.get $8 f64.sub local.get $1 - local.get $1 - local.get $1 - local.get $1 + f64.sub + local.get $3 + local.get $3 + local.get $3 + local.get $3 f64.const 2.480158728947673e-05 f64.mul f64.const -0.001388888888887411 @@ -3807,11 +3807,11 @@ f64.const 0.0416666666666666 f64.add f64.mul + local.get $4 + local.get $4 + f64.mul local.get $3 local.get $3 - f64.mul - local.get $1 - local.get $1 f64.const -1.1359647557788195e-11 f64.mul f64.const 2.087572321298175e-09 @@ -3830,7 +3830,7 @@ f64.add return end - local.get $4 + local.get $5 i32.const 2146435072 i32.ge_u if @@ -3840,32 +3840,32 @@ return end block $~lib/math/rempio2|inlined.0 (result i32) - local.get $8 + local.get $2 i64.const 32 i64.shr_u i32.wrap_i64 i32.const 2147483647 i32.and - local.tee $6 + local.tee $7 i32.const 1073928572 i32.lt_u if i32.const 1 - local.set $4 - local.get $5 + local.set $5 + local.get $6 if (result f64) local.get $0 f64.const 1.5707963267341256 f64.add - local.set $0 + local.set $3 i32.const -1 - local.set $4 - local.get $6 + local.set $5 + local.get $7 i32.const 1073291771 i32.ne if (result f64) - local.get $0 - local.get $0 + local.get $3 + local.get $3 f64.const 6.077100506506192e-11 f64.add local.tee $0 @@ -3873,14 +3873,14 @@ f64.const 6.077100506506192e-11 f64.add else - local.get $0 + local.get $3 f64.const 6.077100506303966e-11 f64.add - local.tee $1 + local.tee $3 f64.const 2.0222662487959506e-21 f64.add local.set $0 - local.get $1 + local.get $3 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -3890,13 +3890,13 @@ local.get $0 f64.const 1.5707963267341256 f64.sub - local.set $0 - local.get $6 + local.set $3 + local.get $7 i32.const 1073291771 i32.ne if (result f64) - local.get $0 - local.get $0 + local.get $3 + local.get $3 f64.const 6.077100506506192e-11 f64.sub local.tee $0 @@ -3904,14 +3904,14 @@ f64.const 6.077100506506192e-11 f64.sub else - local.get $0 + local.get $3 f64.const 6.077100506303966e-11 f64.sub - local.tee $1 + local.tee $3 f64.const 2.0222662487959506e-21 f64.sub local.set $0 - local.get $1 + local.get $3 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -3921,31 +3921,31 @@ local.get $0 global.set $~lib/math/rempio2_y0 global.set $~lib/math/rempio2_y1 - local.get $4 + local.get $5 br $~lib/math/rempio2|inlined.0 end - local.get $6 + local.get $7 i32.const 1094263291 i32.lt_u if - local.get $6 + local.get $7 i32.const 20 i32.shr_u - local.tee $5 + local.tee $6 local.get $0 local.get $0 f64.const 0.6366197723675814 f64.mul f64.nearest - local.tee $3 + local.tee $4 f64.const 1.5707963267341256 f64.mul f64.sub local.tee $0 - local.get $3 + local.get $4 f64.const 6.077100506506192e-11 f64.mul - local.tee $2 + local.tee $3 f64.sub local.tee $1 i64.reinterpret_f64 @@ -3960,25 +3960,25 @@ i32.const 16 i32.gt_u if - local.get $5 + local.get $4 + f64.const 2.0222662487959506e-21 + f64.mul local.get $0 - local.tee $1 - local.get $3 + local.get $0 + local.get $4 f64.const 6.077100506303966e-11 f64.mul - local.tee $2 + local.tee $1 f64.sub local.tee $0 - local.get $3 - f64.const 2.0222662487959506e-21 - f64.mul - local.get $1 - local.get $0 f64.sub - local.get $2 + local.get $1 f64.sub f64.sub - local.tee $2 + local.set $3 + local.get $6 + local.get $0 + local.get $3 f64.sub local.tee $1 i64.reinterpret_f64 @@ -3992,72 +3992,74 @@ i32.sub i32.const 49 i32.gt_u - if + if (result f64) + local.get $4 + f64.const 8.4784276603689e-32 + f64.mul local.get $0 - local.tee $1 - local.get $3 + local.get $0 + local.get $4 f64.const 2.0222662487111665e-21 f64.mul - local.tee $2 + local.tee $1 f64.sub local.tee $0 - local.get $3 - f64.const 8.4784276603689e-32 - f64.mul + f64.sub local.get $1 - local.get $0 f64.sub - local.get $2 f64.sub + local.set $3 + local.get $0 + local.get $3 f64.sub - local.tee $2 - f64.sub - local.set $1 + else + local.get $1 end + local.set $1 end local.get $1 global.set $~lib/math/rempio2_y0 local.get $0 local.get $1 f64.sub - local.get $2 + local.get $3 f64.sub global.set $~lib/math/rempio2_y1 - local.get $3 + local.get $4 i32.trunc_f64_s br $~lib/math/rempio2|inlined.0 end i32.const 0 - local.get $8 + local.get $2 call $~lib/math/pio2_large_quot - local.tee $4 + local.tee $5 i32.sub - local.get $4 local.get $5 + local.get $6 select end - local.set $5 + local.set $6 global.get $~lib/math/rempio2_y0 - local.set $1 - global.get $~lib/math/rempio2_y1 local.set $3 - local.get $5 + global.get $~lib/math/rempio2_y1 + local.set $4 + local.get $6 i32.const 1 i32.and if (result f64) - local.get $1 - local.get $1 + local.get $3 + local.get $3 f64.mul local.tee $0 - local.get $1 + local.get $3 f64.mul - local.set $2 - local.get $1 - local.get $0 + local.set $1 local.get $3 + local.get $0 + local.get $4 f64.const 0.5 f64.mul - local.get $2 + local.get $1 local.get $0 local.get $0 f64.const 2.7557313707070068e-06 @@ -4082,32 +4084,32 @@ f64.mul f64.sub f64.mul - local.get $3 + local.get $4 f64.sub - local.get $2 + local.get $1 f64.const -0.16666666666666632 f64.mul f64.sub f64.sub else - local.get $1 - local.get $1 + local.get $3 + local.get $3 f64.mul local.tee $0 local.get $0 f64.mul - local.set $2 + local.set $1 f64.const 1 local.get $0 f64.const 0.5 f64.mul - local.tee $7 + local.tee $8 f64.sub local.tee $9 f64.const 1 local.get $9 f64.sub - local.get $7 + local.get $8 f64.sub local.get $0 local.get $0 @@ -4121,8 +4123,8 @@ f64.const 0.0416666666666666 f64.add f64.mul - local.get $2 - local.get $2 + local.get $1 + local.get $1 f64.mul local.get $0 local.get $0 @@ -4136,8 +4138,8 @@ f64.mul f64.add f64.mul - local.get $1 local.get $3 + local.get $4 f64.mul f64.sub f64.add @@ -4146,7 +4148,7 @@ local.tee $0 f64.neg local.get $0 - local.get $5 + local.get $6 i32.const 1 i32.add i32.const 2 @@ -4154,31 +4156,30 @@ select ) (func $~lib/math/NativeMathf.cos (param $0 f32) (result f32) - (local $1 f64) - (local $2 f64) - (local $3 i32) - (local $4 f64) - (local $5 i64) - (local $6 i32) - (local $7 i64) - (local $8 i32) - (local $9 i64) - (local $10 i64) + (local $1 i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i32) + (local $6 i64) + (local $7 f64) + (local $8 f64) + (local $9 f64) block $folding-inner0 local.get $0 i32.reinterpret_f32 - local.tee $3 + local.tee $1 i32.const 31 i32.shr_u - local.set $6 - local.get $3 + local.set $5 + local.get $1 i32.const 2147483647 i32.and - local.tee $3 + local.tee $2 i32.const 1061752794 i32.le_u if - local.get $3 + local.get $2 i32.const 964689920 i32.lt_u if @@ -4187,53 +4188,53 @@ end local.get $0 f64.promote_f32 - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.set $2 + local.set $8 br $folding-inner0 end - local.get $3 + local.get $2 i32.const 1081824209 i32.le_u if - local.get $3 + local.get $2 i32.const 1075235811 i32.gt_u if local.get $0 f64.promote_f32 - local.tee $1 + local.tee $9 f64.const 3.141592653589793 f64.add - local.get $1 + local.get $9 f64.const 3.141592653589793 f64.sub - local.get $6 + local.get $5 select - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.set $2 - local.get $1 + local.set $8 + local.get $9 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $2 + local.get $8 f64.const 0.04166662332373906 f64.mul f64.add - local.get $2 - local.get $1 + local.get $8 + local.get $9 f64.mul - local.get $1 + local.get $9 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -4244,46 +4245,46 @@ f32.neg return else - local.get $6 + local.get $5 if (result f64) local.get $0 f64.promote_f32 f64.const 1.5707963267948966 f64.add - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 f64.mul - local.tee $1 - local.get $2 + local.tee $9 + local.get $8 f64.mul else f64.const 1.5707963267948966 local.get $0 f64.promote_f32 f64.sub - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 f64.mul - local.tee $1 - local.get $2 + local.tee $9 + local.get $8 f64.mul end - local.set $4 - local.get $2 - local.get $4 - local.get $1 + local.set $7 + local.get $8 + local.get $7 + local.get $9 f64.const 0.008333329385889463 f64.mul f64.const -0.16666666641626524 f64.add f64.mul f64.add - local.get $4 - local.get $1 - local.get $1 + local.get $7 + local.get $9 + local.get $9 f64.mul f64.mul - local.get $1 + local.get $9 f64.const 2.718311493989822e-06 f64.mul f64.const -1.9839334836096632e-04 @@ -4295,74 +4296,74 @@ end unreachable end - local.get $3 + local.get $2 i32.const 1088565717 i32.le_u if - local.get $3 + local.get $2 i32.const 1085271519 i32.gt_u if local.get $0 f64.promote_f32 - local.tee $1 + local.tee $9 f64.const 6.283185307179586 f64.add - local.get $1 + local.get $9 f64.const 6.283185307179586 f64.sub - local.get $6 + local.get $5 select - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.set $2 + local.set $8 br $folding-inner0 else - local.get $6 + local.get $5 if (result f64) local.get $0 f32.neg f64.promote_f32 f64.const 4.71238898038469 f64.sub - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 f64.mul - local.tee $1 - local.get $2 + local.tee $9 + local.get $8 f64.mul else local.get $0 f64.promote_f32 f64.const 4.71238898038469 f64.sub - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 f64.mul - local.tee $1 - local.get $2 + local.tee $9 + local.get $8 f64.mul end - local.set $4 - local.get $2 - local.get $4 - local.get $1 + local.set $7 + local.get $8 + local.get $7 + local.get $9 f64.const 0.008333329385889463 f64.mul f64.const -0.16666666641626524 f64.add f64.mul f64.add - local.get $4 - local.get $1 - local.get $1 + local.get $7 + local.get $9 + local.get $9 f64.mul f64.mul - local.get $1 + local.get $9 f64.const 2.718311493989822e-06 f64.mul f64.const -1.9839334836096632e-04 @@ -4374,7 +4375,7 @@ end unreachable end - local.get $3 + local.get $2 i32.const 2139095040 i32.ge_u if @@ -4384,155 +4385,151 @@ return end block $~lib/math/rempio2f|inlined.0 (result i32) - local.get $3 + local.get $2 + local.tee $1 i32.const 1305022427 i32.lt_u if local.get $0 f64.promote_f32 - local.tee $2 + local.tee $8 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $1 - local.get $2 - local.get $1 + local.set $9 + local.get $8 + local.get $9 f64.const 1.5707963109016418 f64.mul f64.sub - local.get $1 + local.get $9 f64.const 1.5893254773528196e-08 f64.mul f64.sub global.set $~lib/math/rempio2f_y - local.get $1 + local.get $9 i32.trunc_f64_s br $~lib/math/rempio2f|inlined.0 end - local.get $3 + local.get $1 i32.const 23 i32.shr_s i32.const 152 i32.sub - local.tee $8 + local.tee $2 i32.const 63 i32.and i64.extend_i32_s - local.set $5 - local.get $8 + local.set $6 + f64.const 8.515303950216386e-20 + local.get $0 + f64.promote_f32 + f64.copysign + local.get $1 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.tee $3 + local.get $2 i32.const 6 i32.shr_s i32.const 3 i32.shl i32.const 5632 i32.add - local.tee $8 + local.tee $2 i64.load - local.set $9 - local.get $8 + local.get $6 + i64.shl + local.get $2 i64.load offset=8 - local.set $7 - local.get $5 - i64.const 32 - i64.gt_u + local.tee $4 + i64.const 64 + local.get $6 + i64.sub + i64.shr_u + i64.or + i64.mul + local.get $6 + i64.const 32 + i64.gt_u if (result i64) - local.get $7 - local.get $5 + local.get $4 + local.get $6 i64.const 32 i64.sub i64.shl - local.get $8 + local.get $2 i64.load offset=16 i64.const 96 - local.get $5 + local.get $6 i64.sub i64.shr_u i64.or else - local.get $7 + local.get $4 i64.const 32 - local.get $5 + local.get $6 i64.sub i64.shr_u end - local.set $10 - f64.const 8.515303950216386e-20 - local.get $0 - f64.promote_f32 - f64.copysign - local.get $9 - local.get $5 - i64.shl - local.get $7 - i64.const 64 - local.get $5 - i64.sub - i64.shr_u - i64.or local.get $3 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.tee $5 - i64.mul - local.get $5 - local.get $10 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $5 + local.tee $6 i64.const 2 i64.shl - local.tee $7 + local.tee $4 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y i32.const 0 - local.get $5 + local.get $6 i64.const 62 i64.shr_u - local.get $7 + local.get $4 i64.const 63 i64.shr_u i64.add i32.wrap_i64 - local.tee $3 + local.tee $1 i32.sub - local.get $3 - local.get $6 + local.get $1 + local.get $5 select end - local.set $3 - global.get $~lib/math/rempio2f_y local.set $1 - local.get $3 + global.get $~lib/math/rempio2f_y + local.set $9 + local.get $1 i32.const 1 i32.and if (result f32) - local.get $1 - local.get $1 - local.get $1 + local.get $9 + local.get $9 + local.get $9 f64.mul - local.tee $2 - local.get $1 + local.tee $8 + local.get $9 f64.mul - local.tee $1 - local.get $2 + local.tee $7 + local.get $8 f64.const 0.008333329385889463 f64.mul f64.const -0.16666666641626524 f64.add f64.mul f64.add - local.get $1 - local.get $2 - local.get $2 + local.get $7 + local.get $8 + local.get $8 f64.mul f64.mul - local.get $2 + local.get $8 f64.const 2.718311493989822e-06 f64.mul f64.const -1.9839334836096632e-04 @@ -4541,26 +4538,26 @@ f64.add f32.demote_f64 else - local.get $1 - local.get $1 + local.get $9 + local.get $9 f64.mul - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.set $2 - local.get $1 + local.set $8 + local.get $9 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $2 + local.get $8 f64.const 0.04166662332373906 f64.mul f64.add - local.get $2 - local.get $1 + local.get $8 + local.get $9 f64.mul - local.get $1 + local.get $9 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -4572,7 +4569,7 @@ local.tee $0 f32.neg local.get $0 - local.get $3 + local.get $1 i32.const 1 i32.add i32.const 2 @@ -4580,19 +4577,19 @@ select return end - local.get $1 + local.get $9 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $2 + local.get $8 f64.const 0.04166662332373906 f64.mul f64.add - local.get $2 - local.get $1 + local.get $8 + local.get $9 f64.mul - local.get $1 + local.get $9 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -4603,11 +4600,11 @@ ) (func $~lib/math/NativeMath.expm1 (param $0 f64) (result f64) (local $1 f64) - (local $2 i32) - (local $3 f64) + (local $2 f64) + (local $3 i32) (local $4 f64) - (local $5 f64) - (local $6 i32) + (local $5 i32) + (local $6 f64) (local $7 i32) (local $8 i64) local.get $0 @@ -4618,13 +4615,13 @@ i64.const 2147483647 i64.and i32.wrap_i64 - local.set $6 + local.set $5 local.get $8 i64.const 63 i64.shr_u i32.wrap_i64 local.set $7 - local.get $6 + local.get $5 i32.const 1078159482 i32.ge_u if @@ -4650,7 +4647,7 @@ return end end - local.get $6 + local.get $5 i32.const 1071001154 i32.gt_u if @@ -4668,18 +4665,18 @@ f64.copysign f64.add i32.trunc_f64_s - local.get $6 + local.get $5 i32.const 1072734898 i32.lt_u select - local.tee $2 + local.tee $3 f64.convert_i32_s local.tee $1 f64.const 0.6931471803691238 f64.mul f64.sub - local.tee $0 - local.get $0 + local.tee $4 + local.get $4 local.get $1 f64.const 1.9082149292705877e-10 f64.mul @@ -4689,9 +4686,9 @@ f64.sub local.get $1 f64.sub - local.set $3 + local.set $4 else - local.get $6 + local.get $5 i32.const 1016070144 i32.lt_u if @@ -4703,26 +4700,26 @@ local.get $0 f64.const 0.5 f64.mul - local.tee $4 + local.tee $2 f64.mul - local.tee $5 - local.get $5 + local.tee $1 + local.get $1 f64.mul - local.set $1 + local.set $6 f64.const 3 - local.get $5 + local.get $1 f64.const -0.03333333333333313 f64.mul f64.const 1 f64.add + local.get $6 local.get $1 - local.get $5 f64.const -7.93650757867488e-05 f64.mul f64.const 1.5873015872548146e-03 f64.add + local.get $6 local.get $1 - local.get $5 f64.const -2.0109921818362437e-07 f64.mul f64.const 4.008217827329362e-06 @@ -4731,51 +4728,51 @@ f64.add f64.mul f64.add - local.tee $1 - local.get $4 + local.tee $6 + local.get $2 f64.mul f64.sub - local.set $4 - local.get $5 + local.set $2 local.get $1 - local.get $4 + local.get $6 + local.get $2 f64.sub f64.const 6 local.get $0 - local.get $4 + local.get $2 f64.mul f64.sub f64.div f64.mul - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.eqz if local.get $0 local.get $0 - local.get $1 + local.get $2 f64.mul - local.get $5 + local.get $1 f64.sub f64.sub return end local.get $0 - local.get $1 - local.get $3 + local.get $2 + local.get $4 f64.sub f64.mul - local.get $3 + local.get $4 f64.sub - local.get $5 + local.get $1 f64.sub - local.set $3 - local.get $2 + local.set $1 + local.get $3 i32.const -1 i32.eq if local.get $0 - local.get $3 + local.get $1 f64.sub f64.const 0.5 f64.mul @@ -4783,7 +4780,7 @@ f64.sub return end - local.get $2 + local.get $3 i32.const 1 i32.eq if @@ -4791,7 +4788,7 @@ f64.const -0.25 f64.lt if - local.get $3 + local.get $1 local.get $0 f64.const 0.5 f64.add @@ -4801,7 +4798,7 @@ return end local.get $0 - local.get $3 + local.get $1 f64.sub f64.const 2 f64.mul @@ -4809,7 +4806,7 @@ f64.add return end - local.get $2 + local.get $3 i64.extend_i32_s i64.const 1023 i64.add @@ -4818,16 +4815,16 @@ f64.reinterpret_i64 local.set $4 i32.const 1 - local.get $2 + local.get $3 i32.const 56 i32.gt_s - local.get $2 + local.get $3 i32.const 0 i32.lt_s select if local.get $0 - local.get $3 + local.get $1 f64.sub f64.const 1 f64.add @@ -4839,7 +4836,7 @@ local.get $0 local.get $4 f64.mul - local.get $2 + local.get $3 i32.const 1024 i32.eq select @@ -4850,22 +4847,22 @@ local.get $0 f64.const 1 i64.const 1023 - local.get $2 + local.get $3 i64.extend_i32_s i64.sub i64.const 52 i64.shl f64.reinterpret_i64 - local.tee $1 + local.tee $2 f64.sub - local.get $3 + local.get $1 f64.sub f64.const 1 - local.get $3 local.get $1 + local.get $2 f64.add f64.sub - local.get $2 + local.get $3 i32.const 20 i32.lt_s select @@ -5169,8 +5166,8 @@ (local $1 f32) (local $2 f32) (local $3 i32) - (local $4 i32) - (local $5 f32) + (local $4 f32) + (local $5 i32) (local $6 i32) (local $7 f32) local.get $0 @@ -5178,16 +5175,16 @@ local.tee $6 i32.const 2147483647 i32.and - local.set $4 + local.set $5 local.get $6 i32.const 31 i32.shr_u local.set $6 - local.get $4 + local.get $5 i32.const 1100331076 i32.ge_u if - local.get $4 + local.get $5 i32.const 2139095040 i32.gt_u if @@ -5199,7 +5196,7 @@ f32.const -1 return end - local.get $4 + local.get $5 i32.const 1118925335 i32.gt_u if @@ -5209,7 +5206,7 @@ return end end - local.get $4 + local.get $5 i32.const 1051816472 i32.gt_u if @@ -5227,19 +5224,19 @@ f32.copysign f32.add i32.trunc_f32_s - local.get $4 + local.get $5 i32.const 1065686418 i32.lt_u select local.tee $3 f32.convert_i32_s - local.tee $0 + local.tee $1 f32.const 0.6931381225585938 f32.mul f32.sub - local.tee $1 + local.tee $4 + local.get $4 local.get $1 - local.get $0 f32.const 9.05800061445916e-06 f32.mul local.tee $1 @@ -5248,9 +5245,9 @@ f32.sub local.get $1 f32.sub - local.set $5 + local.set $4 else - local.get $4 + local.get $5 i32.const 855638016 i32.lt_u if @@ -5305,10 +5302,10 @@ end local.get $0 local.get $2 - local.get $5 + local.get $4 f32.sub f32.mul - local.get $5 + local.get $4 f32.sub local.get $1 f32.sub @@ -5358,7 +5355,7 @@ i32.const 23 i32.shl f32.reinterpret_i32 - local.set $5 + local.set $4 i32.const 1 local.get $3 i32.const 56 @@ -5379,7 +5376,7 @@ f32.const 1701411834604692317316873e14 f32.mul local.get $0 - local.get $5 + local.get $4 f32.mul local.get $3 i32.const 128 @@ -5411,7 +5408,7 @@ i32.lt_s select f32.add - local.get $5 + local.get $4 f32.mul ) (func $~lib/math/NativeMathf.exp (param $0 f32) (result f32) @@ -5791,24 +5788,27 @@ ) (func $std/math/test_exp2f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 f64) - (local $4 f64) - (local $5 i64) + (local $4 i64) + (local $5 i32) (local $6 i32) - (local $7 i32) + (local $7 f64) block $~lib/util/math/exp2f_lut|inlined.0 (result f32) + local.get $0 + f64.promote_f32 + local.set $3 local.get $0 i32.reinterpret_f32 - local.tee $6 + local.tee $5 i32.const 20 i32.shr_u i32.const 2047 i32.and - local.tee $7 + local.tee $6 i32.const 1072 i32.ge_u if f32.const 0 - local.get $6 + local.get $5 i32.const -8388608 i32.eq br_if $~lib/util/math/exp2f_lut|inlined.0 @@ -5816,7 +5816,7 @@ local.get $0 local.get $0 f32.add - local.get $7 + local.get $6 i32.const 2040 i32.ge_u br_if $~lib/util/math/exp2f_lut|inlined.0 @@ -5836,16 +5836,14 @@ br_if $~lib/util/math/exp2f_lut|inlined.0 drop end - local.get $0 - f64.promote_f32 - local.tee $4 + local.get $3 f64.const 211106232532992 f64.add - local.tee $3 + local.tee $7 i64.reinterpret_f64 - local.set $5 - local.get $4 + local.set $4 local.get $3 + local.get $7 f64.const 211106232532992 f64.sub f64.sub @@ -5864,7 +5862,7 @@ f64.mul f64.mul f64.add - local.get $5 + local.get $4 i32.wrap_i64 i32.const 31 i32.and @@ -5873,7 +5871,7 @@ i32.const 7712 i32.add i64.load - local.get $5 + local.get $4 i64.const 47 i64.shl i64.add @@ -5890,12 +5888,13 @@ (local $3 i64) (local $4 i64) (local $5 f64) - (local $6 i32) - (local $7 f64) - (local $8 i32) - (local $9 f64) + (local $6 f64) + (local $7 i32) + (local $8 f64) + (local $9 i32) (local $10 f64) (local $11 f64) + (local $12 f64) local.get $1 i64.reinterpret_f64 i64.const 9223372036854775807 @@ -5920,7 +5919,7 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $6 + local.tee $7 i32.const 2047 i32.eq if @@ -5936,7 +5935,7 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $8 + local.tee $9 i32.const 2047 i32.eq select @@ -5945,8 +5944,8 @@ local.get $0 return end - local.get $8 - local.get $6 + local.get $9 + local.get $7 i32.sub i32.const 64 i32.gt_s @@ -5957,13 +5956,13 @@ return end f64.const 1 - local.set $7 - local.get $8 + local.set $8 + local.get $9 i32.const 1533 i32.gt_u if (result f64) f64.const 5260135901548373507240989e186 - local.set $7 + local.set $8 local.get $1 f64.const 1.90109156629516e-211 f64.mul @@ -5972,12 +5971,12 @@ f64.const 1.90109156629516e-211 f64.mul else - local.get $6 + local.get $7 i32.const 573 i32.lt_u if (result f64) f64.const 1.90109156629516e-211 - local.set $7 + local.set $8 local.get $1 f64.const 5260135901548373507240989e186 f64.mul @@ -5994,63 +5993,64 @@ local.get $0 f64.const 134217729 f64.mul - local.tee $11 + local.tee $12 f64.sub - local.get $11 + local.get $12 f64.add - local.tee $10 + local.tee $11 f64.sub + local.set $6 + local.get $0 + local.get $0 + f64.mul local.set $5 local.get $1 local.get $1 local.get $1 f64.const 134217729 f64.mul - local.tee $11 + local.tee $0 f64.sub - local.get $11 + local.get $0 f64.add - local.tee $9 + local.tee $10 f64.sub - local.set $11 - local.get $7 - local.get $9 - local.get $9 + local.set $12 + local.get $8 + local.get $10 + local.get $10 f64.mul local.get $1 local.get $1 f64.mul - local.tee $1 + local.tee $0 f64.sub - local.get $9 - local.get $9 + local.get $10 + local.get $10 f64.add - local.get $11 + local.get $12 f64.add - local.get $11 + local.get $12 f64.mul f64.add - local.get $10 - local.get $10 - f64.mul - local.get $0 - local.get $0 + local.get $11 + local.get $11 f64.mul - local.tee $0 + local.get $5 f64.sub - local.get $10 - local.get $10 + local.get $11 + local.get $11 f64.add - local.get $5 + local.get $6 f64.add - local.get $5 + local.get $6 f64.mul f64.add f64.add - local.get $1 - f64.add local.get $0 f64.add + local.get $5 + f64.add f64.sqrt f64.mul ) @@ -6165,15 +6165,15 @@ (local $1 i32) (local $2 f64) (local $3 f64) - (local $4 i64) - (local $5 f64) + (local $4 f64) + (local $5 i64) (local $6 f64) - (local $7 i32) - (local $8 f64) + (local $7 f64) + (local $8 i32) i32.const 1 local.get $0 i64.reinterpret_f64 - local.tee $4 + local.tee $5 i64.const 32 i64.shr_u i32.wrap_i64 @@ -6185,7 +6185,7 @@ i32.lt_u select if - local.get $4 + local.get $5 i64.const 1 i64.shl i64.eqz @@ -6209,12 +6209,12 @@ return end i32.const -54 - local.set $7 + local.set $8 local.get $0 f64.const 18014398509481984 f64.mul i64.reinterpret_f64 - local.tee $4 + local.tee $5 i64.const 32 i64.shr_u i32.wrap_i64 @@ -6227,7 +6227,7 @@ local.get $0 return else - local.get $4 + local.get $5 i64.const 32 i64.shl i64.const 1 @@ -6242,7 +6242,7 @@ end end end - local.get $4 + local.get $5 i64.const 4294967295 i64.and local.get $1 @@ -6260,42 +6260,42 @@ f64.reinterpret_i64 f64.const 1 f64.sub - local.tee $2 + local.tee $0 f64.const 0.5 f64.mul - local.get $2 + local.get $0 f64.mul local.set $3 - local.get $2 - local.get $2 + local.get $0 + local.get $0 f64.const 2 f64.add f64.div - local.tee $5 - local.get $5 - f64.mul local.tee $6 local.get $6 f64.mul - local.set $0 - local.get $2 - local.get $2 + local.tee $4 + local.get $4 + f64.mul + local.set $2 + local.get $0 + local.get $0 local.get $3 f64.sub i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 - local.tee $2 + local.tee $7 f64.sub local.get $3 f64.sub - local.get $5 - local.get $3 local.get $6 - local.get $0 - local.get $0 - local.get $0 + local.get $3 + local.get $4 + local.get $2 + local.get $2 + local.get $2 f64.const 0.14798198605116586 f64.mul f64.const 0.1818357216161805 @@ -6307,9 +6307,9 @@ f64.const 0.6666666666666735 f64.add f64.mul - local.get $0 - local.get $0 - local.get $0 + local.get $2 + local.get $2 + local.get $2 f64.const 0.15313837699209373 f64.mul f64.const 0.22222198432149784 @@ -6328,24 +6328,24 @@ i32.shr_u i32.const 1023 i32.sub - local.get $7 + local.get $8 i32.add f64.convert_i32_s - local.tee $5 + local.tee $3 f64.const 0.30102999566361177 f64.mul local.tee $6 - local.get $2 + local.get $7 f64.const 0.4342944818781689 f64.mul - local.tee $8 + local.tee $2 f64.add - local.set $3 - local.get $5 + local.set $4 + local.get $3 f64.const 3.694239077158931e-13 f64.mul local.get $0 - local.get $2 + local.get $7 f64.add f64.const 2.5082946711645275e-11 f64.mul @@ -6355,12 +6355,12 @@ f64.mul f64.add local.get $6 - local.get $3 + local.get $4 f64.sub - local.get $8 + local.get $2 f64.add f64.add - local.get $3 + local.get $4 f64.add ) (func $~lib/math/NativeMathf.log10 (param $0 f32) (result f32) @@ -6370,7 +6370,6 @@ (local $4 f32) (local $5 f32) (local $6 i32) - (local $7 f32) i32.const 1 local.get $0 i32.reinterpret_f32 @@ -6445,24 +6444,13 @@ f32.const 2 f32.add f32.div - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f32.mul local.tee $4 local.get $4 f32.mul - local.set $2 - local.get $1 - i32.const 23 - i32.shr_u - i32.const 127 - i32.sub - local.get $6 - i32.add - f32.convert_i32_s - local.tee $7 - f32.const 7.903415166765626e-07 - f32.mul + local.set $3 local.get $0 local.get $0 local.get $0 @@ -6480,17 +6468,17 @@ f32.sub local.get $0 f32.sub - local.get $3 + local.get $2 local.get $0 local.get $4 - local.get $2 + local.get $3 f32.const 0.2849878668785095 f32.mul f32.const 0.6666666269302368 f32.add f32.mul - local.get $2 - local.get $2 + local.get $3 + local.get $3 f32.const 0.24279078841209412 f32.mul f32.const 0.40000972151756287 @@ -6500,7 +6488,19 @@ f32.add f32.mul f32.add - local.tee $0 + local.set $0 + local.get $1 + i32.const 23 + i32.shr_u + i32.const 127 + i32.sub + local.get $6 + i32.add + f32.convert_i32_s + local.tee $2 + f32.const 7.903415166765626e-07 + f32.mul + local.get $0 local.get $5 f32.add f32.const -3.168997136526741e-05 @@ -6514,7 +6514,7 @@ f32.const 0.434326171875 f32.mul f32.add - local.get $7 + local.get $2 f32.const 0.3010292053222656 f32.mul f32.add @@ -6526,10 +6526,10 @@ (local $4 f64) (local $5 f64) (local $6 f64) - (local $7 i64) - (local $8 f64) - (local $9 f64) - (local $10 i32) + (local $7 f64) + (local $8 i64) + (local $9 i32) + (local $10 f64) block $~lib/util/math/log2_lut|inlined.0 (result f64) local.get $0 i64.reinterpret_f64 @@ -6547,7 +6547,7 @@ i64.const -4294967296 i64.and f64.reinterpret_i64 - local.tee $6 + local.tee $7 f64.const 1.4426950407214463 f64.mul local.set $4 @@ -6566,11 +6566,11 @@ f64.const -0.7213475204444817 f64.add f64.mul - local.tee $8 + local.tee $6 f64.add - local.tee $9 + local.tee $10 local.get $0 - local.get $6 + local.get $7 f64.sub f64.const 1.4426950407214463 f64.mul @@ -6579,9 +6579,9 @@ f64.mul f64.add local.get $4 - local.get $9 + local.get $10 f64.sub - local.get $8 + local.get $6 f64.add f64.add local.get $5 @@ -6675,7 +6675,7 @@ local.get $1 i64.const 4604367669032910848 i64.sub - local.tee $7 + local.tee $8 i64.const 46 i64.shr_u i64.const 63 @@ -6683,23 +6683,23 @@ i32.wrap_i64 i32.const 4 i32.shl - local.tee $10 + local.tee $3 i32.const 8992 i32.add - local.set $3 + local.set $9 local.get $1 - local.get $7 + local.get $8 i64.const -4503599627370496 i64.and i64.sub f64.reinterpret_i64 - local.get $3 + local.get $9 f64.load f64.sub - local.get $3 + local.get $9 f64.load offset=8 f64.sub - local.get $10 + local.get $3 i32.const 7968 i32.add local.tee $3 @@ -6710,28 +6710,28 @@ i64.const -4294967296 i64.and f64.reinterpret_i64 - local.tee $5 + local.tee $7 f64.const 1.4426950407214463 f64.mul - local.set $2 - local.get $7 + local.set $4 + local.get $8 i64.const 52 i64.shr_s f64.convert_i64_s local.get $3 f64.load offset=8 f64.add - local.tee $6 - local.get $2 + local.tee $5 + local.get $4 f64.add - local.set $4 + local.set $6 + local.get $5 local.get $6 - local.get $4 f64.sub - local.get $2 + local.get $4 f64.add local.get $0 - local.get $5 + local.get $7 f64.sub f64.const 1.4426950407214463 f64.mul @@ -6769,7 +6769,7 @@ f64.add f64.mul f64.add - local.get $4 + local.get $6 f64.add end ) @@ -7347,12 +7347,12 @@ (func $~lib/math/NativeMath.pow (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i32) - (local $4 i64) + (local $4 f64) (local $5 f64) (local $6 i64) - (local $7 f64) - (local $8 i64) - (local $9 f64) + (local $7 i64) + (local $8 f64) + (local $9 i64) (local $10 f64) (local $11 i32) (local $12 i32) @@ -7414,19 +7414,21 @@ return end end - block $~lib/util/math/pow_lut|inlined.0 (result f64) - local.get $1 - i64.reinterpret_f64 - local.tee $6 - i64.const 52 - i64.shr_u - local.set $14 + local.get $1 + local.tee $5 + i64.reinterpret_f64 + local.tee $7 + i64.const 52 + i64.shr_u + local.set $9 + block $~lib/util/math/pow_lut|inlined.0 local.get $0 + local.tee $4 i64.reinterpret_f64 local.tee $2 i64.const 52 i64.shr_u - local.tee $8 + local.tee $14 i64.const 1 i64.sub i64.const 2046 @@ -7434,7 +7436,7 @@ if (result i32) i32.const 1 else - local.get $14 + local.get $9 i64.const 2047 i64.and i64.const 958 @@ -7443,7 +7445,7 @@ i64.ge_u end if - local.get $6 + local.get $7 i64.const 1 i64.shl i64.const 1 @@ -7452,23 +7454,24 @@ i64.ge_u if f64.const 1 - local.get $6 + local.set $0 + local.get $7 i64.const 1 i64.shl i64.eqz br_if $~lib/util/math/pow_lut|inlined.0 - drop f64.const nan:0x8000000000000 + local.set $0 local.get $2 i64.const 4607182418800017408 i64.eq br_if $~lib/util/math/pow_lut|inlined.0 - drop - local.get $0 - local.get $1 + local.get $4 + local.get $5 f64.add + local.set $0 i32.const 1 - local.get $6 + local.get $7 i64.const 1 i64.shl i64.const -9007199254740992 @@ -7480,17 +7483,17 @@ i64.gt_u select br_if $~lib/util/math/pow_lut|inlined.0 - drop f64.const nan:0x8000000000000 + local.set $0 local.get $2 i64.const 1 i64.shl i64.const 9214364837600034816 i64.eq br_if $~lib/util/math/pow_lut|inlined.0 - drop f64.const 0 - local.get $6 + local.set $0 + local.get $7 i64.const 63 i64.shr_u i64.eqz @@ -7501,10 +7504,10 @@ i64.lt_u i32.eq br_if $~lib/util/math/pow_lut|inlined.0 - drop - local.get $1 - local.get $1 + local.get $5 + local.get $5 f64.mul + local.set $0 br $~lib/util/math/pow_lut|inlined.0 end local.get $2 @@ -7516,8 +7519,8 @@ i64.ge_u if f64.const 1 - local.get $0 - local.get $0 + local.get $4 + local.get $4 f64.mul local.tee $0 f64.neg @@ -7529,18 +7532,18 @@ if (result i32) block $~lib/util/math/checkint|inlined.0 (result i32) i32.const 0 - local.get $6 + local.get $7 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $4 + local.tee $6 i64.const 1023 i64.lt_u br_if $~lib/util/math/checkint|inlined.0 drop i32.const 2 - local.get $4 + local.get $6 i64.const 1075 i64.gt_u br_if $~lib/util/math/checkint|inlined.0 @@ -7548,21 +7551,21 @@ i32.const 0 i64.const 1 i64.const 1075 - local.get $4 + local.get $6 i64.sub i64.shl - local.tee $4 + local.tee $6 i64.const 1 i64.sub - local.get $6 + local.get $7 i64.and i64.const 0 i64.ne br_if $~lib/util/math/checkint|inlined.0 drop i32.const 1 - local.get $4 local.get $6 + local.get $7 i64.and i64.const 0 i64.ne @@ -7579,11 +7582,12 @@ local.tee $0 f64.div local.get $0 - local.get $6 + local.get $7 i64.const 63 i64.shr_u i32.wrap_i64 select + local.set $0 br $~lib/util/math/pow_lut|inlined.0 end local.get $2 @@ -7591,26 +7595,27 @@ i64.shr_u i32.wrap_i64 if - local.get $0 - local.get $0 + local.get $4 + local.get $4 f64.sub - local.tee $7 - local.get $7 + local.tee $0 + local.get $0 f64.div + local.set $0 block $~lib/util/math/checkint|inlined.1 (result i32) i32.const 0 - local.get $6 + local.get $7 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $4 + local.tee $6 i64.const 1023 i64.lt_u br_if $~lib/util/math/checkint|inlined.1 drop i32.const 2 - local.get $4 + local.get $6 i64.const 1075 i64.gt_u br_if $~lib/util/math/checkint|inlined.1 @@ -7618,21 +7623,21 @@ i32.const 0 i64.const 1 i64.const 1075 - local.get $4 + local.get $6 i64.sub i64.shl - local.tee $4 + local.tee $6 i64.const 1 i64.sub - local.get $6 + local.get $7 i64.and i64.const 0 i64.ne br_if $~lib/util/math/checkint|inlined.1 drop i32.const 1 - local.get $4 local.get $6 + local.get $7 i64.and i64.const 0 i64.ne @@ -7643,11 +7648,10 @@ local.tee $11 i32.eqz br_if $~lib/util/math/pow_lut|inlined.0 - drop - local.get $8 + local.get $14 i64.const 2047 i64.and - local.set $8 + local.set $14 i32.const 262144 i32.const 0 local.get $11 @@ -7660,7 +7664,7 @@ i64.and local.set $2 end - local.get $14 + local.get $9 i64.const 2047 i64.and i64.const 958 @@ -7669,22 +7673,20 @@ i64.ge_u if f64.const 1 + local.set $0 local.get $2 i64.const 4607182418800017408 i64.eq br_if $~lib/util/math/pow_lut|inlined.0 - drop - f64.const 1 - local.get $14 + local.get $9 i64.const 2047 i64.and i64.const 958 i64.lt_u br_if $~lib/util/math/pow_lut|inlined.0 - drop f64.const inf f64.const 0 - local.get $14 + local.get $9 i64.const 2048 i64.lt_u local.get $2 @@ -7692,12 +7694,13 @@ i64.gt_u i32.eq select + local.set $0 br $~lib/util/math/pow_lut|inlined.0 end - local.get $8 + local.get $14 i64.eqz if (result i64) - local.get $0 + local.get $4 f64.const 4503599627370496 f64.mul i64.reinterpret_f64 @@ -7714,18 +7717,18 @@ local.get $2 i64.const 4604531861337669632 i64.sub - local.tee $8 + local.tee $9 i64.const -4503599627370496 i64.and i64.sub - local.tee $4 + local.tee $6 i64.const 2147483648 i64.add i64.const -4294967296 i64.and f64.reinterpret_i64 - local.tee $7 - local.get $8 + local.tee $0 + local.get $9 i64.const 45 i64.shr_u i64.const 127 @@ -7737,12 +7740,12 @@ i32.add local.tee $11 f64.load - local.tee $0 + local.tee $1 f64.mul f64.const 1 f64.sub local.set $13 - local.get $8 + local.get $9 i64.const 52 i64.shr_s f64.convert_i64_s @@ -7752,15 +7755,15 @@ local.get $11 f64.load offset=16 f64.add - local.tee $18 + local.tee $8 local.get $13 - local.get $4 + local.get $6 f64.reinterpret_i64 - local.get $7 - f64.sub local.get $0 + f64.sub + local.get $1 f64.mul - local.tee $5 + local.tee $18 f64.add local.tee $10 f64.add @@ -7769,7 +7772,7 @@ local.get $10 f64.const -0.5 f64.mul - local.tee $9 + local.tee $4 f64.mul local.set $16 local.get $15 @@ -7777,7 +7780,7 @@ local.get $13 f64.const -0.5 f64.mul - local.tee $7 + local.tee $1 f64.mul local.tee $0 f64.add @@ -7789,15 +7792,15 @@ local.get $11 f64.load offset=24 f64.add - local.get $18 + local.get $8 local.get $15 f64.sub local.get $10 f64.add f64.add - local.get $5 - local.get $9 - local.get $7 + local.get $18 + local.get $4 + local.get $1 f64.add f64.mul f64.add @@ -7835,42 +7838,42 @@ f64.add local.tee $0 f64.add - local.tee $9 + local.tee $8 f64.sub local.get $0 f64.add global.set $~lib/util/math/log_tail block $~lib/util/math/exp_inline|inlined.0 (result f64) - local.get $6 + local.get $7 i64.const -134217728 i64.and f64.reinterpret_i64 local.tee $0 - local.get $9 + local.get $8 i64.reinterpret_f64 i64.const -134217728 i64.and f64.reinterpret_i64 - local.tee $7 + local.tee $1 f64.mul - local.set $5 - local.get $1 + local.set $4 + local.get $5 local.get $0 f64.sub - local.get $7 + local.get $1 f64.mul + local.get $5 + local.get $8 local.get $1 - local.get $9 - local.get $7 f64.sub global.get $~lib/util/math/log_tail f64.add f64.mul f64.add local.set $1 - local.get $5 + local.get $4 i64.reinterpret_f64 - local.tee $4 + local.tee $6 i64.const 52 i64.shr_u i32.wrap_i64 @@ -7893,7 +7896,7 @@ i32.ge_u br_if $~lib/util/math/exp_inline|inlined.0 drop - local.get $4 + local.get $6 i64.const 63 i64.shr_u i32.wrap_i64 @@ -7920,14 +7923,14 @@ i32.const 0 local.set $3 end - local.get $5 + local.get $4 f64.const 184.6649652337873 f64.mul f64.const 6755399441055744 f64.add local.tee $0 i64.reinterpret_f64 - local.tee $8 + local.tee $9 i64.const 127 i64.and i64.const 1 @@ -7941,13 +7944,13 @@ i64.load offset=8 local.get $12 i64.extend_i32_u - local.get $8 + local.get $9 i64.add i64.const 45 i64.shl i64.add - local.set $4 - local.get $5 + local.set $6 + local.get $4 local.get $0 f64.const 6755399441055744 f64.sub @@ -7992,12 +7995,12 @@ i32.eqz if block $~lib/util/math/specialcase|inlined.1 (result f64) - local.get $8 + local.get $9 i64.const 2147483648 i64.and i64.eqz if - local.get $4 + local.get $6 i64.const 4544132024016830464 i64.sub f64.reinterpret_i64 @@ -8010,64 +8013,64 @@ f64.mul br $~lib/util/math/specialcase|inlined.1 end - local.get $4 + local.get $6 i64.const 4602678819172646912 i64.add - local.tee $4 + local.tee $6 f64.reinterpret_i64 - local.tee $9 - local.get $9 + local.tee $4 + local.get $4 local.get $0 f64.mul f64.add - local.tee $5 + local.tee $8 f64.abs f64.const 1 f64.lt if (result f64) f64.const 1 - local.get $5 + local.get $8 f64.copysign - local.tee $7 - local.get $5 + local.tee $5 + local.get $8 f64.add local.tee $1 - local.get $7 + local.get $5 local.get $1 f64.sub - local.get $5 + local.get $8 f64.add - local.get $9 - local.get $5 + local.get $4 + local.get $8 f64.sub - local.get $9 + local.get $4 local.get $0 f64.mul f64.add f64.add f64.add - local.get $7 + local.get $5 f64.sub - local.tee $5 + local.tee $8 f64.const 0 f64.eq if (result f64) - local.get $4 + local.get $6 i64.const -9223372036854775808 i64.and f64.reinterpret_i64 else - local.get $5 + local.get $8 end else - local.get $5 + local.get $8 end f64.const 2.2250738585072014e-308 f64.mul end br $~lib/util/math/exp_inline|inlined.0 end - local.get $4 + local.get $6 f64.reinterpret_i64 local.tee $1 local.get $1 @@ -8075,7 +8078,9 @@ f64.mul f64.add end + local.set $0 end + local.get $0 ) (func $std/math/test_pow (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 @@ -8097,13 +8102,13 @@ ) (func $~lib/math/NativeMathf.pow (param $0 f32) (param $1 f32) (result f32) (local $2 i32) - (local $3 f32) - (local $4 i32) - (local $5 f64) - (local $6 i32) - (local $7 f64) - (local $8 i32) - (local $9 i64) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i64) + (local $7 i32) + (local $8 f64) + (local $9 f64) local.get $1 f32.abs f32.const 2 @@ -8158,18 +8163,17 @@ end block $~lib/util/math/powf_lut|inlined.0 local.get $1 - local.tee $3 i32.reinterpret_f32 - local.tee $4 + local.tee $5 i32.const 1 i32.shl i32.const 1 i32.sub i32.const -16777217 i32.ge_u - local.tee $6 + local.tee $3 local.get $0 - local.tee $1 + local.tee $4 i32.reinterpret_f32 local.tee $2 i32.const 8388608 @@ -8178,11 +8182,11 @@ i32.ge_u i32.or if - local.get $6 + local.get $3 if f32.const 1 local.set $0 - local.get $4 + local.get $5 i32.const 1 i32.shl i32.eqz @@ -8193,12 +8197,12 @@ i32.const 1065353216 i32.eq br_if $~lib/util/math/powf_lut|inlined.0 + local.get $4 local.get $1 - local.get $3 f32.add local.set $0 i32.const 1 - local.get $4 + local.get $5 i32.const 1 i32.shl i32.const -16777216 @@ -8220,7 +8224,7 @@ br_if $~lib/util/math/powf_lut|inlined.0 f32.const 0 local.set $0 - local.get $4 + local.get $5 i32.const 31 i32.shr_u i32.eqz @@ -8231,8 +8235,8 @@ i32.lt_u i32.eq br_if $~lib/util/math/powf_lut|inlined.0 - local.get $3 - local.get $3 + local.get $1 + local.get $1 f32.mul local.set $0 br $~lib/util/math/powf_lut|inlined.0 @@ -8246,8 +8250,8 @@ i32.ge_u if f32.const 1 - local.get $1 - local.get $1 + local.get $4 + local.get $4 f32.mul local.tee $0 f32.neg @@ -8258,7 +8262,7 @@ if (result i32) block $~lib/util/math/checkintf|inlined.0 (result i32) i32.const 0 - local.get $4 + local.get $5 i32.const 23 i32.shr_u i32.const 255 @@ -8283,13 +8287,13 @@ local.tee $2 i32.const 1 i32.sub - local.get $4 + local.get $5 i32.and br_if $~lib/util/math/checkintf|inlined.0 drop i32.const 1 local.get $2 - local.get $4 + local.get $5 i32.and br_if $~lib/util/math/checkintf|inlined.0 drop @@ -8304,7 +8308,7 @@ local.tee $0 f32.div local.get $0 - local.get $4 + local.get $5 i32.const 31 i32.shr_u select @@ -8315,8 +8319,8 @@ i32.const 31 i32.shr_u if - local.get $1 - local.get $1 + local.get $4 + local.get $4 f32.sub local.tee $0 local.get $0 @@ -8324,18 +8328,19 @@ local.set $0 block $~lib/util/math/checkintf|inlined.1 (result i32) i32.const 0 - local.get $4 + local.get $5 + local.tee $3 i32.const 23 i32.shr_u i32.const 255 i32.and - local.tee $6 + local.tee $5 i32.const 127 i32.lt_u br_if $~lib/util/math/checkintf|inlined.1 drop i32.const 2 - local.get $6 + local.get $5 i32.const 150 i32.gt_u br_if $~lib/util/math/checkintf|inlined.1 @@ -8343,34 +8348,34 @@ i32.const 0 i32.const 1 i32.const 150 - local.get $6 + local.get $5 i32.sub i32.shl - local.tee $6 + local.tee $5 i32.const 1 i32.sub - local.get $4 + local.get $3 i32.and br_if $~lib/util/math/checkintf|inlined.1 drop i32.const 1 - local.get $4 - local.get $6 + local.get $3 + local.get $5 i32.and br_if $~lib/util/math/checkintf|inlined.1 drop i32.const 2 end - local.tee $6 + local.tee $5 i32.eqz br_if $~lib/util/math/powf_lut|inlined.0 i32.const 65536 i32.const 0 - local.get $6 + local.get $5 i32.const 1 i32.eq select - local.set $8 + local.set $7 local.get $2 i32.const 2147483647 i32.and @@ -8380,7 +8385,7 @@ i32.const 8388608 i32.lt_u if (result i32) - local.get $1 + local.get $4 f32.const 8388608 f32.mul i32.reinterpret_f32 @@ -8397,14 +8402,14 @@ local.get $2 i32.const 1060306944 i32.sub - local.tee $4 + local.tee $5 i32.const -8388608 i32.and - local.tee $6 + local.tee $3 i32.sub f32.reinterpret_i32 f64.promote_f32 - local.get $4 + local.get $5 i32.const 19 i32.shr_u i32.const 15 @@ -8413,48 +8418,48 @@ i32.shl i32.const 10016 i32.add - local.tee $4 + local.tee $5 f64.load f64.mul f64.const 1 f64.sub - local.tee $5 - local.get $5 + local.tee $9 + local.get $9 f64.mul - local.set $7 - local.get $3 + local.set $8 + local.get $1 f64.promote_f32 - local.get $5 + local.get $9 f64.const 0.288457581109214 f64.mul f64.const -0.36092606229713164 f64.add - local.get $7 - local.get $7 + local.get $8 + local.get $8 f64.mul f64.mul - local.get $5 + local.get $9 f64.const 1.4426950408774342 f64.mul - local.get $4 + local.get $5 f64.load offset=8 - local.get $6 + local.get $3 i32.const 23 i32.shr_s f64.convert_i32_s f64.add f64.add - local.get $5 + local.get $9 f64.const 0.480898481472577 f64.mul f64.const -0.7213474675006291 f64.add - local.get $7 + local.get $8 f64.mul f64.add f64.add f64.mul - local.tee $5 + local.tee $9 i64.reinterpret_f64 i64.const 47 i64.shr_u @@ -8463,26 +8468,26 @@ i64.const 32959 i64.ge_u if - local.get $5 + local.get $9 f64.const 127.99999995700433 f64.gt if f32.const -1584563250285286751870879e5 f32.const 1584563250285286751870879e5 - local.get $8 + local.get $7 select f32.const 1584563250285286751870879e5 f32.mul local.set $0 br $~lib/util/math/powf_lut|inlined.0 end - local.get $5 + local.get $9 f64.const -150 f64.le if f32.const -2.524354896707238e-29 f32.const 2.524354896707238e-29 - local.get $8 + local.get $7 select f32.const 2.524354896707238e-29 f32.mul @@ -8490,33 +8495,33 @@ br $~lib/util/math/powf_lut|inlined.0 end end - local.get $5 + local.get $9 f64.const 211106232532992 f64.add - local.tee $7 + local.tee $8 i64.reinterpret_f64 - local.set $9 - local.get $5 - local.get $7 + local.set $6 + local.get $9 + local.get $8 f64.const 211106232532992 f64.sub f64.sub - local.tee $5 + local.tee $9 f64.const 0.6931471806916203 f64.mul f64.const 1 f64.add - local.get $5 + local.get $9 f64.const 0.05550361559341535 f64.mul f64.const 0.2402284522445722 f64.add - local.get $5 - local.get $5 + local.get $9 + local.get $9 f64.mul f64.mul f64.add - local.get $9 + local.get $6 i32.wrap_i64 i32.const 31 i32.and @@ -8525,9 +8530,9 @@ i32.const 7712 i32.add i64.load - local.get $8 + local.get $7 i64.extend_i32_u - local.get $9 + local.get $6 i64.add i64.const 47 i64.shl @@ -9248,32 +9253,32 @@ ) (func $~lib/math/NativeMath.sin (param $0 f64) (result f64) (local $1 f64) - (local $2 f64) + (local $2 i64) (local $3 f64) - (local $4 i32) + (local $4 f64) (local $5 i32) (local $6 i32) - (local $7 i64) + (local $7 i32) (local $8 f64) (local $9 f64) local.get $0 i64.reinterpret_f64 - local.tee $7 + local.tee $2 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $4 + local.tee $5 i32.const 31 i32.shr_u - local.set $5 - local.get $4 + local.set $6 + local.get $5 i32.const 2147483647 i32.and - local.tee $4 + local.tee $5 i32.const 1072243195 i32.le_u if - local.get $4 + local.get $5 i32.const 1045430272 i32.lt_u if @@ -9284,12 +9289,12 @@ local.get $0 local.get $0 f64.mul - local.tee $1 + local.tee $3 local.get $0 f64.mul - local.get $1 - local.get $1 - local.get $1 + local.get $3 + local.get $3 + local.get $3 f64.const 2.7557313707070068e-06 f64.mul f64.const -1.984126982985795e-04 @@ -9297,12 +9302,12 @@ f64.mul f64.const 0.00833333333332249 f64.add - local.get $1 - local.get $1 - local.get $1 + local.get $3 + local.get $3 + local.get $3 f64.mul f64.mul - local.get $1 + local.get $3 f64.const 1.58969099521155e-10 f64.mul f64.const -2.5050760253406863e-08 @@ -9316,7 +9321,7 @@ f64.add return end - local.get $4 + local.get $5 i32.const 2146435072 i32.ge_u if @@ -9326,32 +9331,32 @@ return end block $~lib/math/rempio2|inlined.1 (result i32) - local.get $7 + local.get $2 i64.const 32 i64.shr_u i32.wrap_i64 i32.const 2147483647 i32.and - local.tee $6 + local.tee $7 i32.const 1073928572 i32.lt_u if i32.const 1 - local.set $4 - local.get $5 + local.set $5 + local.get $6 if (result f64) local.get $0 f64.const 1.5707963267341256 f64.add - local.set $0 + local.set $3 i32.const -1 - local.set $4 - local.get $6 + local.set $5 + local.get $7 i32.const 1073291771 i32.ne if (result f64) - local.get $0 - local.get $0 + local.get $3 + local.get $3 f64.const 6.077100506506192e-11 f64.add local.tee $0 @@ -9359,14 +9364,14 @@ f64.const 6.077100506506192e-11 f64.add else - local.get $0 + local.get $3 f64.const 6.077100506303966e-11 f64.add - local.tee $1 + local.tee $3 f64.const 2.0222662487959506e-21 f64.add local.set $0 - local.get $1 + local.get $3 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -9376,13 +9381,13 @@ local.get $0 f64.const 1.5707963267341256 f64.sub - local.set $0 - local.get $6 + local.set $3 + local.get $7 i32.const 1073291771 i32.ne if (result f64) - local.get $0 - local.get $0 + local.get $3 + local.get $3 f64.const 6.077100506506192e-11 f64.sub local.tee $0 @@ -9390,14 +9395,14 @@ f64.const 6.077100506506192e-11 f64.sub else - local.get $0 + local.get $3 f64.const 6.077100506303966e-11 f64.sub - local.tee $1 + local.tee $3 f64.const 2.0222662487959506e-21 f64.sub local.set $0 - local.get $1 + local.get $3 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -9407,31 +9412,31 @@ local.get $0 global.set $~lib/math/rempio2_y0 global.set $~lib/math/rempio2_y1 - local.get $4 + local.get $5 br $~lib/math/rempio2|inlined.1 end - local.get $6 + local.get $7 i32.const 1094263291 i32.lt_u if - local.get $6 + local.get $7 i32.const 20 i32.shr_u - local.tee $5 + local.tee $6 local.get $0 local.get $0 f64.const 0.6366197723675814 f64.mul f64.nearest - local.tee $3 + local.tee $4 f64.const 1.5707963267341256 f64.mul f64.sub local.tee $0 - local.get $3 + local.get $4 f64.const 6.077100506506192e-11 f64.mul - local.tee $2 + local.tee $3 f64.sub local.tee $1 i64.reinterpret_f64 @@ -9446,25 +9451,25 @@ i32.const 16 i32.gt_u if - local.get $5 + local.get $4 + f64.const 2.0222662487959506e-21 + f64.mul local.get $0 - local.tee $1 - local.get $3 + local.get $0 + local.get $4 f64.const 6.077100506303966e-11 f64.mul - local.tee $2 + local.tee $1 f64.sub local.tee $0 - local.get $3 - f64.const 2.0222662487959506e-21 - f64.mul - local.get $1 - local.get $0 f64.sub - local.get $2 + local.get $1 f64.sub f64.sub - local.tee $2 + local.set $3 + local.get $6 + local.get $0 + local.get $3 f64.sub local.tee $1 i64.reinterpret_f64 @@ -9478,66 +9483,68 @@ i32.sub i32.const 49 i32.gt_u - if + if (result f64) + local.get $4 + f64.const 8.4784276603689e-32 + f64.mul local.get $0 - local.tee $1 - local.get $3 + local.get $0 + local.get $4 f64.const 2.0222662487111665e-21 f64.mul - local.tee $2 + local.tee $1 f64.sub local.tee $0 - local.get $3 - f64.const 8.4784276603689e-32 - f64.mul - local.get $1 - local.get $0 f64.sub - local.get $2 + local.get $1 f64.sub f64.sub - local.tee $2 + local.set $3 + local.get $0 + local.get $3 f64.sub - local.set $1 + else + local.get $1 end + local.set $1 end local.get $1 global.set $~lib/math/rempio2_y0 local.get $0 local.get $1 f64.sub - local.get $2 + local.get $3 f64.sub global.set $~lib/math/rempio2_y1 - local.get $3 + local.get $4 i32.trunc_f64_s br $~lib/math/rempio2|inlined.1 end i32.const 0 - local.get $7 + local.get $2 call $~lib/math/pio2_large_quot - local.tee $4 + local.tee $5 i32.sub - local.get $4 local.get $5 + local.get $6 select end - local.set $5 + local.set $6 global.get $~lib/math/rempio2_y0 - local.set $1 - global.get $~lib/math/rempio2_y1 local.set $3 - local.get $5 + global.get $~lib/math/rempio2_y1 + local.set $4 + local.get $6 i32.const 1 i32.and if (result f64) - local.get $1 - local.get $1 + local.get $3 + local.get $3 f64.mul local.tee $0 local.get $0 f64.mul - local.set $2 + local.set $1 f64.const 1 local.get $0 f64.const 0.5 @@ -9562,8 +9569,8 @@ f64.const 0.0416666666666666 f64.add f64.mul - local.get $2 - local.get $2 + local.get $1 + local.get $1 f64.mul local.get $0 local.get $0 @@ -9577,26 +9584,26 @@ f64.mul f64.add f64.mul - local.get $1 local.get $3 + local.get $4 f64.mul f64.sub f64.add f64.add else - local.get $1 - local.get $1 + local.get $3 + local.get $3 f64.mul local.tee $0 - local.get $1 + local.get $3 f64.mul - local.set $2 - local.get $1 - local.get $0 + local.set $1 local.get $3 + local.get $0 + local.get $4 f64.const 0.5 f64.mul - local.get $2 + local.get $1 local.get $0 local.get $0 f64.const 2.7557313707070068e-06 @@ -9621,9 +9628,9 @@ f64.mul f64.sub f64.mul - local.get $3 + local.get $4 f64.sub - local.get $2 + local.get $1 f64.const -0.16666666666666632 f64.mul f64.sub @@ -9632,37 +9639,36 @@ local.tee $0 f64.neg local.get $0 - local.get $5 + local.get $6 i32.const 2 i32.and select ) (func $~lib/math/NativeMathf.sin (param $0 f32) (result f32) - (local $1 f64) - (local $2 f64) - (local $3 i32) + (local $1 i32) + (local $2 i32) + (local $3 i64) (local $4 i64) - (local $5 f64) - (local $6 i32) - (local $7 i64) - (local $8 i32) - (local $9 i64) - (local $10 i64) + (local $5 i32) + (local $6 i64) + (local $7 f64) + (local $8 f64) + (local $9 f64) block $folding-inner0 local.get $0 i32.reinterpret_f32 - local.tee $3 + local.tee $1 i32.const 31 i32.shr_u - local.set $6 - local.get $3 + local.set $5 + local.get $1 i32.const 2147483647 i32.and - local.tee $3 + local.tee $2 i32.const 1061752794 i32.le_u if - local.get $3 + local.get $2 i32.const 964689920 i32.lt_u if @@ -9671,49 +9677,49 @@ end local.get $0 f64.promote_f32 - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 f64.mul - local.tee $1 - local.get $2 + local.tee $9 + local.get $8 f64.mul - local.set $5 + local.set $7 br $folding-inner0 end - local.get $3 + local.get $2 i32.const 1081824209 i32.le_u if - local.get $3 + local.get $2 i32.const 1075235811 i32.le_u if - local.get $6 + local.get $5 if (result f32) local.get $0 f64.promote_f32 f64.const 1.5707963267948966 f64.add - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.set $2 - local.get $1 + local.set $8 + local.get $9 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $2 + local.get $8 f64.const 0.04166662332373906 f64.mul f64.add - local.get $2 - local.get $1 + local.get $8 + local.get $9 f64.mul - local.get $1 + local.get $9 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -9727,26 +9733,26 @@ f64.promote_f32 f64.const 1.5707963267948966 f64.sub - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.set $2 - local.get $1 + local.set $8 + local.get $9 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $2 + local.get $8 f64.const 0.04166662332373906 f64.mul f64.add - local.get $2 - local.get $1 + local.get $8 + local.get $9 f64.mul - local.get $1 + local.get $9 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -9759,58 +9765,58 @@ end local.get $0 f64.promote_f32 - local.tee $1 + local.tee $9 f64.const 3.141592653589793 f64.add - local.get $1 + local.get $9 f64.const 3.141592653589793 f64.sub - local.get $6 + local.get $5 select f64.neg - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 f64.mul - local.tee $1 - local.get $2 + local.tee $9 + local.get $8 f64.mul - local.set $5 + local.set $7 br $folding-inner0 end - local.get $3 + local.get $2 i32.const 1088565717 i32.le_u if - local.get $3 + local.get $2 i32.const 1085271519 i32.le_u if - local.get $6 + local.get $5 if (result f32) local.get $0 f64.promote_f32 f64.const 4.71238898038469 f64.add - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.set $2 - local.get $1 + local.set $8 + local.get $9 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $2 + local.get $8 f64.const 0.04166662332373906 f64.mul f64.add - local.get $2 - local.get $1 + local.get $8 + local.get $9 f64.mul - local.get $1 + local.get $9 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -9823,26 +9829,26 @@ f64.promote_f32 f64.const 4.71238898038469 f64.sub - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.set $2 - local.get $1 + local.set $8 + local.get $9 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $2 + local.get $8 f64.const 0.04166662332373906 f64.mul f64.add - local.get $2 - local.get $1 + local.get $8 + local.get $9 f64.mul - local.get $1 + local.get $9 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -9856,24 +9862,24 @@ end local.get $0 f64.promote_f32 - local.tee $1 + local.tee $9 f64.const 6.283185307179586 f64.add - local.get $1 + local.get $9 f64.const 6.283185307179586 f64.sub - local.get $6 + local.get $5 select - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 f64.mul - local.tee $1 - local.get $2 + local.tee $9 + local.get $8 f64.mul - local.set $5 + local.set $7 br $folding-inner0 end - local.get $3 + local.get $2 i32.const 2139095040 i32.ge_u if @@ -9883,154 +9889,150 @@ return end block $~lib/math/rempio2f|inlined.1 (result i32) - local.get $3 + local.get $2 + local.tee $1 i32.const 1305022427 i32.lt_u if local.get $0 f64.promote_f32 - local.tee $2 + local.tee $8 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $1 - local.get $2 - local.get $1 + local.set $9 + local.get $8 + local.get $9 f64.const 1.5707963109016418 f64.mul f64.sub - local.get $1 + local.get $9 f64.const 1.5893254773528196e-08 f64.mul f64.sub global.set $~lib/math/rempio2f_y - local.get $1 + local.get $9 i32.trunc_f64_s br $~lib/math/rempio2f|inlined.1 end - local.get $3 + local.get $1 i32.const 23 i32.shr_s i32.const 152 i32.sub - local.tee $8 + local.tee $2 i32.const 63 i32.and i64.extend_i32_s - local.set $4 - local.get $8 + local.set $6 + f64.const 8.515303950216386e-20 + local.get $0 + f64.promote_f32 + f64.copysign + local.get $1 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.tee $3 + local.get $2 i32.const 6 i32.shr_s i32.const 3 i32.shl i32.const 5632 i32.add - local.tee $8 + local.tee $2 i64.load - local.set $9 - local.get $8 + local.get $6 + i64.shl + local.get $2 i64.load offset=8 - local.set $7 - local.get $4 + local.tee $4 + i64.const 64 + local.get $6 + i64.sub + i64.shr_u + i64.or + i64.mul + local.get $6 i64.const 32 i64.gt_u if (result i64) - local.get $7 local.get $4 + local.get $6 i64.const 32 i64.sub i64.shl - local.get $8 + local.get $2 i64.load offset=16 i64.const 96 - local.get $4 + local.get $6 i64.sub i64.shr_u i64.or else - local.get $7 - i64.const 32 local.get $4 + i64.const 32 + local.get $6 i64.sub i64.shr_u end - local.set $10 - f64.const 8.515303950216386e-20 - local.get $0 - f64.promote_f32 - f64.copysign - local.get $9 - local.get $4 - i64.shl - local.get $7 - i64.const 64 - local.get $4 - i64.sub - i64.shr_u - i64.or local.get $3 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.tee $4 - i64.mul - local.get $4 - local.get $10 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $4 + local.tee $6 i64.const 2 i64.shl - local.tee $7 + local.tee $4 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y i32.const 0 - local.get $4 + local.get $6 i64.const 62 i64.shr_u - local.get $7 + local.get $4 i64.const 63 i64.shr_u i64.add i32.wrap_i64 - local.tee $3 + local.tee $1 i32.sub - local.get $3 - local.get $6 + local.get $1 + local.get $5 select end - local.set $3 - global.get $~lib/math/rempio2f_y local.set $1 - local.get $3 + global.get $~lib/math/rempio2f_y + local.set $9 + local.get $1 i32.const 1 i32.and if (result f32) - local.get $1 - local.get $1 + local.get $9 + local.get $9 f64.mul - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.set $2 - local.get $1 + local.set $8 + local.get $9 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $2 + local.get $8 f64.const 0.04166662332373906 f64.mul f64.add - local.get $2 - local.get $1 + local.get $8 + local.get $9 f64.mul - local.get $1 + local.get $9 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -10039,27 +10041,27 @@ f64.add f32.demote_f64 else - local.get $1 - local.get $1 - local.get $1 + local.get $9 + local.get $9 + local.get $9 f64.mul - local.tee $2 - local.get $1 + local.tee $8 + local.get $9 f64.mul - local.tee $1 - local.get $2 + local.tee $7 + local.get $8 f64.const 0.008333329385889463 f64.mul f64.const -0.16666666641626524 f64.add f64.mul f64.add - local.get $1 - local.get $2 - local.get $2 + local.get $7 + local.get $8 + local.get $8 f64.mul f64.mul - local.get $2 + local.get $8 f64.const 2.718311493989822e-06 f64.mul f64.const -1.9839334836096632e-04 @@ -10071,27 +10073,27 @@ local.tee $0 f32.neg local.get $0 - local.get $3 + local.get $1 i32.const 2 i32.and select return end - local.get $2 - local.get $5 - local.get $1 + local.get $8 + local.get $7 + local.get $9 f64.const 0.008333329385889463 f64.mul f64.const -0.16666666641626524 f64.add f64.mul f64.add - local.get $5 - local.get $1 - local.get $1 + local.get $7 + local.get $9 + local.get $9 f64.mul f64.mul - local.get $1 + local.get $9 f64.const 2.718311493989822e-06 f64.mul f64.const -1.9839334836096632e-04 @@ -10414,29 +10416,30 @@ local.get $1 return end - f64.const -1 local.get $1 - f64.div - local.tee $5 i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 - local.tee $4 - local.get $5 - local.get $4 + local.set $4 + f64.const -1 local.get $1 + f64.div + local.tee $5 i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 local.tee $1 + local.get $5 + local.get $1 + local.get $4 f64.mul f64.const 1 f64.add - local.get $4 - local.get $3 local.get $1 + local.get $3 + local.get $4 local.get $0 f64.sub f64.sub @@ -10447,29 +10450,29 @@ ) (func $~lib/math/NativeMath.tan (param $0 f64) (result f64) (local $1 f64) - (local $2 f64) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) + (local $4 i64) + (local $5 i32) + (local $6 f64) (local $7 f64) local.get $0 i64.reinterpret_f64 - local.tee $5 + local.tee $4 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $3 + local.tee $2 i32.const 31 i32.shr_u - local.get $3 + local.get $2 i32.const 2147483647 i32.and - local.tee $3 + local.tee $2 i32.const 1072243195 i32.le_u if - local.get $3 + local.get $2 i32.const 1044381696 i32.lt_u if @@ -10482,7 +10485,7 @@ call $~lib/math/tan_kern return end - local.get $3 + local.get $2 i32.const 2146435072 i32.ge_u if @@ -10491,34 +10494,34 @@ f64.sub return end - local.set $3 + local.set $2 block $~lib/math/rempio2|inlined.2 - local.get $5 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 i32.const 2147483647 i32.and - local.tee $6 + local.tee $5 i32.const 1073928572 i32.lt_u if i32.const 1 - local.set $4 - local.get $3 + local.set $3 + local.get $2 if (result f64) local.get $0 f64.const 1.5707963267341256 f64.add - local.set $0 + local.set $1 i32.const -1 - local.set $4 - local.get $6 + local.set $3 + local.get $5 i32.const 1073291771 i32.ne if (result f64) - local.get $0 - local.get $0 + local.get $1 + local.get $1 f64.const 6.077100506506192e-11 f64.add local.tee $0 @@ -10526,7 +10529,7 @@ f64.const 6.077100506506192e-11 f64.add else - local.get $0 + local.get $1 f64.const 6.077100506303966e-11 f64.add local.tee $1 @@ -10543,13 +10546,13 @@ local.get $0 f64.const 1.5707963267341256 f64.sub - local.set $0 - local.get $6 + local.set $1 + local.get $5 i32.const 1073291771 i32.ne if (result f64) - local.get $0 - local.get $0 + local.get $1 + local.get $1 f64.const 6.077100506506192e-11 f64.sub local.tee $0 @@ -10557,7 +10560,7 @@ f64.const 6.077100506506192e-11 f64.sub else - local.get $0 + local.get $1 f64.const 6.077100506303966e-11 f64.sub local.tee $1 @@ -10576,30 +10579,30 @@ global.set $~lib/math/rempio2_y1 br $~lib/math/rempio2|inlined.2 end - local.get $6 + local.get $5 i32.const 1094263291 i32.lt_u if - local.get $6 + local.get $5 i32.const 20 i32.shr_u - local.tee $4 + local.tee $3 local.get $0 local.get $0 f64.const 0.6366197723675814 f64.mul f64.nearest - local.tee $7 + local.tee $6 f64.const 1.5707963267341256 f64.mul f64.sub local.tee $0 - local.get $7 + local.get $6 f64.const 6.077100506506192e-11 f64.mul - local.tee $1 + local.tee $7 f64.sub - local.tee $2 + local.tee $1 i64.reinterpret_f64 i64.const 32 i64.shr_u @@ -10612,27 +10615,27 @@ i32.const 16 i32.gt_u if - local.get $4 + local.get $6 + f64.const 2.0222662487959506e-21 + f64.mul local.get $0 - local.tee $1 - local.get $7 + local.get $0 + local.get $6 f64.const 6.077100506303966e-11 f64.mul - local.tee $2 + local.tee $7 f64.sub local.tee $0 + f64.sub local.get $7 - f64.const 2.0222662487959506e-21 - f64.mul - local.get $1 - local.get $0 f64.sub - local.get $2 f64.sub + local.set $7 + local.get $3 + local.get $0 + local.get $7 f64.sub local.tee $1 - f64.sub - local.tee $2 i64.reinterpret_f64 i64.const 32 i64.shr_u @@ -10644,56 +10647,58 @@ i32.sub i32.const 49 i32.gt_u - if + if (result f64) + local.get $6 + f64.const 8.4784276603689e-32 + f64.mul local.get $0 - local.tee $1 - local.get $7 + local.get $0 + local.get $6 f64.const 2.0222662487111665e-21 f64.mul - local.tee $2 + local.tee $7 f64.sub local.tee $0 - local.get $7 - f64.const 8.4784276603689e-32 - f64.mul - local.get $1 - local.get $0 f64.sub - local.get $2 + local.get $7 f64.sub f64.sub - local.tee $1 + local.set $7 + local.get $0 + local.get $7 f64.sub - local.set $2 + else + local.get $1 end + local.set $1 end - local.get $2 + local.get $1 global.set $~lib/math/rempio2_y0 local.get $0 - local.get $2 - f64.sub local.get $1 f64.sub - global.set $~lib/math/rempio2_y1 local.get $7 + f64.sub + global.set $~lib/math/rempio2_y1 + local.get $6 i32.trunc_f64_s - local.set $4 + local.set $3 br $~lib/math/rempio2|inlined.2 end i32.const 0 - local.get $5 + local.get $4 call $~lib/math/pio2_large_quot - local.tee $4 + local.tee $3 i32.sub - local.get $4 local.get $3 + local.get $2 select - local.set $4 + local.set $3 end global.get $~lib/math/rempio2_y0 global.get $~lib/math/rempio2_y1 i32.const 1 - local.get $4 + local.get $3 i32.const 1 i32.and i32.const 1 @@ -10702,32 +10707,31 @@ call $~lib/math/tan_kern ) (func $~lib/math/NativeMathf.tan (param $0 f32) (result f32) - (local $1 f64) - (local $2 f64) - (local $3 f64) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i64) - (local $8 i32) - (local $9 i64) - (local $10 i64) + (local $1 i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i32) + (local $6 i64) + (local $7 f64) + (local $8 f64) + (local $9 f64) block $folding-inner1 block $folding-inner0 local.get $0 i32.reinterpret_f32 - local.tee $4 + local.tee $1 i32.const 31 i32.shr_u - local.set $6 - local.get $4 + local.set $5 + local.get $1 i32.const 2147483647 i32.and - local.tee $4 + local.tee $2 i32.const 1061752794 i32.le_u if - local.get $4 + local.get $2 i32.const 964689920 i32.lt_u if @@ -10736,112 +10740,112 @@ end local.get $0 f64.promote_f32 - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 f64.mul - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.set $3 + local.set $7 br $folding-inner0 end - local.get $4 + local.get $2 i32.const 1081824209 i32.le_u if - local.get $4 + local.get $2 i32.const 1075235811 i32.le_u if local.get $0 f64.promote_f32 - local.tee $1 + local.tee $9 f64.const 1.5707963267948966 f64.add - local.get $1 + local.get $9 f64.const 1.5707963267948966 f64.sub - local.get $6 + local.get $5 select - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 f64.mul - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.set $3 + local.set $7 br $folding-inner1 else local.get $0 f64.promote_f32 - local.tee $1 + local.tee $9 f64.const 3.141592653589793 f64.add - local.get $1 + local.get $9 f64.const 3.141592653589793 f64.sub - local.get $6 + local.get $5 select - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 f64.mul - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.set $3 + local.set $7 br $folding-inner0 end unreachable end - local.get $4 + local.get $2 i32.const 1088565717 i32.le_u if - local.get $4 + local.get $2 i32.const 1085271519 i32.le_u if local.get $0 f64.promote_f32 - local.tee $1 + local.tee $9 f64.const 4.71238898038469 f64.add - local.get $1 + local.get $9 f64.const 4.71238898038469 f64.sub - local.get $6 + local.get $5 select - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 f64.mul - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.set $3 + local.set $7 br $folding-inner1 else local.get $0 f64.promote_f32 - local.tee $1 + local.tee $9 f64.const 6.283185307179586 f64.add - local.get $1 + local.get $9 f64.const 6.283185307179586 f64.sub - local.get $6 + local.get $5 select - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 f64.mul - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.set $3 + local.set $7 br $folding-inner0 end unreachable end - local.get $4 + local.get $2 i32.const 2139095040 i32.ge_u if @@ -10851,159 +10855,155 @@ return end block $~lib/math/rempio2f|inlined.2 (result i32) - local.get $4 + local.get $2 + local.tee $1 i32.const 1305022427 i32.lt_u if local.get $0 f64.promote_f32 - local.tee $2 + local.tee $8 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $1 - local.get $2 - local.get $1 + local.set $9 + local.get $8 + local.get $9 f64.const 1.5707963109016418 f64.mul f64.sub - local.get $1 + local.get $9 f64.const 1.5893254773528196e-08 f64.mul f64.sub global.set $~lib/math/rempio2f_y - local.get $1 + local.get $9 i32.trunc_f64_s br $~lib/math/rempio2f|inlined.2 end - local.get $4 + local.get $1 i32.const 23 i32.shr_s i32.const 152 i32.sub - local.tee $8 + local.tee $2 i32.const 63 i32.and i64.extend_i32_s - local.set $5 - local.get $8 + local.set $6 + f64.const 8.515303950216386e-20 + local.get $0 + f64.promote_f32 + f64.copysign + local.get $1 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.tee $3 + local.get $2 i32.const 6 i32.shr_s i32.const 3 i32.shl i32.const 5632 i32.add - local.tee $8 + local.tee $2 i64.load - local.set $9 - local.get $8 + local.get $6 + i64.shl + local.get $2 i64.load offset=8 - local.set $7 - local.get $5 + local.tee $4 + i64.const 64 + local.get $6 + i64.sub + i64.shr_u + i64.or + i64.mul + local.get $6 i64.const 32 i64.gt_u if (result i64) - local.get $7 - local.get $5 + local.get $4 + local.get $6 i64.const 32 i64.sub i64.shl - local.get $8 + local.get $2 i64.load offset=16 i64.const 96 - local.get $5 + local.get $6 i64.sub i64.shr_u i64.or else - local.get $7 + local.get $4 i64.const 32 - local.get $5 + local.get $6 i64.sub i64.shr_u end - local.set $10 - f64.const 8.515303950216386e-20 - local.get $0 - f64.promote_f32 - f64.copysign - local.get $9 - local.get $5 - i64.shl - local.get $7 - i64.const 64 - local.get $5 - i64.sub - i64.shr_u - i64.or - local.get $4 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.tee $5 - i64.mul - local.get $5 - local.get $10 + local.get $3 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $5 + local.tee $6 i64.const 2 i64.shl - local.tee $7 + local.tee $4 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y i32.const 0 - local.get $5 + local.get $6 i64.const 62 i64.shr_u - local.get $7 + local.get $4 i64.const 63 i64.shr_u i64.add i32.wrap_i64 - local.tee $4 + local.tee $1 i32.sub - local.get $4 - local.get $6 + local.get $1 + local.get $5 select end - local.set $4 + local.set $1 global.get $~lib/math/rempio2f_y - local.tee $2 - local.get $2 + local.tee $8 + local.get $8 f64.mul - local.tee $1 - local.get $1 + local.tee $9 + local.get $9 f64.mul - local.set $3 + local.set $7 f64.const -1 - local.get $2 - local.get $1 - local.get $2 + local.get $8 + local.get $9 + local.get $8 f64.mul - local.tee $2 - local.get $1 + local.tee $8 + local.get $9 f64.const 0.13339200271297674 f64.mul f64.const 0.3333313950307914 f64.add f64.mul f64.add - local.get $2 - local.get $3 + local.get $8 + local.get $7 f64.mul - local.get $1 + local.get $9 f64.const 0.024528318116654728 f64.mul f64.const 0.05338123784456704 f64.add - local.get $3 - local.get $1 + local.get $7 + local.get $9 f64.const 0.009465647849436732 f64.mul f64.const 0.002974357433599673 @@ -11012,38 +11012,38 @@ f64.add f64.mul f64.add - local.tee $1 + local.tee $9 f64.div + local.get $9 local.get $1 - local.get $4 i32.const 1 i32.and select f32.demote_f64 return end - local.get $2 - local.get $1 - local.get $2 + local.get $8 + local.get $9 + local.get $8 f64.mul - local.tee $2 - local.get $1 + local.tee $8 + local.get $9 f64.const 0.13339200271297674 f64.mul f64.const 0.3333313950307914 f64.add f64.mul f64.add - local.get $2 - local.get $3 + local.get $8 + local.get $7 f64.mul - local.get $1 + local.get $9 f64.const 0.024528318116654728 f64.mul f64.const 0.05338123784456704 f64.add - local.get $3 - local.get $1 + local.get $7 + local.get $9 f64.const 0.009465647849436732 f64.mul f64.const 0.002974357433599673 @@ -11056,28 +11056,28 @@ return end f64.const -1 - local.get $2 - local.get $1 - local.get $2 + local.get $8 + local.get $9 + local.get $8 f64.mul - local.tee $2 - local.get $1 + local.tee $8 + local.get $9 f64.const 0.13339200271297674 f64.mul f64.const 0.3333313950307914 f64.add f64.mul f64.add - local.get $2 - local.get $3 + local.get $8 + local.get $7 f64.mul - local.get $1 + local.get $9 f64.const 0.024528318116654728 f64.mul f64.const 0.05338123784456704 f64.add - local.get $3 - local.get $1 + local.get $7 + local.get $9 f64.const 0.009465647849436732 f64.mul f64.const 0.002974357433599673 @@ -11256,32 +11256,33 @@ (func $~lib/math/NativeMath.sincos (param $0 f64) (local $1 f64) (local $2 f64) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 f64) + (local $3 i64) + (local $4 f64) + (local $5 i32) + (local $6 i32) (local $7 f64) (local $8 i32) (local $9 f64) (local $10 f64) - (local $11 i64) + (local $11 f64) local.get $0 i64.reinterpret_f64 - local.tee $11 + local.tee $3 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $4 + local.tee $5 i32.const 31 i32.shr_u - local.get $4 + local.set $6 + local.get $5 i32.const 2147483647 i32.and - local.tee $4 + local.tee $5 i32.const 1072243195 i32.le_u if - local.get $4 + local.get $5 i32.const 1044816030 i32.lt_u if @@ -11294,17 +11295,17 @@ local.get $0 local.get $0 f64.mul - local.tee $5 - local.get $5 + local.tee $1 + local.get $1 f64.mul - local.set $7 + local.set $4 local.get $0 - local.get $5 + local.get $1 local.get $0 f64.mul - local.get $5 - local.get $5 - local.get $5 + local.get $1 + local.get $1 + local.get $1 f64.const 2.7557313707070068e-06 f64.mul f64.const -1.984126982985795e-04 @@ -11312,10 +11313,10 @@ f64.mul f64.const 0.00833333333332249 f64.add - local.get $5 - local.get $7 + local.get $1 + local.get $4 f64.mul - local.get $5 + local.get $1 f64.const 1.58969099521155e-10 f64.mul f64.const -2.5050760253406863e-08 @@ -11329,21 +11330,21 @@ f64.add global.set $~lib/math/NativeMath.sincos_sin f64.const 1 - local.get $5 + local.get $1 f64.const 0.5 f64.mul local.tee $2 f64.sub - local.tee $1 + local.tee $7 f64.const 1 - local.get $1 + local.get $7 f64.sub local.get $2 f64.sub - local.get $5 - local.get $5 - local.get $5 - local.get $5 + local.get $1 + local.get $1 + local.get $1 + local.get $1 f64.const 2.480158728947673e-05 f64.mul f64.const -0.001388888888887411 @@ -11352,11 +11353,11 @@ f64.const 0.0416666666666666 f64.add f64.mul - local.get $7 - local.get $7 + local.get $4 + local.get $4 f64.mul - local.get $5 - local.get $5 + local.get $1 + local.get $1 f64.const -1.1359647557788195e-11 f64.mul f64.const 2.087572321298175e-09 @@ -11376,7 +11377,7 @@ global.set $~lib/math/NativeMath.sincos_cos return end - local.get $4 + local.get $5 i32.const 2139095040 i32.ge_u if @@ -11389,9 +11390,8 @@ global.set $~lib/math/NativeMath.sincos_cos return end - local.set $4 - block $~lib/math/rempio2|inlined.3 - local.get $11 + block $~lib/math/rempio2|inlined.3 (result i32) + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -11402,21 +11402,21 @@ i32.lt_u if i32.const 1 - local.set $3 - local.get $4 + local.set $5 + local.get $6 if (result f64) local.get $0 f64.const 1.5707963267341256 f64.add - local.set $0 + local.set $1 i32.const -1 - local.set $3 + local.set $5 local.get $8 i32.const 1073291771 i32.ne if (result f64) - local.get $0 - local.get $0 + local.get $1 + local.get $1 f64.const 6.077100506506192e-11 f64.add local.tee $0 @@ -11424,7 +11424,7 @@ f64.const 6.077100506506192e-11 f64.add else - local.get $0 + local.get $1 f64.const 6.077100506303966e-11 f64.add local.tee $1 @@ -11441,13 +11441,13 @@ local.get $0 f64.const 1.5707963267341256 f64.sub - local.set $0 + local.set $1 local.get $8 i32.const 1073291771 i32.ne if (result f64) - local.get $0 - local.get $0 + local.get $1 + local.get $1 f64.const 6.077100506506192e-11 f64.sub local.tee $0 @@ -11455,7 +11455,7 @@ f64.const 6.077100506506192e-11 f64.sub else - local.get $0 + local.get $1 f64.const 6.077100506303966e-11 f64.sub local.tee $1 @@ -11472,6 +11472,7 @@ local.get $0 global.set $~lib/math/rempio2_y0 global.set $~lib/math/rempio2_y1 + local.get $5 br $~lib/math/rempio2|inlined.3 end local.get $8 @@ -11481,18 +11482,18 @@ local.get $8 i32.const 20 i32.shr_u - local.tee $3 + local.tee $6 local.get $0 local.get $0 f64.const 0.6366197723675814 f64.mul f64.nearest - local.tee $7 + local.tee $4 f64.const 1.5707963267341256 f64.mul f64.sub local.tee $0 - local.get $7 + local.get $4 f64.const 6.077100506506192e-11 f64.mul local.tee $1 @@ -11510,25 +11511,26 @@ i32.const 16 i32.gt_u if - local.get $3 + local.get $4 + f64.const 2.0222662487959506e-21 + f64.mul local.get $0 local.tee $1 - local.get $7 + local.get $1 + local.get $4 f64.const 6.077100506303966e-11 f64.mul local.tee $2 f64.sub local.tee $0 - local.get $7 - f64.const 2.0222662487959506e-21 - f64.mul - local.get $1 - local.get $0 f64.sub local.get $2 f64.sub f64.sub - local.tee $1 + local.set $1 + local.get $6 + local.get $0 + local.get $1 f64.sub local.tee $2 i64.reinterpret_f64 @@ -11542,28 +11544,31 @@ i32.sub i32.const 49 i32.gt_u - if + if (result f64) + local.get $4 + f64.const 8.4784276603689e-32 + f64.mul local.get $0 local.tee $1 - local.get $7 + local.get $1 + local.get $4 f64.const 2.0222662487111665e-21 f64.mul local.tee $2 f64.sub local.tee $0 - local.get $7 - f64.const 8.4784276603689e-32 - f64.mul - local.get $1 - local.get $0 f64.sub local.get $2 f64.sub f64.sub - local.tee $1 + local.set $1 + local.get $0 + local.get $1 f64.sub - local.set $2 + else + local.get $2 end + local.set $2 end local.get $2 global.set $~lib/math/rempio2_y0 @@ -11573,41 +11578,40 @@ local.get $1 f64.sub global.set $~lib/math/rempio2_y1 - local.get $7 + local.get $4 i32.trunc_f64_s - local.set $3 br $~lib/math/rempio2|inlined.3 end i32.const 0 - local.get $11 + local.get $3 call $~lib/math/pio2_large_quot - local.tee $3 + local.tee $5 i32.sub - local.get $3 - local.get $4 + local.get $5 + local.get $6 select - local.set $3 end + local.set $6 global.get $~lib/math/rempio2_y0 - local.tee $9 - local.get $9 + local.tee $2 + local.get $2 f64.mul - local.tee $6 - local.get $6 + local.tee $1 + local.get $1 f64.mul - local.set $10 - local.get $9 - local.get $6 + local.set $9 + local.get $2 + local.get $1 global.get $~lib/math/rempio2_y1 - local.tee $5 + local.tee $7 f64.const 0.5 f64.mul - local.get $6 - local.get $9 + local.get $1 + local.get $2 f64.mul local.tee $0 - local.get $6 - local.get $6 + local.get $1 + local.get $1 f64.const 2.7557313707070068e-06 f64.mul f64.const -1.984126982985795e-04 @@ -11615,10 +11619,10 @@ f64.mul f64.const 0.00833333333332249 f64.add - local.get $6 - local.get $10 + local.get $1 + local.get $9 f64.mul - local.get $6 + local.get $1 f64.const 1.58969099521155e-10 f64.mul f64.const -2.5050760253406863e-08 @@ -11628,31 +11632,31 @@ f64.mul f64.sub f64.mul - local.get $5 + local.get $7 f64.sub local.get $0 f64.const -0.16666666666666632 f64.mul f64.sub f64.sub - local.tee $7 + local.tee $4 local.set $0 f64.const 1 - local.get $6 + local.get $1 f64.const 0.5 f64.mul - local.tee $2 + local.tee $10 f64.sub - local.tee $1 + local.tee $11 f64.const 1 - local.get $1 + local.get $11 f64.sub - local.get $2 + local.get $10 f64.sub - local.get $6 - local.get $6 - local.get $6 - local.get $6 + local.get $1 + local.get $1 + local.get $1 + local.get $1 f64.const 2.480158728947673e-05 f64.mul f64.const -0.001388888888887411 @@ -11661,11 +11665,11 @@ f64.const 0.0416666666666666 f64.add f64.mul - local.get $10 - local.get $10 + local.get $9 + local.get $9 f64.mul - local.get $6 - local.get $6 + local.get $1 + local.get $1 f64.const -1.1359647557788195e-11 f64.mul f64.const 2.087572321298175e-09 @@ -11676,24 +11680,24 @@ f64.mul f64.add f64.mul - local.get $9 - local.get $5 + local.get $2 + local.get $7 f64.mul f64.sub f64.add f64.add local.set $1 - local.get $3 + local.get $6 i32.const 1 i32.and if local.get $1 local.set $0 - local.get $7 + local.get $4 f64.neg local.set $1 end - local.get $3 + local.get $6 i32.const 2 i32.and if (result f64) diff --git a/tests/compiler/std/new.optimized.wat b/tests/compiler/std/new.optimized.wat index 111fb20cba..5079d78e9e 100644 --- a/tests/compiler/std/new.optimized.wat +++ b/tests/compiler/std/new.optimized.wat @@ -174,16 +174,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -195,7 +195,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -211,26 +211,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -371,17 +371,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index cb5c6c45d6..ba8ff9c7c8 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -233,16 +233,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1520 i32.load i32.gt_u @@ -254,7 +254,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1524 @@ -270,26 +270,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -430,17 +430,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index d494b1c1d7..c389f66592 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -172,16 +172,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1648 i32.load i32.gt_u @@ -193,7 +193,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1652 @@ -209,26 +209,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -388,17 +388,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1695,26 +1695,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $3 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $3 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -2834,7 +2834,7 @@ local.get $1 local.get $0 i32.load offset=8 - local.tee $9 + local.tee $8 local.get $2 i32.shr_u i32.gt_u @@ -2854,7 +2854,7 @@ end local.get $0 i32.load - local.set $7 + local.set $4 local.get $1 i32.const 8 local.get $1 @@ -2863,34 +2863,34 @@ select local.get $2 i32.shl - local.set $2 - block $__inlined_func$~lib/rt/itcms/__renew + local.set $1 + block $__inlined_func$~lib/rt/itcms/__renew (result i32) local.get $3 if (result i32) - local.get $9 + local.get $8 i32.const 1 i32.shl - local.tee $1 + local.tee $2 i32.const 1073741820 - local.get $1 + local.get $2 i32.const 1073741820 i32.lt_u select - local.tee $1 - local.get $2 + local.tee $2 + local.get $1 local.get $1 local.get $2 - i32.gt_u + i32.lt_u select else - local.get $2 + local.get $1 end local.tee $6 - local.get $7 - local.tee $1 + local.get $4 + local.tee $2 i32.const 20 i32.sub - local.tee $2 + local.tee $1 i32.load i32.const -4 i32.and @@ -2898,107 +2898,109 @@ i32.sub i32.le_u if - local.get $2 + local.get $1 local.get $6 i32.store offset=16 + local.get $2 br $__inlined_func$~lib/rt/itcms/__renew end local.get $6 - local.get $2 + local.get $1 i32.load offset=12 call $~lib/rt/itcms/__new + local.tee $9 local.set $3 local.get $6 - local.get $2 + local.get $1 i32.load offset=16 - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 local.get $6 i32.gt_u select - local.set $8 + local.set $7 block $~lib/util/memory/memmove|inlined.0 local.get $3 - local.tee $2 - local.get $1 + local.get $2 + local.tee $1 i32.eq br_if $~lib/util/memory/memmove|inlined.0 local.get $1 - local.get $2 + local.get $3 i32.sub - local.get $8 + local.get $7 i32.sub i32.const 0 - local.get $8 + local.get $7 i32.const 1 i32.shl i32.sub i32.le_u if - local.get $2 + local.get $3 local.get $1 - local.get $8 + local.get $7 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end local.get $1 - local.get $2 + local.get $3 i32.gt_u if local.get $1 i32.const 7 i32.and - local.get $2 + local.get $3 i32.const 7 i32.and i32.eq if loop $while-continue|0 - local.get $2 + local.get $3 i32.const 7 i32.and if - local.get $8 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $8 + local.get $7 i32.const 1 i32.sub - local.set $8 - local.get $2 - local.tee $4 + local.set $7 + local.get $3 + local.tee $5 i32.const 1 i32.add - local.set $2 + local.set $3 local.get $1 - local.tee $5 + local.tee $4 i32.const 1 i32.add local.set $1 - local.get $4 local.get $5 + local.get $4 i32.load8_u i32.store8 br $while-continue|0 end end loop $while-continue|1 - local.get $8 + local.get $7 i32.const 8 i32.ge_u if - local.get $2 + local.get $3 local.get $1 i64.load i64.store - local.get $8 + local.get $7 i32.const 8 i32.sub - local.set $8 - local.get $2 + local.set $7 + local.get $3 i32.const 8 i32.add - local.set $2 + local.set $3 local.get $1 i32.const 8 i32.add @@ -3008,26 +3010,26 @@ end end loop $while-continue|2 - local.get $8 + local.get $7 if - local.get $2 - local.tee $4 + local.get $3 + local.tee $5 i32.const 1 i32.add - local.set $2 + local.set $3 local.get $1 - local.tee $5 + local.tee $4 i32.const 1 i32.add local.set $1 - local.get $4 local.get $5 + local.get $4 i32.load8_u i32.store8 - local.get $8 + local.get $7 i32.const 1 i32.sub - local.set $8 + local.set $7 br $while-continue|2 end end @@ -3035,29 +3037,29 @@ local.get $1 i32.const 7 i32.and - local.get $2 + local.get $3 i32.const 7 i32.and i32.eq if loop $while-continue|3 - local.get $2 - local.get $8 + local.get $3 + local.get $7 i32.add i32.const 7 i32.and if - local.get $8 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $2 - local.get $8 + local.get $3 + local.get $7 i32.const 1 i32.sub - local.tee $8 + local.tee $7 i32.add local.get $1 - local.get $8 + local.get $7 i32.add i32.load8_u i32.store8 @@ -3065,18 +3067,18 @@ end end loop $while-continue|4 - local.get $8 + local.get $7 i32.const 8 i32.ge_u if - local.get $2 - local.get $8 + local.get $3 + local.get $7 i32.const 8 i32.sub - local.tee $8 + local.tee $7 i32.add local.get $1 - local.get $8 + local.get $7 i32.add i64.load i64.store @@ -3085,16 +3087,16 @@ end end loop $while-continue|5 - local.get $8 + local.get $7 if - local.get $2 - local.get $8 + local.get $3 + local.get $7 i32.const 1 i32.sub - local.tee $8 + local.tee $7 i32.add local.get $1 - local.get $8 + local.get $7 i32.add i32.load8_u i32.store8 @@ -3103,18 +3105,17 @@ end end end - local.get $3 - local.set $1 + local.get $9 end - local.get $1 - local.get $9 + local.tee $1 + local.get $8 i32.add local.get $6 - local.get $9 + local.get $8 i32.sub call $~lib/memory/memory.fill local.get $1 - local.get $7 + local.get $2 i32.ne if local.get $0 @@ -3762,7 +3763,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $1 i32.const 0 i32.store local.get $2 @@ -3771,8 +3772,8 @@ local.get $2 i32.load offset=16 local.tee $11 - local.set $1 - local.get $7 + local.set $5 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3805,7 +3806,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $1 + local.get $5 i32.const 1073741820 i32.gt_u if @@ -3817,73 +3818,72 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.const 8 - local.get $1 + local.get $5 i32.const 8 i32.gt_u select local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $8 call $~lib/memory/memory.fill local.get $3 - local.get $5 + local.get $6 i32.store local.get $3 - local.get $5 + local.get $6 call $~lib/rt/itcms/__link local.get $3 - local.get $5 + local.get $6 i32.store offset=4 local.get $3 local.get $8 i32.store offset=8 local.get $3 - local.get $1 + local.get $5 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 $1 local.get $3 i32.store loop $for-loop|0 - local.get $6 + local.get $7 local.get $11 i32.lt_s if local.get $10 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add - local.tee $5 + local.tee $1 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 local.get $3 + local.get $0 local.get $1 - local.get $5 i32.load8_s call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|0 end end @@ -5374,7 +5374,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $1 i32.const 0 i32.store local.get $2 @@ -5383,8 +5383,8 @@ local.get $2 i32.load offset=16 local.tee $11 - local.set $1 - local.get $7 + local.set $5 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -5417,7 +5417,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $1 + local.get $5 i32.const 1073741820 i32.gt_u if @@ -5429,73 +5429,72 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.const 8 - local.get $1 + local.get $5 i32.const 8 i32.gt_u select local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $8 call $~lib/memory/memory.fill local.get $3 - local.get $5 + local.get $6 i32.store local.get $3 - local.get $5 + local.get $6 call $~lib/rt/itcms/__link local.get $3 - local.get $5 + local.get $6 i32.store offset=4 local.get $3 local.get $8 i32.store offset=8 local.get $3 - local.get $1 + local.get $5 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 $1 local.get $3 i32.store loop $for-loop|0 - local.get $6 + local.get $7 local.get $11 i32.lt_s if local.get $10 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add - local.tee $5 + local.tee $1 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 local.get $3 + local.get $0 local.get $1 - local.get $5 i32.load8_u call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|0 end end @@ -7026,7 +7025,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $1 i32.const 0 i32.store local.get $2 @@ -7035,8 +7034,8 @@ local.get $2 i32.load offset=16 local.tee $11 - local.set $1 - local.get $7 + local.set $5 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -7069,7 +7068,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $1 + local.get $5 i32.const 536870910 i32.gt_u if @@ -7081,9 +7080,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.const 8 - local.get $1 + local.get $5 i32.const 8 i32.gt_u select @@ -7092,64 +7091,63 @@ local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $8 call $~lib/memory/memory.fill local.get $3 - local.get $5 + local.get $6 i32.store local.get $3 - local.get $5 + local.get $6 call $~lib/rt/itcms/__link local.get $3 - local.get $5 + local.get $6 i32.store offset=4 local.get $3 local.get $8 i32.store offset=8 local.get $3 - local.get $1 + local.get $5 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 $1 local.get $3 i32.store loop $for-loop|0 - local.get $6 + local.get $7 local.get $11 i32.lt_s if local.get $10 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add - local.tee $5 + local.tee $1 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 local.get $3 + local.get $0 local.get $1 - local.get $5 i32.load16_s call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|0 end end @@ -8642,7 +8640,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $1 i32.const 0 i32.store local.get $2 @@ -8651,8 +8649,8 @@ local.get $2 i32.load offset=16 local.tee $11 - local.set $1 - local.get $7 + local.set $5 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -8685,7 +8683,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $1 + local.get $5 i32.const 536870910 i32.gt_u if @@ -8697,9 +8695,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.const 8 - local.get $1 + local.get $5 i32.const 8 i32.gt_u select @@ -8708,64 +8706,63 @@ local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $8 call $~lib/memory/memory.fill local.get $3 - local.get $5 + local.get $6 i32.store local.get $3 - local.get $5 + local.get $6 call $~lib/rt/itcms/__link local.get $3 - local.get $5 + local.get $6 i32.store offset=4 local.get $3 local.get $8 i32.store offset=8 local.get $3 - local.get $1 + local.get $5 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 $1 local.get $3 i32.store loop $for-loop|0 - local.get $6 + local.get $7 local.get $11 i32.lt_s if local.get $10 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add - local.tee $5 + local.tee $1 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 local.get $3 + local.get $0 local.get $1 - local.get $5 i32.load16_u call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|0 end end @@ -10275,7 +10272,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $1 i32.const 0 i32.store local.get $2 @@ -10284,8 +10281,8 @@ local.get $2 i32.load offset=16 local.tee $11 - local.set $1 - local.get $7 + local.set $5 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -10318,7 +10315,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $1 + local.get $5 i32.const 268435455 i32.gt_u if @@ -10330,9 +10327,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.const 8 - local.get $1 + local.get $5 i32.const 8 i32.gt_u select @@ -10341,64 +10338,63 @@ local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $8 call $~lib/memory/memory.fill local.get $3 - local.get $5 + local.get $6 i32.store local.get $3 - local.get $5 + local.get $6 call $~lib/rt/itcms/__link local.get $3 - local.get $5 + local.get $6 i32.store offset=4 local.get $3 local.get $8 i32.store offset=8 local.get $3 - local.get $1 + local.get $5 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 $1 local.get $3 i32.store loop $for-loop|01 - local.get $6 + local.get $7 local.get $11 i32.lt_s if local.get $10 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add - local.tee $5 + local.tee $1 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 local.get $3 + local.get $0 local.get $1 - local.get $5 i32.load call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|01 end end @@ -11841,7 +11837,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $1 i32.const 0 i32.store local.get $2 @@ -11850,8 +11846,8 @@ local.get $2 i32.load offset=16 local.tee $11 - local.set $1 - local.get $7 + local.set $5 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -11884,7 +11880,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $1 + local.get $5 i32.const 268435455 i32.gt_u if @@ -11896,9 +11892,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.const 8 - local.get $1 + local.get $5 i32.const 8 i32.gt_u select @@ -11907,64 +11903,63 @@ local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $8 call $~lib/memory/memory.fill local.get $3 - local.get $5 + local.get $6 i32.store local.get $3 - local.get $5 + local.get $6 call $~lib/rt/itcms/__link local.get $3 - local.get $5 + local.get $6 i32.store offset=4 local.get $3 local.get $8 i32.store offset=8 local.get $3 - local.get $1 + local.get $5 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 $1 local.get $3 i32.store loop $for-loop|01 - local.get $6 + local.get $7 local.get $11 i32.lt_s if local.get $10 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add - local.tee $5 + local.tee $1 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 local.get $3 + local.get $0 local.get $1 - local.get $5 i32.load call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|01 end end @@ -13197,7 +13192,7 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -13206,7 +13201,7 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i64) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -13217,23 +13212,23 @@ i32.lt_s br_if $folding-inner0 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 0 i32.store offset=8 - local.get $10 + local.get $1 call $~lib/set/Set#constructor - local.tee $11 + local.tee $4 i32.store loop $for-loop|0 - local.get $12 + local.get $3 i64.const 100 i64.lt_s if - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -13243,11 +13238,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -13258,14 +13253,14 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 i64.const 1 i64.add - local.set $12 + local.set $3 br $for-loop|0 end end - local.get $11 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -13278,14 +13273,14 @@ unreachable end i64.const 50 - local.set $12 + local.set $3 loop $for-loop|1 - local.get $12 + local.get $3 i64.const 100 i64.lt_s if - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -13296,11 +13291,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -13311,14 +13306,14 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 i64.const 1 i64.add - local.set $12 + local.set $3 br $for-loop|1 end end - local.get $11 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -13331,7 +13326,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $10 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13343,14 +13338,15 @@ local.tee $1 i32.const 0 i32.store - local.get $11 + local.get $4 i32.load offset=8 - local.set $3 - local.get $11 + local.set $11 + local.get $4 i32.load offset=16 - local.tee $2 - local.set $9 + local.tee $12 + local.set $5 local.get $1 + local.tee $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -13359,31 +13355,31 @@ i32.lt_s br_if $folding-inner0 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 16 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $1 i32.store - local.get $10 + local.get $1 i32.const 0 i32.store - local.get $10 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $10 + local.get $1 i32.const 0 i32.store offset=4 - local.get $10 + local.get $1 i32.const 0 i32.store offset=8 - local.get $10 + local.get $1 i32.const 0 i32.store offset=12 - local.get $9 + local.get $5 i32.const 134217727 i32.gt_u if @@ -13395,106 +13391,105 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.const 8 - local.get $9 + local.get $5 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $8 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store offset=4 - local.get $7 - local.get $8 + local.get $6 + local.get $9 call $~lib/memory/memory.fill - local.get $10 - local.get $7 + local.get $1 + local.get $6 i32.store - local.get $10 - local.get $7 + local.get $1 + local.get $6 call $~lib/rt/itcms/__link - local.get $10 - local.get $7 + local.get $1 + local.get $6 i32.store offset=4 - local.get $10 - local.get $8 - i32.store offset=8 - local.get $10 + local.get $1 local.get $9 + i32.store offset=8 + local.get $1 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 local.get $1 - local.get $10 i32.store loop $for-loop|01 - local.get $2 - local.get $5 - i32.gt_s + local.get $8 + local.get $12 + i32.lt_s if - local.get $3 - local.get $5 + local.get $11 + local.get $8 i32.const 4 i32.shl i32.add - local.tee $8 + local.tee $2 i32.load offset=8 i32.const 1 i32.and i32.eqz if + local.get $1 + 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 $10 - local.get $1 - local.get $8 - i64.load - call $~lib/array/Array#__set end - local.get $5 + local.get $8 i32.const 1 i32.add - local.set $5 + local.set $8 br $for-loop|01 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 $4 local.get $10 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $1 + local.tee $2 i32.store offset=8 loop $for-loop|2 - local.get $6 - local.get $10 + local.get $7 + local.get $1 i32.load offset=12 i32.lt_s if - local.get $11 - local.get $10 - local.get $6 + local.get $4 + local.get $1 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -13506,21 +13501,21 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $10 - local.get $6 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|2 end end - local.get $1 + local.get $2 i32.load offset=20 - local.get $11 + local.get $4 i32.load offset=20 i32.ne if @@ -13532,14 +13527,14 @@ unreachable end i64.const 0 - local.set $12 + local.set $3 loop $for-loop|3 - local.get $12 + local.get $3 i64.const 50 i64.lt_s if - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -13550,11 +13545,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#delete - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -13564,14 +13559,14 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 i64.const 1 i64.add - local.set $12 + local.set $3 br $for-loop|3 end end - local.get $11 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -13584,14 +13579,14 @@ unreachable end i64.const 0 - local.set $12 + local.set $3 loop $for-loop|4 - local.get $12 + local.get $3 i64.const 50 i64.lt_s if - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -13601,11 +13596,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -13616,11 +13611,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#delete - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -13630,14 +13625,14 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 i64.const 1 i64.add - local.set $12 + local.set $3 br $for-loop|4 end end - local.get $11 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -13649,9 +13644,9 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $4 call $~lib/set/Set#clear - local.get $11 + local.get $4 i32.load offset=20 if i32.const 0 @@ -14240,7 +14235,7 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -14249,7 +14244,7 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i64) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -14260,23 +14255,23 @@ i32.lt_s br_if $folding-inner0 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 0 i32.store offset=8 - local.get $10 + local.get $1 call $~lib/set/Set#constructor - local.tee $11 + local.tee $4 i32.store loop $for-loop|0 - local.get $12 + local.get $3 i64.const 100 i64.lt_u if - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -14286,11 +14281,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -14301,14 +14296,14 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 i64.const 1 i64.add - local.set $12 + local.set $3 br $for-loop|0 end end - local.get $11 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -14321,14 +14316,14 @@ unreachable end i64.const 50 - local.set $12 + local.set $3 loop $for-loop|1 - local.get $12 + local.get $3 i64.const 100 i64.lt_u if - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -14339,11 +14334,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -14354,14 +14349,14 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 i64.const 1 i64.add - local.set $12 + local.set $3 br $for-loop|1 end end - local.get $11 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -14374,7 +14369,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $10 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14386,14 +14381,15 @@ local.tee $1 i32.const 0 i32.store - local.get $11 + local.get $4 i32.load offset=8 - local.set $3 - local.get $11 + local.set $11 + local.get $4 i32.load offset=16 - local.tee $2 - local.set $9 + local.tee $12 + local.set $5 local.get $1 + local.tee $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14402,31 +14398,31 @@ i32.lt_s br_if $folding-inner0 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 18 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $1 i32.store - local.get $10 + local.get $1 i32.const 0 i32.store - local.get $10 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $10 + local.get $1 i32.const 0 i32.store offset=4 - local.get $10 + local.get $1 i32.const 0 i32.store offset=8 - local.get $10 + local.get $1 i32.const 0 i32.store offset=12 - local.get $9 + local.get $5 i32.const 134217727 i32.gt_u if @@ -14438,106 +14434,105 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 i32.const 8 - local.get $9 + local.get $5 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $8 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store offset=4 - local.get $7 - local.get $8 + local.get $6 + local.get $9 call $~lib/memory/memory.fill - local.get $10 - local.get $7 + local.get $1 + local.get $6 i32.store - local.get $10 - local.get $7 + local.get $1 + local.get $6 call $~lib/rt/itcms/__link - local.get $10 - local.get $7 + local.get $1 + local.get $6 i32.store offset=4 - local.get $10 - local.get $8 - i32.store offset=8 - local.get $10 + local.get $1 local.get $9 + i32.store offset=8 + local.get $1 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 local.get $1 - local.get $10 i32.store loop $for-loop|01 - local.get $2 - local.get $5 - i32.gt_s + local.get $8 + local.get $12 + i32.lt_s if - local.get $3 - local.get $5 + local.get $11 + local.get $8 i32.const 4 i32.shl i32.add - local.tee $8 + local.tee $2 i32.load offset=8 i32.const 1 i32.and i32.eqz if + local.get $1 + 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 $10 - local.get $1 - local.get $8 - i64.load - call $~lib/array/Array#__set end - local.get $5 + local.get $8 i32.const 1 i32.add - local.set $5 + local.set $8 br $for-loop|01 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 $4 local.get $10 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $1 + local.tee $2 i32.store offset=8 loop $for-loop|2 - local.get $6 - local.get $10 + local.get $7 + local.get $1 i32.load offset=12 i32.lt_s if - local.get $11 - local.get $10 - local.get $6 + local.get $4 + local.get $1 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -14549,21 +14544,21 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $10 - local.get $6 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|2 end end - local.get $1 + local.get $2 i32.load offset=20 - local.get $11 + local.get $4 i32.load offset=20 i32.ne if @@ -14575,14 +14570,14 @@ unreachable end i64.const 0 - local.set $12 + local.set $3 loop $for-loop|3 - local.get $12 + local.get $3 i64.const 50 i64.lt_u if - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -14593,11 +14588,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#delete - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -14607,14 +14602,14 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 i64.const 1 i64.add - local.set $12 + local.set $3 br $for-loop|3 end end - local.get $11 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -14627,14 +14622,14 @@ unreachable end i64.const 0 - local.set $12 + local.set $3 loop $for-loop|4 - local.get $12 + local.get $3 i64.const 50 i64.lt_u if - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -14644,11 +14639,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -14659,11 +14654,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#delete - local.get $11 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -14673,14 +14668,14 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 i64.const 1 i64.add - local.set $12 + local.set $3 br $for-loop|4 end end - local.get $11 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -14692,9 +14687,9 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $4 call $~lib/set/Set#clear - local.get $11 + local.get $4 i32.load offset=20 if i32.const 0 @@ -15569,7 +15564,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $0 i32.const 0 i32.store local.get $3 @@ -15578,8 +15573,8 @@ local.get $3 i32.load offset=16 local.tee $12 - local.set $0 - local.get $8 + local.set $5 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -15612,7 +15607,7 @@ local.get $4 i32.const 0 i32.store offset=12 - local.get $0 + local.get $5 i32.const 268435455 i32.gt_u if @@ -15624,9 +15619,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 i32.const 8 - local.get $0 + local.get $5 i32.const 8 i32.gt_u select @@ -15635,40 +15630,40 @@ local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $9 call $~lib/memory/memory.fill local.get $4 - local.get $5 + local.get $6 i32.store local.get $4 - local.get $5 + local.get $6 call $~lib/rt/itcms/__link local.get $4 - local.get $5 + local.get $6 i32.store offset=4 local.get $4 local.get $9 i32.store offset=8 local.get $4 - local.get $0 + local.get $5 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 $0 local.get $4 i32.store loop $for-loop|01 - local.get $6 + local.get $8 local.get $12 i32.lt_s if local.get $11 - local.get $6 + local.get $8 i32.const 3 i32.shl i32.add @@ -15723,10 +15718,10 @@ local.get $2 f32.store end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|01 end end @@ -16907,7 +16902,7 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -16916,7 +16911,7 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 f64) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -16927,23 +16922,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $11 + local.tee $1 i64.const 0 i64.store - local.get $11 + local.get $1 i32.const 0 i32.store offset=8 - local.get $11 + local.get $1 call $~lib/set/Set#constructor - local.tee $10 + local.tee $4 i32.store loop $for-loop|0 - local.get $12 + local.get $3 f64.const 100 f64.lt if - local.get $10 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -16953,11 +16948,11 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $10 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -16968,14 +16963,14 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 f64.const 1 f64.add - local.set $12 + local.set $3 br $for-loop|0 end end - local.get $10 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -16988,14 +16983,14 @@ unreachable end f64.const 50 - local.set $12 + local.set $3 loop $for-loop|1 - local.get $12 + local.get $3 f64.const 100 f64.lt if - local.get $10 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -17006,11 +17001,11 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $10 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -17021,14 +17016,14 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 f64.const 1 f64.add - local.set $12 + local.set $3 br $for-loop|1 end end - local.get $10 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -17041,7 +17036,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $10 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17053,14 +17048,15 @@ local.tee $1 i32.const 0 i32.store - local.get $10 + local.get $4 i32.load offset=8 - local.set $3 - local.get $10 + local.set $11 + local.get $4 i32.load offset=16 - local.tee $2 - local.set $8 + local.tee $12 + local.set $5 local.get $1 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -17069,31 +17065,31 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $11 + local.tee $1 i64.const 0 i64.store - local.get $11 + local.get $1 i32.const 16 i32.const 22 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $1 i32.store - local.get $11 + local.get $1 i32.const 0 i32.store - local.get $11 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $11 + local.get $1 i32.const 0 i32.store offset=4 - local.get $11 + local.get $1 i32.const 0 i32.store offset=8 - local.get $11 + local.get $1 i32.const 0 i32.store offset=12 - local.get $8 + local.get $5 i32.const 134217727 i32.gt_u if @@ -17105,9 +17101,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.const 8 - local.get $8 + local.get $5 i32.const 8 i32.gt_u select @@ -17116,63 +17112,63 @@ local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store offset=4 - local.get $7 + local.get $6 local.get $9 call $~lib/memory/memory.fill - local.get $11 - local.get $7 + local.get $1 + local.get $6 i32.store - local.get $11 - local.get $7 + local.get $1 + local.get $6 call $~lib/rt/itcms/__link - local.get $11 - local.get $7 + local.get $1 + local.get $6 i32.store offset=4 - local.get $11 + local.get $1 local.get $9 i32.store offset=8 - local.get $11 - local.get $8 + local.get $1 + local.get $5 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 $1 - local.get $11 i32.store loop $for-loop|01 - local.get $2 - local.get $5 - i32.gt_s + local.get $8 + local.get $12 + i32.lt_s if - local.get $3 - local.get $5 + local.get $11 + local.get $8 i32.const 4 i32.shl i32.add - local.tee $9 + local.tee $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 1 i32.add - local.set $0 - local.get $9 + local.set $2 + local.get $5 f64.load - local.set $12 + local.set $3 + local.get $0 local.get $1 - local.get $11 i32.load offset=12 i32.ge_u if - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -17183,62 +17179,62 @@ call $~lib/builtins/abort unreachable end - local.get $11 local.get $1 + local.get $0 i32.const 1 i32.add - local.tee $9 + local.tee $5 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity - local.get $11 - local.get $9 + local.get $1 + local.get $5 i32.store offset=12 end - local.get $11 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $0 i32.const 3 i32.shl i32.add - local.get $12 + local.get $3 f64.store end - local.get $5 + local.get $8 i32.const 1 i32.add - local.set $5 + local.set $8 br $for-loop|01 end end - local.get $11 - local.get $0 + local.get $1 + local.get $2 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $11 - local.get $0 + local.get $1 + 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 $4 - local.get $11 + local.get $10 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $1 + local.tee $0 i32.store offset=8 loop $for-loop|2 - local.get $6 - local.get $11 + local.get $7 + local.get $1 i32.load offset=12 i32.lt_s if - local.get $10 - local.get $11 - local.get $6 + local.get $4 + local.get $1 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -17250,21 +17246,21 @@ call $~lib/builtins/abort unreachable end + local.get $0 local.get $1 - local.get $11 - local.get $6 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|2 end end - local.get $1 + local.get $0 i32.load offset=20 - local.get $10 + local.get $4 i32.load offset=20 i32.ne if @@ -17276,14 +17272,14 @@ unreachable end f64.const 0 - local.set $12 + local.set $3 loop $for-loop|3 - local.get $12 + local.get $3 f64.const 50 f64.lt if - local.get $10 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -17294,11 +17290,11 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#delete - local.get $10 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -17308,14 +17304,14 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 f64.const 1 f64.add - local.set $12 + local.set $3 br $for-loop|3 end end - local.get $10 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -17328,14 +17324,14 @@ unreachable end f64.const 0 - local.set $12 + local.set $3 loop $for-loop|4 - local.get $12 + local.get $3 f64.const 50 f64.lt if - local.get $10 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -17345,11 +17341,11 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#add - local.get $10 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -17360,11 +17356,11 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#delete - local.get $10 - local.get $12 + local.get $4 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -17374,14 +17370,14 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 f64.const 1 f64.add - local.set $12 + local.set $3 br $for-loop|4 end end - local.get $10 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -17393,9 +17389,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 diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index 1345ec0d94..e6996f90c4 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -210,16 +210,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1952 i32.load i32.gt_u @@ -231,7 +231,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1956 @@ -247,26 +247,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -426,17 +426,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -2202,7 +2202,7 @@ local.get $0 i32.const 20 i32.sub - local.tee $5 + local.tee $6 i32.load i32.const -4 i32.and @@ -2210,17 +2210,17 @@ i32.sub i32.le_u if - local.get $5 + local.get $6 local.get $1 i32.store offset=16 local.get $0 return end - local.get $5 + local.get $6 i32.load offset=12 local.set $7 local.get $1 - local.tee $2 + local.tee $3 i32.const 1073741804 i32.ge_u if @@ -2276,7 +2276,7 @@ global.set $~lib/rt/itcms/threshold end end - local.get $2 + local.get $3 i32.const 16 i32.add local.set $1 @@ -2286,7 +2286,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $5 local.get $1 i32.const 1073741820 i32.gt_u @@ -2318,7 +2318,7 @@ i32.eqz if memory.size - local.tee $6 + local.tee $2 local.get $1 i32.const 536870910 i32.lt_u @@ -2337,9 +2337,9 @@ local.get $1 end i32.const 4 - local.get $3 + local.get $5 i32.load offset=1568 - local.get $6 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -2354,9 +2354,9 @@ i32.const 16 i32.shr_u local.tee $4 + local.get $2 local.get $4 - local.get $6 - i32.lt_s + i32.gt_s select memory.grow i32.const 0 @@ -2370,15 +2370,15 @@ unreachable end end - local.get $3 - local.get $6 + local.get $5 + 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 $5 local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $4 @@ -2406,13 +2406,16 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 local.get $4 call $~lib/rt/tlsf/removeBlock + local.get $1 + local.set $2 local.get $4 + local.tee $1 i32.load - local.set $6 - local.get $1 + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -2425,54 +2428,54 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const -4 i32.and - local.get $1 + local.get $2 i32.sub local.tee $8 i32.const 16 i32.ge_u if - local.get $4 local.get $1 - local.get $6 + local.get $2 + local.get $4 i32.const 2 i32.and i32.or i32.store + local.get $2 local.get $1 - local.get $4 i32.const 4 i32.add i32.add - local.tee $1 + local.tee $4 local.get $8 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 - local.get $1 + local.get $5 + local.get $4 call $~lib/rt/tlsf/insertBlock else + local.get $1 local.get $4 - local.get $6 i32.const -2 i32.and i32.store - local.get $4 + local.get $1 i32.const 4 i32.add - local.tee $1 - local.get $4 + local.tee $4 + local.get $1 i32.load i32.const -4 i32.and i32.add - local.get $1 local.get $4 + local.get $1 i32.load i32.const -4 i32.and @@ -2482,37 +2485,37 @@ i32.and i32.store end - local.get $4 + local.get $1 local.get $7 i32.store offset=12 - local.get $4 - local.get $2 + local.get $1 + local.get $3 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 - local.set $1 - local.get $4 - local.get $3 + local.set $4 + local.get $1 + local.get $2 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $4 local.get $1 + local.get $4 i32.store offset=8 - local.get $1 local.get $4 local.get $1 + local.get $4 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $3 - local.get $4 + local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $1 i32.load i32.const -4 i32.and @@ -2520,18 +2523,18 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $1 i32.const 20 i32.add local.tee $4 - local.get $2 + local.get $3 call $~lib/memory/memory.fill - local.get $2 - local.get $5 + local.get $3 + local.get $6 i32.load offset=16 local.tee $1 local.get $1 - local.get $2 + local.get $3 i32.gt_u select local.set $5 @@ -2730,7 +2733,7 @@ (local $4 i32) local.get $0 i32.load offset=8 - local.tee $2 + local.tee $3 local.get $1 i32.shr_u i32.const 1 @@ -2749,38 +2752,38 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $0 i32.load - local.tee $4 - local.get $2 + local.tee $2 + local.get $3 i32.const 1 i32.shl - local.tee $3 + local.tee $4 i32.const 1073741820 - local.get $3 + local.get $4 i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $4 i32.const 8 local.get $1 i32.shl local.tee $1 local.get $1 - local.get $3 + local.get $4 i32.lt_u select - local.tee $3 + local.tee $4 call $~lib/rt/itcms/__renew local.tee $1 i32.add + local.get $4 local.get $3 - local.get $2 i32.sub call $~lib/memory/memory.fill local.get $1 - local.get $4 + local.get $2 i32.ne if local.get $0 @@ -2790,6 +2793,7 @@ local.get $1 i32.store offset=4 local.get $1 + local.tee $2 if local.get $0 i32.eqz @@ -2802,10 +2806,10 @@ unreachable end global.get $~lib/rt/itcms/white - local.get $1 + local.get $2 i32.const 20 i32.sub - local.tee $1 + local.tee $2 i32.load offset=4 i32.const 3 i32.and @@ -2817,24 +2821,24 @@ i32.load offset=4 i32.const 3 i32.and - local.tee $2 + local.tee $3 global.get $~lib/rt/itcms/white i32.eqz i32.eq if - local.get $1 + local.get $2 call $~lib/rt/itcms/Object#makeGray else global.get $~lib/rt/itcms/state i32.const 1 i32.eq i32.const 0 - local.get $2 + local.get $3 i32.const 3 i32.eq select if - local.get $1 + local.get $2 call $~lib/rt/itcms/Object#makeGray end end @@ -2842,7 +2846,7 @@ end end local.get $0 - local.get $3 + local.get $4 i32.store offset=8 end ) diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index 34b1175cf6..6580b71cf3 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -300,16 +300,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 3088 i32.load i32.gt_u @@ -321,7 +321,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 3092 @@ -337,26 +337,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -516,17 +516,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1823,26 +1823,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $3 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $3 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -5659,22 +5659,22 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $3 + i32.const 0 local.get $1 + select + local.tee $3 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - i32.const 0 - local.get $1 - select local.tee $4 i32.add local.tee $2 @@ -5698,7 +5698,7 @@ i32.store local.get $2 local.get $0 - local.get $3 + local.get $4 i32.const 2 i32.shl local.tee $0 @@ -5707,7 +5707,7 @@ local.get $2 i32.add local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -5928,12 +5928,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 - i32.load offset=12 - i32.const 0 - local.get $1 - select - local.tee $6 local.get $0 i32.const 20 i32.sub @@ -5941,6 +5935,12 @@ i32.const 2 i32.shr_u local.tee $2 + local.get $1 + i32.load offset=12 + i32.const 0 + local.get $1 + select + local.tee $6 i32.add local.tee $3 i32.const 268435455 diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index 423b7f7f82..708c6ceeb6 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -622,16 +622,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 21056 i32.load i32.gt_u @@ -643,7 +643,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 21060 @@ -659,26 +659,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -819,17 +819,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1698,12 +1698,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1719,14 +1719,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1740,15 +1740,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1759,13 +1759,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1773,21 +1773,21 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl @@ -1795,12 +1795,12 @@ i32.sub i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1814,16 +1814,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1831,18 +1831,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1853,8 +1853,8 @@ unreachable end end - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1867,13 +1867,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1886,54 +1886,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1943,37 +1943,37 @@ i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $3 + local.set $3 local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 - local.get $1 local.get $3 - local.get $1 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1981,22 +1981,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -2005,18 +2005,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 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 @@ -2025,10 +2025,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -2037,20 +2037,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -2065,10 +2065,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -2085,16 +2085,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -2117,8 +2117,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 @@ -2167,152 +2167,162 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $folding-inner0 - local.get $0 - i32.const 8 - i32.shr_u - local.tee $3 - i32.const 6084 - i32.add - i32.load8_u + local.get $0 + i32.const 8 + i32.shr_u + local.tee $2 + i32.const 6084 + i32.add + i32.load8_u + local.get $2 + i32.const 2444 + i32.add + i32.load8_u + i32.const 86 + i32.mul + i32.const 2444 + i32.add + local.get $0 + i32.const 255 + i32.and + local.tee $5 + i32.const 3 + i32.div_u + i32.add + i32.load8_u + local.get $5 + i32.const 3 + i32.rem_u + i32.const 2 + i32.shl + i32.const 5112 + i32.add + i32.load + i32.mul + i32.const 11 + i32.shr_u + i32.const 6 + i32.rem_u + i32.add + i32.const 2 + i32.shl + i32.const 5124 + i32.add + i32.load + local.tee $2 + i32.const 255 + i32.and + local.set $4 + local.get $2 + i32.const 8 + i32.shr_s + local.set $3 + local.get $4 + i32.const 2 + i32.lt_u + if + i32.const 0 + local.get $1 + local.get $4 + i32.xor + i32.sub local.get $3 - i32.const 2444 - i32.add - i32.load8_u - i32.const 86 - i32.mul - i32.const 2444 - i32.add - local.get $0 - i32.const 255 i32.and - local.tee $5 - i32.const 3 - i32.div_u - i32.add - i32.load8_u - local.get $5 - i32.const 3 - i32.rem_u - i32.const 2 - i32.shl - i32.const 5112 - i32.add - i32.load - i32.mul - i32.const 11 - i32.shr_u - i32.const 6 - i32.rem_u - i32.add - i32.const 2 - i32.shl - i32.const 5124 + local.get $0 i32.add - i32.load - local.tee $2 - i32.const 255 - i32.and - local.set $3 - local.get $2 - i32.const 8 - i32.shr_s - local.set $2 - local.get $3 - i32.const 2 - i32.lt_u - br_if $folding-inner0 - local.get $2 - i32.const 255 - i32.and - local.set $3 + return + end + local.get $3 + i32.const 255 + i32.and + local.set $2 + local.get $3 + i32.const 8 + i32.shr_u + local.set $4 + loop $while-continue|0 local.get $2 - i32.const 8 - i32.shr_u - local.set $4 - loop $while-continue|0 - local.get $3 - if - local.get $5 + if + local.get $5 + local.get $2 + i32.const 1 + i32.shr_u + local.tee $3 + local.get $4 + i32.add + i32.const 1 + i32.shl + i32.const 6596 + i32.add + i32.load8_u + local.tee $6 + i32.eq + if (result i32) local.get $3 - i32.const 1 - i32.shr_u - local.tee $2 local.get $4 i32.add i32.const 1 i32.shl i32.const 6596 i32.add - i32.load8_u - local.tee $6 - i32.eq - if (result i32) + i32.load8_u offset=1 + i32.const 2 + i32.shl + i32.const 5124 + i32.add + i32.load + local.tee $2 + i32.const 255 + i32.and + local.set $3 + local.get $2 + i32.const 8 + i32.shr_s + local.set $2 + local.get $3 + i32.const 2 + i32.lt_u + if + i32.const 0 + local.get $1 + local.get $3 + i32.xor + i32.sub local.get $2 - local.get $4 - i32.add - i32.const 1 - i32.shl - i32.const 6596 - i32.add - i32.load8_u offset=1 - i32.const 2 - i32.shl - i32.const 5124 - i32.add - i32.load - local.tee $2 - i32.const 255 i32.and - local.set $3 - local.get $2 - i32.const 8 - i32.shr_s - local.set $2 - local.get $3 - i32.const 2 - i32.lt_u - br_if $folding-inner0 local.get $0 - i32.const 1 i32.add - local.get $1 - i32.const 1 - i32.shl - i32.sub return + end + local.get $0 + i32.const 1 + i32.add + local.get $1 + i32.const 1 + i32.shl + i32.sub + return + else + local.get $5 + local.get $6 + i32.lt_u + if (result i32) + local.get $3 else - local.get $5 - local.get $6 - i32.lt_u - if (result i32) - local.get $2 - else - local.get $2 - local.get $4 - i32.add - local.set $4 - local.get $3 - local.get $2 - i32.sub - end + local.get $3 + local.get $4 + i32.add + local.set $4 + local.get $2 + local.get $3 + i32.sub end - local.set $3 - br $while-continue|0 end + local.set $2 + br $while-continue|0 end - local.get $0 - return end - i32.const 0 - local.get $1 - local.get $3 - i32.xor - i32.sub - local.get $2 - i32.and local.get $0 - i32.add ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3267,10 +3277,10 @@ local.get $1 local.get $2 i32.load offset=16 - local.tee $0 - local.get $0 + local.tee $2 local.get $1 - i32.gt_u + local.get $2 + i32.lt_u select call $~lib/memory/memory.copy local.get $3 @@ -6946,7 +6956,7 @@ i32.shl i32.add i32.load16_u - local.tee $1 + local.tee $2 i32.const 7 i32.shr_u if @@ -6957,7 +6967,7 @@ i32.sub i32.lt_u i32.const 0 - local.get $1 + local.get $2 i32.const 55295 i32.sub i32.const 1025 @@ -6983,8 +6993,8 @@ local.get $7 i32.const 1023 i32.and - local.get $1 - local.tee $3 + local.get $2 + local.tee $1 i32.const 1023 i32.and i32.const 10 @@ -6992,7 +7002,7 @@ i32.or i32.const 65536 i32.add - local.tee $1 + local.tee $2 i32.const 131072 i32.ge_u if @@ -7001,7 +7011,7 @@ i32.const 1 i32.shl i32.add - local.get $3 + local.get $1 local.get $7 i32.const 16 i32.shl @@ -7015,7 +7025,7 @@ end end end - local.get $1 + local.get $2 i32.const 304 i32.eq if @@ -7031,7 +7041,7 @@ i32.add local.set $5 else - local.get $1 + local.get $2 i32.const 931 i32.eq if @@ -7048,10 +7058,10 @@ if (result i32) block $~lib/util/string/isFinalSigma|inlined.0 (result i32) i32.const 0 - local.set $2 + local.set $3 i32.const 0 local.get $4 - local.tee $3 + local.tee $2 i32.const 30 i32.sub local.tee $1 @@ -7061,19 +7071,21 @@ select local.set $9 loop $while-continue|1 - local.get $3 + local.get $2 local.get $9 i32.gt_s if - i32.const -1 + local.get $2 local.set $1 + i32.const -1 + local.set $2 block $~lib/util/string/codePointBefore|inlined.0 - local.get $3 + local.get $1 i32.const 0 i32.le_s br_if $~lib/util/string/codePointBefore|inlined.0 local.get $0 - local.get $3 + local.get $1 i32.const 1 i32.sub i32.const 1 @@ -7085,7 +7097,7 @@ i32.and i32.const 56320 i32.eq - local.get $3 + local.get $1 i32.const 2 i32.sub i32.const 0 @@ -7096,7 +7108,7 @@ i32.const 1023 i32.and local.get $0 - local.get $3 + local.get $1 i32.const 2 i32.sub i32.const 1 @@ -7111,7 +7123,7 @@ i32.add i32.const 65536 i32.add - local.set $1 + local.set $2 local.get $10 i32.const 64512 i32.and @@ -7127,13 +7139,13 @@ i32.const 55296 i32.eq select - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const 918000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 8 i32.shr_u i32.const 7212 @@ -7143,14 +7155,14 @@ i32.shl i32.const 7212 i32.add - local.get $1 + local.get $2 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u - local.get $1 + local.get $2 i32.const 7 i32.and i32.shr_u @@ -7162,11 +7174,11 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $2 i32.const 127370 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 8 i32.shr_u i32.const 10220 @@ -7176,14 +7188,14 @@ i32.shl i32.const 10220 i32.add - local.get $1 + local.get $2 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u - local.get $1 + local.get $2 i32.const 7 i32.and i32.shr_u @@ -7196,28 +7208,28 @@ br_if $~lib/util/string/isFinalSigma|inlined.0 drop i32.const 1 - local.set $2 + local.set $3 end - local.get $3 local.get $1 + local.get $2 i32.const 65536 i32.ge_s i32.const 1 i32.add i32.sub - local.set $3 + local.set $2 br $while-continue|1 end end i32.const 0 - local.get $2 + local.get $3 i32.eqz br_if $~lib/util/string/isFinalSigma|inlined.0 drop local.get $4 i32.const 1 i32.add - local.tee $3 + local.tee $2 i32.const 30 i32.add local.tee $1 @@ -7226,14 +7238,14 @@ local.get $8 i32.lt_s select - local.set $2 + local.set $3 loop $while-continue|2 local.get $2 local.get $3 - i32.gt_s + i32.lt_s if local.get $0 - local.get $3 + local.get $2 i32.const 1 i32.shl i32.add @@ -7244,14 +7256,14 @@ i32.const 55296 i32.eq local.get $8 - local.get $3 + local.get $2 i32.const 1 i32.add i32.ne i32.and if local.get $0 - local.get $3 + local.get $2 i32.const 1 i32.shl i32.add @@ -7337,14 +7349,14 @@ i32.eqz br $~lib/util/string/isFinalSigma|inlined.0 end - local.get $3 + local.get $2 local.get $1 i32.const 65536 i32.ge_u i32.const 1 i32.add i32.add - local.set $3 + local.set $2 br $while-continue|2 end end @@ -7356,7 +7368,7 @@ select i32.store16 else - local.get $1 + local.get $2 i32.const 9398 i32.sub i32.const 25 @@ -7367,17 +7379,17 @@ i32.const 1 i32.shl i32.add - local.get $1 + local.get $2 i32.const 26 i32.add i32.store16 else - local.get $1 + local.get $2 i32.const 0 call $~lib/util/casemap/casemap i32.const 2097151 i32.and - local.tee $1 + local.tee $2 i32.const 65536 i32.lt_u if @@ -7386,7 +7398,7 @@ i32.const 1 i32.shl i32.add - local.get $1 + local.get $2 i32.store16 else local.get $6 @@ -7394,15 +7406,15 @@ i32.const 1 i32.shl i32.add - local.get $1 + local.get $2 i32.const 65536 i32.sub - local.tee $1 + local.tee $2 i32.const 10 i32.shr_u i32.const 55296 i32.or - local.get $1 + local.get $2 i32.const 1023 i32.and i32.const 56320 @@ -7426,7 +7438,7 @@ i32.const 1 i32.shl i32.add - local.get $1 + local.get $2 i32.const 7084 i32.add i32.load8_u diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index 27621cf624..8bab4ce9a7 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -207,16 +207,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 22512 i32.load i32.gt_u @@ -228,7 +228,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 22516 @@ -244,26 +244,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -404,17 +404,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1283,12 +1283,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1304,14 +1304,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1325,15 +1325,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1344,13 +1344,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1358,21 +1358,21 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl @@ -1380,12 +1380,12 @@ i32.sub i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1399,16 +1399,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1416,18 +1416,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1438,8 +1438,8 @@ unreachable end end - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1452,13 +1452,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1471,54 +1471,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1528,37 +1528,37 @@ i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $3 + local.set $3 local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 - local.get $1 local.get $3 - local.get $1 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1566,22 +1566,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1590,18 +1590,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 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 @@ -1610,10 +1610,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1622,20 +1622,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1650,10 +1650,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1670,16 +1670,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1702,8 +1702,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 @@ -4752,10 +4752,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 0 i32.store - local.get $4 + local.get $3 local.get $0 local.get $1 call $~lib/string/String.UTF8.byteLength @@ -4763,34 +4763,37 @@ call $~lib/rt/itcms/__new local.tee $5 i32.store - local.get $5 - local.set $4 - local.get $0 local.get $0 + local.tee $4 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u + local.set $3 + local.get $5 + local.set $0 + local.get $4 + local.get $3 i32.const 1 i32.shl i32.add local.set $6 loop $while-continue|0 - local.get $0 + local.get $4 local.get $6 i32.lt_u if - local.get $0 + local.get $4 i32.load16_u local.tee $3 i32.const 128 i32.lt_u if (result i32) - local.get $4 + local.get $0 local.get $3 i32.store8 - local.get $4 + local.get $0 i32.const 1 i32.add else @@ -4798,7 +4801,7 @@ i32.const 2048 i32.lt_u if (result i32) - local.get $4 + local.get $0 local.get $3 i32.const 6 i32.shr_u @@ -4813,7 +4816,7 @@ i32.shl i32.or i32.store16 - local.get $4 + local.get $0 i32.const 2 i32.add else @@ -4824,7 +4827,7 @@ i32.eq if local.get $6 - local.get $0 + local.get $4 i32.const 2 i32.add i32.gt_u @@ -4834,7 +4837,7 @@ i32.lt_u select if - local.get $0 + local.get $4 i32.load16_u offset=2 local.tee $7 i32.const 64512 @@ -4842,7 +4845,7 @@ i32.const 56320 i32.eq if - local.get $4 + local.get $0 local.get $3 i32.const 1023 i32.and @@ -4888,14 +4891,14 @@ i32.or i32.or i32.store - local.get $4 - i32.const 4 - i32.add - local.set $4 local.get $0 i32.const 4 i32.add local.set $0 + local.get $4 + i32.const 4 + i32.add + local.set $4 br $while-continue|0 end end @@ -4918,7 +4921,7 @@ end local.set $3 end - local.get $4 + local.get $0 local.get $3 i32.const 12 i32.shr_u @@ -4935,29 +4938,29 @@ i32.shl i32.or i32.store16 - local.get $4 + local.get $0 local.get $3 i32.const 63 i32.and i32.const 128 i32.or i32.store8 offset=2 - local.get $4 + local.get $0 i32.const 3 i32.add end end - local.set $4 - local.get $0 + local.set $0 + local.get $4 i32.const 2 i32.add - local.set $0 + local.set $4 br $while-continue|0 end end local.get $1 if - local.get $4 + local.get $0 i32.const 0 i32.store8 end diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 0faf609707..239d5ab2be 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -1198,16 +1198,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 25840 i32.load i32.gt_u @@ -1219,7 +1219,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 25844 @@ -1235,26 +1235,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -1414,17 +1414,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -2721,26 +2721,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $3 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $3 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -5592,9 +5592,9 @@ local.get $3 i32.const 48 i32.sub - local.set $7 + local.set $3 loop $for-loop|5 - local.get $7 + local.get $3 i32.const 10 i32.lt_u i32.const 0 @@ -5609,7 +5609,7 @@ i32.ge_s br_if $~lib/util/string/parseExp|inlined.0 drop - local.get $7 + local.get $3 local.get $4 i32.const 10 i32.mul @@ -5626,7 +5626,7 @@ i32.load16_u i32.const 48 i32.sub - local.set $7 + local.set $3 br $for-loop|5 end end @@ -6035,14 +6035,14 @@ local.get $2 local.get $3 i32.gt_s - local.tee $0 + local.tee $1 select call $~lib/util/string/compareImpl - local.tee $1 + local.tee $0 i32.const 0 i32.lt_s - local.get $0 local.get $1 + local.get $0 select ) (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) @@ -6075,10 +6075,10 @@ local.get $1 local.get $2 i32.load offset=16 - local.tee $0 - local.get $0 + local.tee $2 local.get $1 - i32.gt_u + local.get $2 + i32.lt_u select call $~lib/memory/memory.copy local.get $3 @@ -6294,7 +6294,7 @@ (local $5 i64) local.get $3 i64.extend_i32_s - local.set $4 + local.set $5 local.get $3 i32.const 1 i32.sub @@ -6311,11 +6311,11 @@ local.get $0 i32.add local.get $1 - local.get $4 + local.get $5 local.get $1 - local.get $4 + local.get $5 i64.div_u - local.tee $1 + local.tee $4 i64.mul i64.sub i32.wrap_i64 @@ -6325,7 +6325,8 @@ i32.add i32.load16_u i32.store16 - local.get $1 + local.get $4 + local.tee $1 i64.const 0 i64.ne br_if $do-continue|1 @@ -6336,11 +6337,11 @@ i32.const 7 i32.and i64.extend_i32_s - local.set $5 - local.get $4 + local.set $4 + local.get $5 i64.const 1 i64.sub - local.set $4 + local.set $5 loop $do-continue|0 local.get $2 i32.const 1 @@ -6351,7 +6352,7 @@ local.get $0 i32.add local.get $1 - local.get $4 + local.get $5 i64.and i32.wrap_i64 i32.const 1 @@ -6361,7 +6362,7 @@ i32.load16_u i32.store16 local.get $1 - local.get $5 + local.get $4 i64.shr_u local.tee $1 i64.const 0 @@ -6378,14 +6379,6 @@ i64.const 100000000 i64.ge_u if - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - local.get $0 - i32.add local.get $1 local.get $1 i64.const 100000000 @@ -6397,8 +6390,20 @@ i32.wrap_i64 local.tee $3 i32.const 10000 + i32.div_u + local.set $4 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 10000 i32.rem_u - local.tee $4 + local.tee $3 i32.const 100 i32.div_u i32.const 2 @@ -6406,7 +6411,7 @@ i32.const 15804 i32.add i64.load32_u - local.get $4 + local.get $3 i32.const 100 i32.rem_u i32.const 2 @@ -6426,10 +6431,7 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 10000 - i32.div_u - local.tee $3 + local.get $4 i32.const 100 i32.div_u i32.const 2 @@ -6437,7 +6439,7 @@ i32.const 15804 i32.add i64.load32_u - local.get $3 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -22151,12 +22153,12 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store - local.get $4 local.get $3 local.get $5 i32.sub local.tee $3 - i32.lt_u + local.get $4 + i32.gt_u if local.get $1 local.get $2 @@ -22229,6 +22231,10 @@ i32.const 1 i32.shl local.tee $3 + local.get $1 + i32.const 1 + i32.shl + local.tee $4 local.get $0 i32.const 20 i32.sub @@ -22237,12 +22243,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 + local.tee $1 + i32.lt_u select i32.eqz if @@ -22254,26 +22256,26 @@ 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 + local.tee $5 i32.store - local.get $1 + local.get $5 local.get $0 - local.get $4 + local.get $1 call $~lib/memory/memory.copy - local.get $3 - local.get $5 local.get $4 + local.get $1 i32.sub local.tee $0 - i32.lt_u + local.get $3 + i32.gt_u if local.get $1 - local.get $4 + local.get $5 i32.add - local.tee $4 + local.tee $1 local.get $2 local.get $3 local.get $0 @@ -22281,13 +22283,13 @@ i32.sub local.get $3 i32.div_u - local.tee $5 + local.tee $4 call $~lib/memory/memory.repeat local.get $3 - local.get $5 + local.get $4 i32.mul local.tee $3 - local.get $4 + local.get $1 i32.add local.get $2 local.get $0 @@ -22296,7 +22298,7 @@ call $~lib/memory/memory.copy else local.get $1 - local.get $4 + local.get $5 i32.add local.get $2 local.get $0 @@ -22306,7 +22308,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $5 ) (func $~lib/string/String#trimStart (param $0 i32) (result i32) (local $1 i32) @@ -23180,166 +23182,259 @@ (local $9 i32) (local $10 i32) (local $11 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 25884 - i32.lt_s - if - i32.const 42288 - i32.const 42336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $folding-inner0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $4 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $7 - i32.le_u - if - local.get $4 - 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-inner0 - end - local.get $2 - i32.const 20 + block $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - local.get $7 - i32.eqz + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 25884 + i32.lt_s if - local.get $3 - i32.eqz - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $3 - local.get $4 + i32.const 42288 + i32.const 42336 i32.const 1 - i32.add - i32.mul - i32.add i32.const 1 - i32.shl + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $folding-inner1 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - local.get $5 - local.get $2 - local.get $3 + i32.shr_u + local.tee $8 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.set $1 - loop $for-loop|0 - local.get $4 - local.get $9 - i32.gt_u + i32.shr_u + local.tee $4 + i32.ge_u + if + local.get $4 + local.get $8 + i32.ge_u if - local.get $5 + local.get $2 + local.get $0 local.get $1 - i32.const 1 - i32.shl - i32.add local.get $0 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 + call $~lib/string/String.__eq + select + local.set $0 + end + br $folding-inner2 + end + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + local.get $8 + i32.eqz + if + local.get $3 + i32.eqz + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $3 + local.get $4 + i32.const 1 + i32.add + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store + local.get $11 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.set $1 + loop $for-loop|0 + local.get $4 local.get $5 + i32.gt_u + if + local.get $11 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $11 + local.get $1 + i32.const 1 + i32.add + local.tee $1 + i32.const 1 + i32.shl + 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 $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + br $folding-inner1 + end + local.get $3 + local.get $8 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + local.tee $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $4 + call $~lib/memory/memory.copy + loop $while-continue|1 + local.get $0 local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.const 1 - i32.shl - 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 $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 + local.get $10 + call $~lib/string/String#indexOf + local.tee $4 + i32.const -1 + i32.xor + if + local.get $5 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $3 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $4 + local.get $8 + i32.add + local.set $10 + br $while-continue|1 + end end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end - 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.get $7 - i32.eq - if - global.get $~lib/memory/__stack_pointer local.get $4 - 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.set $5 + loop $while-continue|2 local.get $0 local.get $1 local.get $10 call $~lib/string/String#indexOf - local.tee $5 + local.tee $7 i32.const -1 i32.xor if - local.get $4 + 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 $4 + 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 $3 + local.get $9 + local.get $7 + local.get $10 + i32.sub + local.tee $6 + i32.add + 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 $11 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $11 + local.get $6 + local.get $9 + i32.add + local.tee $10 i32.const 1 i32.shl i32.add @@ -23348,61 +23443,25 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $5 + local.get $3 + local.get $10 + i32.add + local.set $9 local.get $7 + local.get $8 i32.add local.set $10 - br $while-continue|1 + 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 $4 - return - end - local.get $4 - local.set $5 - loop $while-continue|2 - local.get $0 - local.get $1 - local.get $10 - call $~lib/string/String#indexOf - local.tee $9 - i32.const -1 - i32.xor + local.get $11 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 $4 - 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 $3 - local.get $8 local.get $9 + local.get $4 local.get $10 i32.sub - local.tee $6 - i32.add + local.tee $1 i32.add i32.lt_u if @@ -23418,112 +23477,48 @@ local.tee $11 i32.store offset=4 end - local.get $11 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $11 - local.get $6 - local.get $8 - i32.add - local.tee $10 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $3 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.get $10 - i32.add - local.set $8 - local.get $7 - local.get $9 - i32.add - local.set $10 - br $while-continue|2 - end - end - local.get $11 - if - local.get $5 - local.get $8 - local.get $4 - 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 $1 + if + local.get $11 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + end 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 $11 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $10 - i32.const 1 - i32.shl - i32.add local.get $1 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - end - local.get $5 - local.get $1 - local.get $8 - 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 + 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 + end + br $folding-inner1 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 $11 return end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index b2f4f84304..2f6f2466e8 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -256,16 +256,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 2656 i32.load i32.gt_u @@ -277,7 +277,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 2660 @@ -293,26 +293,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -472,17 +472,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1779,26 +1779,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $3 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 local.get $3 - local.get $1 + local.get $2 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -3484,22 +3484,22 @@ if global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/stringToId - local.tee $4 + local.tee $2 i32.store - local.get $4 + local.get $2 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> call $~lib/map/Map<~lib/string/String,usize>#find if global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/stringToId - local.tee $4 + local.tee $2 i32.store - local.get $4 + local.get $2 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> call $~lib/map/Map<~lib/string/String,usize>#find - local.tee $4 + local.tee $2 i32.eqz if i32.const 1648 @@ -3509,7 +3509,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.load offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3527,50 +3527,50 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i32.const 0 i32.store - local.get $4 + local.get $2 i32.const 24 i32.const 3 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $2 i32.store - local.get $4 + local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store - local.get $4 + local.get $2 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $4 + local.get $2 i32.const 3 i32.store offset=4 - local.get $4 + local.get $2 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store offset=8 - local.get $4 + local.get $2 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $4 + local.get $2 i32.const 4 i32.store offset=12 - local.get $4 + local.get $2 i32.const 0 i32.store offset=16 - local.get $4 + 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 $4 + local.get $2 global.set $~lib/symbol/stringToId global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3581,68 +3581,68 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i32.const 0 i32.store - local.get $4 + local.get $2 i32.const 24 i32.const 4 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $2 i32.store - local.get $4 + local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store - local.get $4 + local.get $2 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $4 + local.get $2 i32.const 3 i32.store offset=4 - local.get $4 + local.get $2 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store offset=8 - local.get $4 + local.get $2 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $4 + local.get $2 i32.const 4 i32.store offset=12 - local.get $4 + local.get $2 i32.const 0 i32.store offset=16 - local.get $4 + 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 $4 + local.get $2 global.set $~lib/symbol/idToString end global.get $~lib/symbol/nextId - local.tee $0 + local.tee $6 i32.const 1 i32.add global.set $~lib/symbol/nextId - local.get $0 + local.get $6 i32.eqz if unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $~lib/symbol/stringToId - local.tee $4 + local.tee $2 i32.store - local.get $1 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3653,26 +3653,26 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $2 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> local.tee $9 call $~lib/map/Map<~lib/string/String,usize>#find - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 + local.get $6 i32.store offset=4 else - local.get $4 + local.get $2 i32.load offset=16 - local.get $4 + local.get $2 i32.load offset=12 i32.eq if - local.get $4 + local.get $2 i32.load offset=20 - local.get $4 + local.get $2 i32.load offset=12 i32.const 3 i32.mul @@ -3680,17 +3680,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $4 + local.get $2 i32.load offset=4 else - local.get $4 + local.get $2 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3700,24 +3700,24 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.const 1 i32.add - local.tee $1 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3 @@ -3726,47 +3726,47 @@ i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $5 - local.get $4 + local.tee $3 + local.get $2 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $6 - local.get $2 - local.set $1 + local.set $5 + local.get $1 + local.set $0 loop $while-continue|0 + local.get $3 local.get $5 - local.get $6 i32.ne if - local.get $5 + local.get $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.load local.tee $8 i32.store offset=8 - local.get $1 + local.get $0 local.get $8 i32.store - local.get $1 - local.get $5 + local.get $0 + local.get $3 i32.load offset=4 i32.store offset=4 - local.get $1 + local.get $0 local.get $7 local.get $8 call $~lib/util/hash/HASH<~lib/string/String> - local.get $3 + local.get $4 i32.and i32.const 2 i32.shl @@ -3775,42 +3775,42 @@ i32.load i32.store offset=8 local.get $8 - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 12 i32.add - local.set $1 + local.set $0 end - local.get $5 + local.get $3 i32.const 12 i32.add - local.set $5 + local.set $3 br $while-continue|0 end end - local.get $4 + local.get $2 local.get $7 i32.store - local.get $4 + local.get $2 local.get $7 i32.const 0 call $~lib/rt/itcms/__link + local.get $2 local.get $4 - local.get $3 i32.store offset=4 - local.get $4 local.get $2 + local.get $1 i32.store offset=8 - local.get $4 local.get $2 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $4 + local.get $2 local.get $10 i32.store offset=12 - local.get $4 - local.get $4 + local.get $2 + local.get $2 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -3819,53 +3819,53 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $0 i32.store - local.get $4 - local.get $4 + local.get $2 + local.get $2 i32.load offset=16 - local.tee $3 + local.tee $4 i32.const 1 i32.add i32.store offset=16 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.const 12 i32.mul i32.add - local.tee $1 + local.tee $0 i32.const 1056 i32.store - local.get $4 + local.get $2 i32.const 1056 i32.const 1 call $~lib/rt/itcms/__link - local.get $1 local.get $0 + local.get $6 i32.store offset=4 - local.get $4 - local.get $4 + local.get $2 + local.get $2 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $1 - local.get $4 + local.get $0 + local.get $2 i32.load local.get $9 - local.get $4 + local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load i32.store offset=8 - local.get $4 - local.get $1 + local.get $2 + local.get $0 i32.store end global.get $~lib/memory/__stack_pointer @@ -3873,11 +3873,11 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $~lib/symbol/idToString - local.tee $4 + local.tee $2 i32.store - local.get $1 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3888,10 +3888,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $2 i32.load - local.get $0 - local.tee $2 + local.get $6 i32.const -1028477379 i32.mul i32.const 374761397 @@ -3920,7 +3919,7 @@ i32.shr_u i32.xor local.tee $8 - local.get $4 + local.get $2 i32.load offset=4 i32.and i32.const 2 @@ -3934,19 +3933,19 @@ if local.get $0 i32.load offset=8 - local.tee $3 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $6 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 @@ -3961,20 +3960,20 @@ local.get $0 i32.const 1056 i32.store offset=4 - local.get $4 + local.get $2 i32.const 1056 i32.const 1 call $~lib/rt/itcms/__link else - local.get $4 + local.get $2 i32.load offset=16 - local.get $4 + local.get $2 i32.load offset=12 i32.eq if - local.get $4 + local.get $2 i32.load offset=20 - local.get $4 + local.get $2 i32.load offset=12 i32.const 3 i32.mul @@ -3982,17 +3981,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $4 + local.get $2 i32.load offset=4 else - local.get $4 + local.get $2 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4006,7 +4005,7 @@ i64.const 0 i64.store local.get $0 - local.get $1 + local.get $4 i32.const 1 i32.add local.tee $0 @@ -4025,43 +4024,43 @@ i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $1 i32.store offset=4 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $5 - local.get $4 + local.tee $3 + local.get $2 i32.load offset=16 i32.const 12 i32.mul i32.add local.set $10 - local.get $3 + local.get $1 local.set $0 loop $while-continue|01 - local.get $5 + local.get $3 local.get $10 i32.ne if - local.get $5 + local.get $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $5 + local.get $3 i32.load - local.tee $6 + local.tee $5 i32.store local.get $0 - local.get $5 + local.get $3 i32.load offset=4 i32.store offset=4 local.get $0 local.get $7 - local.get $1 - local.get $6 + local.get $4 + local.get $5 i32.const -1028477379 i32.mul i32.const 374761397 @@ -4070,22 +4069,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 - local.get $6 + local.tee $5 + local.get $5 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $6 - local.get $6 + local.tee $5 + local.get $5 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $6 - local.get $6 + local.tee $5 + local.get $5 i32.const 16 i32.shr_u i32.xor @@ -4093,10 +4092,10 @@ i32.const 2 i32.shl i32.add - local.tee $6 + local.tee $5 i32.load i32.store offset=8 - local.get $6 + local.get $5 local.get $0 i32.store local.get $0 @@ -4104,35 +4103,35 @@ i32.add local.set $0 end - local.get $5 + local.get $3 i32.const 12 i32.add - local.set $5 + local.set $3 br $while-continue|01 end end - local.get $4 + local.get $2 local.get $7 i32.store - local.get $4 + local.get $2 local.get $7 i32.const 0 call $~lib/rt/itcms/__link + local.get $2 local.get $4 - local.get $1 i32.store offset=4 - local.get $4 - local.get $3 + local.get $2 + local.get $1 i32.store offset=8 - local.get $4 - local.get $3 + local.get $2 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $4 + local.get $2 local.get $9 i32.store offset=12 - local.get $4 - local.get $4 + local.get $2 + local.get $2 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -4141,52 +4140,52 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.load offset=8 local.tee $0 i32.store - local.get $4 - local.get $4 + local.get $2 + local.get $2 i32.load offset=16 - local.tee $1 + local.tee $4 i32.const 1 i32.add i32.store offset=16 local.get $0 - local.get $1 + local.get $4 i32.const 12 i32.mul i32.add local.tee $0 - local.get $2 + local.get $6 i32.store local.get $0 i32.const 1056 i32.store offset=4 - local.get $4 + local.get $2 i32.const 1056 i32.const 1 call $~lib/rt/itcms/__link - local.get $4 - local.get $4 + local.get $2 + local.get $2 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $4 + local.get $2 i32.load local.get $8 - local.get $4 + local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $2 i32.load i32.store offset=8 - local.get $4 + local.get $2 local.get $0 i32.store end @@ -4198,7 +4197,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $6 return end i32.const 19104 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index b46dc7440d..0704c86626 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -816,16 +816,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 16000 i32.load i32.gt_u @@ -837,7 +837,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 16004 @@ -853,26 +853,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -1032,17 +1032,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1904,7 +1904,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $1 + local.tee $3 local.get $0 i32.const 1073741820 i32.gt_u @@ -1932,11 +1932,11 @@ end local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size - local.tee $3 + local.tee $2 local.get $0 i32.const 536870910 i32.lt_u @@ -1955,9 +1955,9 @@ local.get $0 end i32.const 4 - local.get $1 - i32.load offset=1568 local.get $3 + i32.load offset=1568 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1971,16 +1971,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.tee $1 + local.get $1 local.get $2 - local.get $3 i32.lt_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 @@ -1988,18 +1988,18 @@ unreachable end end - 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 $1 + local.get $3 local.get $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -2011,7 +2011,7 @@ end end local.get $0 - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -2024,13 +2024,10 @@ call $~lib/builtins/abort unreachable end + local.get $3 local.get $1 - local.get $2 call $~lib/rt/tlsf/removeBlock local.get $1 - local.set $3 - local.get $2 - local.tee $1 i32.load local.set $2 local.get $0 @@ -2253,11 +2250,11 @@ i32.and i32.const 24 i32.add - local.tee $3 + local.tee $5 i32.add local.set $1 local.get $2 - local.get $3 + local.get $5 i32.sub local.set $2 local.get $0 @@ -3318,14 +3315,14 @@ i32.const 3 i32.shl i32.add - local.tee $3 + local.tee $7 f64.load f64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 + local.get $7 local.get $5 f64.store local.get $2 @@ -3504,14 +3501,13 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f64) + (local $9 i64) (local $10 i32) - (local $11 f64) + (local $11 i32) (local $12 i32) - (local $13 f64) - (local $14 i32) - (local $15 i32) - (local $16 i64) + (local $13 i32) + (local $14 f64) + (local $15 f64) local.get $1 i32.const 48 i32.le_s @@ -3525,10 +3521,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -3536,17 +3533,17 @@ end local.get $0 f64.load - local.set $13 + local.set $15 local.get $0 f64.load offset=8 - local.set $9 + local.set $14 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $9 - local.get $13 - local.get $13 - local.get $9 + local.get $14 + local.get $15 + local.get $15 + local.get $14 local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) @@ -3555,49 +3552,49 @@ local.tee $1 select f64.store + local.get $15 + local.get $14 + local.get $1 + select + local.set $15 local.get $0 f64.load offset=16 - local.set $11 + local.set $14 i32.const 2 global.set $~argumentsLength - local.get $13 - local.get $9 - local.get $1 - select - local.tee $9 - local.get $11 + local.get $0 + local.get $14 + local.get $15 + local.get $15 + local.get $14 local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $11 - local.get $9 - local.get $1 + local.tee $1 select f64.store offset=8 local.get $0 - local.get $9 - local.get $11 + local.get $15 + local.get $14 local.get $1 select f64.store offset=16 end local.get $0 f64.load - local.set $11 + local.set $15 local.get $0 f64.load offset=8 - local.set $9 + local.set $14 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $9 - local.get $11 - local.get $11 - local.get $9 + local.get $14 + local.get $15 + local.get $15 + local.get $14 local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) @@ -3607,8 +3604,8 @@ select f64.store local.get $0 - local.get $11 - local.get $9 + local.get $15 + local.get $14 local.get $1 select f64.store offset=8 @@ -3616,7 +3613,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -3631,32 +3628,32 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc local.tee $12 - local.get $5 + local.get $7 i32.add - local.set $14 + local.set $11 i32.const 0 - local.set $5 + local.set $7 loop $for-loop|1 - local.get $5 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $5 + local.get $7 i32.const 2 i32.shl local.get $12 i32.add i32.const -1 i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|1 end end @@ -3664,16 +3661,16 @@ i32.const 3 i32.shl call $~lib/rt/tlsf/__alloc - local.set $15 + local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $10 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $5 i32.const 1 i32.add local.tee $1 @@ -3682,31 +3679,31 @@ if local.get $0 i32.const 0 - local.get $10 + local.get $13 i32.const 31 - local.get $10 + local.get $13 i32.const 31 i32.lt_s select - local.tee $7 + local.tee $5 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 - local.get $10 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $7 + local.get $5 i32.const 1 i32.add local.tee $6 - local.get $10 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 local.get $6 i32.sub i32.const 1 @@ -3717,16 +3714,16 @@ if local.get $0 local.get $6 - local.get $10 + local.get $13 local.get $6 i32.const 31 i32.add local.tee $1 local.get $1 - local.get $10 + local.get $13 i32.gt_s select - local.tee $5 + local.tee $7 local.get $8 local.get $2 call $~lib/util/sort/insertionSort @@ -3737,21 +3734,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $10 + local.get $13 i32.const 1 i32.add i64.extend_i32_u - local.tee $16 + local.tee $9 i64.div_u - local.get $5 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $16 + local.get $9 i64.div_u i64.xor i32.wrap_i64 @@ -3776,7 +3773,7 @@ if local.get $0 local.get $4 - local.get $14 + local.get $11 local.get $8 i32.const 2 i32.shl @@ -3785,8 +3782,8 @@ i32.load i32.const 1 i32.add - local.get $7 - local.get $15 + local.get $5 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 @@ -3813,14 +3810,14 @@ local.get $3 i32.store local.get $4 - local.get $14 + local.get $11 i32.add - local.get $7 + local.get $5 i32.store local.get $6 local.set $3 - local.get $5 - local.set $7 + local.get $7 + local.set $5 local.get $1 local.set $4 br $while-continue|2 @@ -3844,13 +3841,13 @@ local.get $4 i32.const 2 i32.shl - local.get $14 + local.get $11 i32.add i32.load i32.const 1 i32.add + local.get $13 local.get $10 - local.get $15 local.get $2 call $~lib/util/sort/mergeRuns end @@ -3861,7 +3858,7 @@ br $for-loop|4 end end - local.get $15 + local.get $10 call $~lib/rt/tlsf/__free local.get $12 call $~lib/rt/tlsf/__free @@ -5970,10 +5967,10 @@ local.get $1 local.get $2 i32.load offset=16 - local.tee $0 - local.get $0 + local.tee $2 local.get $1 - i32.gt_u + local.get $2 + i32.lt_u select call $~lib/memory/memory.copy local.get $3 @@ -6513,9 +6510,9 @@ 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/Int8Array,i8>|inlined.0 local.get $2 i32.load offset=8 @@ -6530,28 +6527,28 @@ i32.load offset=4 local.set $3 loop $while-continue|0 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|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 @@ -6561,9 +6558,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.01 local.get $2 i32.load offset=8 @@ -6578,29 +6575,29 @@ i32.load offset=4 local.set $3 loop $while-continue|02 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|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 @@ -6612,9 +6609,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 local.get $2 i32.load offset=8 @@ -6629,29 +6626,29 @@ i32.load offset=4 local.set $3 loop $while-continue|05 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 255 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|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 @@ -6663,9 +6660,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 local.get $2 i32.load offset=8 @@ -6680,29 +6677,29 @@ i32.load offset=4 local.set $3 loop $while-continue|08 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|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 @@ -6714,9 +6711,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 local.get $2 i32.load offset=8 @@ -6731,29 +6728,29 @@ i32.load offset=4 local.set $3 loop $while-continue|011 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|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 @@ -6765,9 +6762,9 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 local.get $2 i32.load offset=8 @@ -6782,29 +6779,29 @@ i32.load offset=4 local.set $3 loop $while-continue|014 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|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 @@ -6816,9 +6813,9 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 local.get $2 i32.load offset=8 @@ -6833,29 +6830,29 @@ i32.load offset=4 local.set $3 loop $while-continue|017 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|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 @@ -6867,9 +6864,9 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 local.get $2 i32.load offset=8 @@ -6884,29 +6881,29 @@ i32.load offset=4 local.set $3 loop $while-continue|020 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|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 @@ -7549,9 +7546,9 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 local.get $4 i32.load offset=8 @@ -7566,29 +7563,29 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -7600,9 +7597,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 local.get $4 i32.load offset=8 @@ -7617,29 +7614,29 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 4 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -7649,9 +7646,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 local.get $4 i32.load offset=8 @@ -7666,29 +7663,29 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -7700,9 +7697,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 local.get $4 i32.load offset=8 @@ -7717,29 +7714,29 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 9 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -7751,9 +7748,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 local.get $4 i32.load offset=8 @@ -7768,29 +7765,29 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 10 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -7802,9 +7799,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 local.get $4 i32.load offset=8 @@ -7819,29 +7816,29 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -7853,9 +7850,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 local.get $4 i32.load offset=8 @@ -7870,29 +7867,29 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -7904,9 +7901,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 local.get $4 i32.load offset=8 @@ -7921,29 +7918,29 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -8018,9 +8015,9 @@ 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/Uint8Array,u8>|inlined.0 local.get $2 i32.load offset=8 @@ -8035,28 +8032,28 @@ i32.load offset=4 local.set $3 loop $while-continue|0 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|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 @@ -8066,9 +8063,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 local.get $2 i32.load offset=8 @@ -8083,29 +8080,29 @@ i32.load offset=4 local.set $3 loop $while-continue|02 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|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 @@ -8117,9 +8114,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 local.get $2 i32.load offset=8 @@ -8134,29 +8131,29 @@ i32.load offset=4 local.set $3 loop $while-continue|05 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 255 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|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 @@ -8168,9 +8165,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 local.get $2 i32.load offset=8 @@ -8185,29 +8182,29 @@ i32.load offset=4 local.set $3 loop $while-continue|08 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|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 @@ -8219,9 +8216,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 local.get $2 i32.load offset=8 @@ -8236,29 +8233,29 @@ i32.load offset=4 local.set $3 loop $while-continue|011 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|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 @@ -8270,9 +8267,9 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 local.get $2 i32.load offset=8 @@ -8287,29 +8284,29 @@ i32.load offset=4 local.set $3 loop $while-continue|014 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|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 @@ -8321,9 +8318,9 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 local.get $2 i32.load offset=8 @@ -8338,29 +8335,29 @@ i32.load offset=4 local.set $3 loop $while-continue|017 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|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 @@ -8372,9 +8369,9 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 local.get $2 i32.load offset=8 @@ -8389,29 +8386,29 @@ i32.load offset=4 local.set $3 loop $while-continue|020 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|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 @@ -9053,9 +9050,9 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 local.get $4 i32.load offset=8 @@ -9070,29 +9067,29 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -9104,9 +9101,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 local.get $4 i32.load offset=8 @@ -9121,29 +9118,29 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 4 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -9153,9 +9150,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $4 i32.load offset=8 @@ -9170,29 +9167,29 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -9204,9 +9201,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 local.get $4 i32.load offset=8 @@ -9221,29 +9218,29 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 9 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -9255,9 +9252,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 local.get $4 i32.load offset=8 @@ -9272,29 +9269,29 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 10 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -9306,9 +9303,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 local.get $4 i32.load offset=8 @@ -9323,29 +9320,29 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -9357,9 +9354,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 local.get $4 i32.load offset=8 @@ -9374,29 +9371,29 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -9408,9 +9405,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 local.get $4 i32.load offset=8 @@ -9425,29 +9422,29 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -9522,9 +9519,9 @@ 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/Uint8Array,u8>|inlined.0 local.get $2 i32.load offset=8 @@ -9539,28 +9536,28 @@ i32.load offset=4 local.set $3 loop $while-continue|0 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|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 @@ -9570,9 +9567,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 local.get $2 i32.load offset=8 @@ -9587,29 +9584,29 @@ i32.load offset=4 local.set $3 loop $while-continue|02 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|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 @@ -9621,9 +9618,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 local.get $2 i32.load offset=8 @@ -9638,29 +9635,29 @@ i32.load offset=4 local.set $3 loop $while-continue|05 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 255 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|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 @@ -9672,9 +9669,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 local.get $2 i32.load offset=8 @@ -9689,29 +9686,29 @@ i32.load offset=4 local.set $3 loop $while-continue|08 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|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 @@ -9723,9 +9720,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 local.get $2 i32.load offset=8 @@ -9740,29 +9737,29 @@ i32.load offset=4 local.set $3 loop $while-continue|011 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|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 @@ -9774,9 +9771,9 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 local.get $2 i32.load offset=8 @@ -9791,29 +9788,29 @@ i32.load offset=4 local.set $3 loop $while-continue|014 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|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 @@ -9825,9 +9822,9 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 local.get $2 i32.load offset=8 @@ -9842,29 +9839,29 @@ i32.load offset=4 local.set $3 loop $while-continue|017 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|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 @@ -9876,9 +9873,9 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 local.get $2 i32.load offset=8 @@ -9893,29 +9890,29 @@ i32.load offset=4 local.set $3 loop $while-continue|020 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $3 i32.add i32.load8_u i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|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 @@ -10557,9 +10554,9 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 local.get $4 i32.load offset=8 @@ -10574,29 +10571,29 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -10608,9 +10605,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 local.get $4 i32.load offset=8 @@ -10625,29 +10622,29 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 4 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -10657,9 +10654,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $4 i32.load offset=8 @@ -10674,29 +10671,29 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -10708,9 +10705,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 local.get $4 i32.load offset=8 @@ -10725,29 +10722,29 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 9 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -10759,9 +10756,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 local.get $4 i32.load offset=8 @@ -10776,29 +10773,29 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 10 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -10810,9 +10807,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 local.get $4 i32.load offset=8 @@ -10827,29 +10824,29 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -10861,9 +10858,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 local.get $4 i32.load offset=8 @@ -10878,29 +10875,29 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -10912,9 +10909,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 local.get $4 i32.load offset=8 @@ -10929,29 +10926,29 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -11025,9 +11022,9 @@ 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 $2 i32.load offset=8 @@ -11043,30 +11040,30 @@ i32.load offset=4 local.set $3 loop $while-continue|0 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl 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 @@ -11076,9 +11073,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 local.get $2 i32.load offset=8 @@ -11094,13 +11091,13 @@ i32.load offset=4 local.set $3 loop $while-continue|02 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -11108,17 +11105,17 @@ 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 @@ -11130,9 +11127,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 local.get $2 i32.load offset=8 @@ -11148,13 +11145,13 @@ i32.load offset=4 local.set $3 loop $while-continue|05 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -11162,17 +11159,17 @@ 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 @@ -11184,9 +11181,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 local.get $2 i32.load offset=8 @@ -11202,13 +11199,13 @@ i32.load offset=4 local.set $3 loop $while-continue|08 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -11216,17 +11213,17 @@ 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 @@ -11238,9 +11235,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 local.get $2 i32.load offset=8 @@ -11257,13 +11254,13 @@ i32.load offset=4 local.set $3 loop $while-continue|011 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -11271,17 +11268,17 @@ 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 @@ -11293,9 +11290,9 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 local.get $2 i32.load offset=8 @@ -11312,13 +11309,13 @@ i32.load offset=4 local.set $3 loop $while-continue|014 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -11326,17 +11323,17 @@ 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 @@ -11348,9 +11345,9 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 local.get $2 i32.load offset=8 @@ -11367,13 +11364,13 @@ i32.load offset=4 local.set $3 loop $while-continue|017 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -11381,17 +11378,17 @@ 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 @@ -11403,9 +11400,9 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 local.get $2 i32.load offset=8 @@ -11422,13 +11419,13 @@ i32.load offset=4 local.set $3 loop $while-continue|020 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -11436,17 +11433,17 @@ 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 @@ -12140,9 +12137,9 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 local.get $4 i32.load offset=8 @@ -12158,13 +12155,13 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -12172,17 +12169,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -12194,9 +12191,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 local.get $4 i32.load offset=8 @@ -12212,13 +12209,13 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -12226,17 +12223,17 @@ i32.const 4 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -12246,9 +12243,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 local.get $4 i32.load offset=8 @@ -12264,13 +12261,13 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -12278,17 +12275,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -12300,9 +12297,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 local.get $4 i32.load offset=8 @@ -12318,13 +12315,13 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -12332,17 +12329,17 @@ i32.const 9 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -12354,9 +12351,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 local.get $4 i32.load offset=8 @@ -12372,13 +12369,13 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -12386,17 +12383,17 @@ i32.const 10 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -12408,9 +12405,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 local.get $4 i32.load offset=8 @@ -12426,13 +12423,13 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -12440,17 +12437,17 @@ i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -12462,9 +12459,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 local.get $4 i32.load offset=8 @@ -12481,13 +12478,13 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -12495,17 +12492,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -12517,9 +12514,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 local.get $4 i32.load offset=8 @@ -12536,13 +12533,13 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -12550,17 +12547,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -12635,9 +12632,9 @@ 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 $2 i32.load offset=8 @@ -12653,30 +12650,30 @@ i32.load offset=4 local.set $3 loop $while-continue|0 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl 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 @@ -12686,9 +12683,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 local.get $2 i32.load offset=8 @@ -12704,13 +12701,13 @@ i32.load offset=4 local.set $3 loop $while-continue|02 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -12718,17 +12715,17 @@ 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 @@ -12740,9 +12737,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 local.get $2 i32.load offset=8 @@ -12758,13 +12755,13 @@ i32.load offset=4 local.set $3 loop $while-continue|05 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -12772,17 +12769,17 @@ 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 @@ -12794,9 +12791,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 local.get $2 i32.load offset=8 @@ -12812,13 +12809,13 @@ i32.load offset=4 local.set $3 loop $while-continue|08 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -12826,17 +12823,17 @@ 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 @@ -12848,9 +12845,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 local.get $2 i32.load offset=8 @@ -12867,13 +12864,13 @@ i32.load offset=4 local.set $3 loop $while-continue|011 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -12881,17 +12878,17 @@ 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 @@ -12903,9 +12900,9 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 local.get $2 i32.load offset=8 @@ -12922,13 +12919,13 @@ i32.load offset=4 local.set $3 loop $while-continue|014 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -12936,17 +12933,17 @@ 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 @@ -12958,9 +12955,9 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 local.get $2 i32.load offset=8 @@ -12977,13 +12974,13 @@ i32.load offset=4 local.set $3 loop $while-continue|017 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -12991,17 +12988,17 @@ 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 @@ -13013,9 +13010,9 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 local.get $2 i32.load offset=8 @@ -13032,13 +13029,13 @@ i32.load offset=4 local.set $3 loop $while-continue|020 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -13046,17 +13043,17 @@ 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 @@ -13750,9 +13747,9 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 local.get $4 i32.load offset=8 @@ -13768,13 +13765,13 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -13782,17 +13779,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -13804,9 +13801,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 local.get $4 i32.load offset=8 @@ -13822,13 +13819,13 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -13836,17 +13833,17 @@ i32.const 4 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -13856,9 +13853,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 local.get $4 i32.load offset=8 @@ -13874,13 +13871,13 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -13888,17 +13885,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -13910,9 +13907,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 local.get $4 i32.load offset=8 @@ -13928,13 +13925,13 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -13942,17 +13939,17 @@ i32.const 9 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -13964,9 +13961,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 local.get $4 i32.load offset=8 @@ -13982,13 +13979,13 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -13996,17 +13993,17 @@ i32.const 10 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -14018,9 +14015,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 local.get $4 i32.load offset=8 @@ -14036,13 +14033,13 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -14050,17 +14047,17 @@ i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -14072,9 +14069,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 local.get $4 i32.load offset=8 @@ -14091,13 +14088,13 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -14105,17 +14102,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -14127,9 +14124,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 local.get $4 i32.load offset=8 @@ -14146,13 +14143,13 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl i32.add @@ -14160,17 +14157,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -14243,9 +14240,9 @@ 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/Int32Array,i32>|inlined.0 local.get $2 i32.load offset=8 @@ -14261,30 +14258,30 @@ i32.load offset=4 local.set $3 loop $while-continue|0 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add i32.load i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -14294,9 +14291,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 local.get $2 i32.load offset=8 @@ -14312,13 +14309,13 @@ i32.load offset=4 local.set $3 loop $while-continue|02 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -14326,17 +14323,17 @@ i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -14348,9 +14345,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 local.get $2 i32.load offset=8 @@ -14366,13 +14363,13 @@ i32.load offset=4 local.set $3 loop $while-continue|05 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -14380,17 +14377,17 @@ i32.const -1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -14402,9 +14399,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 local.get $2 i32.load offset=8 @@ -14420,13 +14417,13 @@ i32.load offset=4 local.set $3 loop $while-continue|08 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -14434,17 +14431,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -14456,9 +14453,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 local.get $2 i32.load offset=8 @@ -14475,13 +14472,13 @@ i32.load offset=4 local.set $3 loop $while-continue|011 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -14489,17 +14486,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -14511,9 +14508,9 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 local.get $2 i32.load offset=8 @@ -14530,13 +14527,13 @@ i32.load offset=4 local.set $3 loop $while-continue|014 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -14544,17 +14541,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -14566,9 +14563,9 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 local.get $2 i32.load offset=8 @@ -14585,13 +14582,13 @@ i32.load offset=4 local.set $3 loop $while-continue|017 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -14599,17 +14596,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -14621,9 +14618,9 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 local.get $2 i32.load offset=8 @@ -14640,13 +14637,13 @@ i32.load offset=4 local.set $3 loop $while-continue|020 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -14654,17 +14651,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -15359,9 +15356,9 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 local.get $4 i32.load offset=8 @@ -15377,13 +15374,13 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -15391,17 +15388,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -15413,9 +15410,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 local.get $4 i32.load offset=8 @@ -15431,13 +15428,13 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -15445,17 +15442,17 @@ i32.const 4 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -15465,9 +15462,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 local.get $4 i32.load offset=8 @@ -15483,13 +15480,13 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -15497,17 +15494,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -15519,9 +15516,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 local.get $4 i32.load offset=8 @@ -15537,13 +15534,13 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -15551,17 +15548,17 @@ i32.const 9 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -15573,9 +15570,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 local.get $4 i32.load offset=8 @@ -15591,13 +15588,13 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -15605,17 +15602,17 @@ i32.const 10 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -15627,9 +15624,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 local.get $4 i32.load offset=8 @@ -15645,13 +15642,13 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -15659,17 +15656,17 @@ i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -15681,9 +15678,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 local.get $4 i32.load offset=8 @@ -15700,13 +15697,13 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -15714,17 +15711,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -15736,9 +15733,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 local.get $4 i32.load offset=8 @@ -15755,13 +15752,13 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -15769,17 +15766,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -15852,9 +15849,9 @@ 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/Uint32Array,u32>|inlined.0 local.get $2 i32.load offset=8 @@ -15870,30 +15867,30 @@ i32.load offset=4 local.set $3 loop $while-continue|0 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add i32.load i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -15903,9 +15900,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 local.get $2 i32.load offset=8 @@ -15921,13 +15918,13 @@ i32.load offset=4 local.set $3 loop $while-continue|02 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -15935,17 +15932,17 @@ i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -15957,9 +15954,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 local.get $2 i32.load offset=8 @@ -15975,13 +15972,13 @@ i32.load offset=4 local.set $3 loop $while-continue|05 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -15989,17 +15986,17 @@ i32.const -1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -16011,9 +16008,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 local.get $2 i32.load offset=8 @@ -16029,13 +16026,13 @@ i32.load offset=4 local.set $3 loop $while-continue|08 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -16043,17 +16040,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -16065,9 +16062,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 local.get $2 i32.load offset=8 @@ -16084,13 +16081,13 @@ i32.load offset=4 local.set $3 loop $while-continue|011 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -16098,17 +16095,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -16120,9 +16117,9 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 local.get $2 i32.load offset=8 @@ -16139,13 +16136,13 @@ i32.load offset=4 local.set $3 loop $while-continue|014 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -16153,17 +16150,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -16175,9 +16172,9 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 local.get $2 i32.load offset=8 @@ -16194,13 +16191,13 @@ i32.load offset=4 local.set $3 loop $while-continue|017 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -16208,17 +16205,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -16230,9 +16227,9 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 local.get $2 i32.load offset=8 @@ -16249,13 +16246,13 @@ i32.load offset=4 local.set $3 loop $while-continue|020 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -16263,17 +16260,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -16967,9 +16964,9 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 local.get $4 i32.load offset=8 @@ -16985,13 +16982,13 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -16999,17 +16996,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17021,9 +17018,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 local.get $4 i32.load offset=8 @@ -17039,13 +17036,13 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -17053,17 +17050,17 @@ i32.const 4 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -17073,9 +17070,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 local.get $4 i32.load offset=8 @@ -17091,13 +17088,13 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -17105,17 +17102,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -17127,9 +17124,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 local.get $4 i32.load offset=8 @@ -17145,13 +17142,13 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -17159,17 +17156,17 @@ i32.const 9 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17181,9 +17178,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 local.get $4 i32.load offset=8 @@ -17199,13 +17196,13 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -17213,17 +17210,17 @@ i32.const 10 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17235,9 +17232,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 local.get $4 i32.load offset=8 @@ -17253,13 +17250,13 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -17267,17 +17264,17 @@ i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17289,9 +17286,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 local.get $4 i32.load offset=8 @@ -17308,13 +17305,13 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -17322,17 +17319,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -17344,9 +17341,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 local.get $4 i32.load offset=8 @@ -17363,13 +17360,13 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -17377,17 +17374,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17461,9 +17458,9 @@ 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/Int64Array,i64>|inlined.0 local.get $2 i32.load offset=8 @@ -17479,30 +17476,30 @@ i32.load offset=4 local.set $3 loop $while-continue|0 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add i64.load i64.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -17512,9 +17509,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 local.get $2 i32.load offset=8 @@ -17530,13 +17527,13 @@ i32.load offset=4 local.set $3 loop $while-continue|02 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -17544,17 +17541,17 @@ i64.const 11 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17566,9 +17563,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 local.get $2 i32.load offset=8 @@ -17584,13 +17581,13 @@ i32.load offset=4 local.set $3 loop $while-continue|05 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -17598,17 +17595,17 @@ i64.const -1 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17620,9 +17617,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 local.get $2 i32.load offset=8 @@ -17638,13 +17635,13 @@ i32.load offset=4 local.set $3 loop $while-continue|08 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -17652,17 +17649,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -17674,9 +17671,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 local.get $2 i32.load offset=8 @@ -17693,13 +17690,13 @@ i32.load offset=4 local.set $3 loop $while-continue|011 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -17707,17 +17704,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -17729,9 +17726,9 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 local.get $2 i32.load offset=8 @@ -17748,13 +17745,13 @@ i32.load offset=4 local.set $3 loop $while-continue|014 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -17762,17 +17759,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -17784,9 +17781,9 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 local.get $2 i32.load offset=8 @@ -17803,13 +17800,13 @@ i32.load offset=4 local.set $3 loop $while-continue|017 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -17817,17 +17814,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17839,9 +17836,9 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 local.get $2 i32.load offset=8 @@ -17858,13 +17855,13 @@ i32.load offset=4 local.set $3 loop $while-continue|020 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -17872,17 +17869,17 @@ i64.const 1 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18576,9 +18573,9 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 local.get $4 i32.load offset=8 @@ -18594,13 +18591,13 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -18608,17 +18605,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18630,9 +18627,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 local.get $4 i32.load offset=8 @@ -18648,13 +18645,13 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -18662,17 +18659,17 @@ i64.const 4 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -18682,9 +18679,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 local.get $4 i32.load offset=8 @@ -18700,13 +18697,13 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -18714,17 +18711,17 @@ i64.const 5 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -18736,9 +18733,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 local.get $4 i32.load offset=8 @@ -18754,13 +18751,13 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -18768,17 +18765,17 @@ i64.const 9 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18790,9 +18787,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 local.get $4 i32.load offset=8 @@ -18808,13 +18805,13 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -18822,17 +18819,17 @@ i64.const 10 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18844,9 +18841,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 local.get $4 i32.load offset=8 @@ -18862,13 +18859,13 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -18876,17 +18873,17 @@ i64.const 11 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18898,9 +18895,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 local.get $4 i32.load offset=8 @@ -18917,13 +18914,13 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -18931,17 +18928,17 @@ i64.const 5 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -18953,9 +18950,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 local.get $4 i32.load offset=8 @@ -18972,13 +18969,13 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -18986,17 +18983,17 @@ i64.const 5 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -19070,9 +19067,9 @@ 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/Uint64Array,u64>|inlined.0 local.get $2 i32.load offset=8 @@ -19088,30 +19085,30 @@ i32.load offset=4 local.set $3 loop $while-continue|0 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add i64.load i64.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -19121,9 +19118,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 local.get $2 i32.load offset=8 @@ -19139,13 +19136,13 @@ i32.load offset=4 local.set $3 loop $while-continue|02 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -19153,17 +19150,17 @@ i64.const 11 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -19175,9 +19172,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 local.get $2 i32.load offset=8 @@ -19193,13 +19190,13 @@ i32.load offset=4 local.set $3 loop $while-continue|05 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -19207,17 +19204,17 @@ i64.const -1 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -19229,9 +19226,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 local.get $2 i32.load offset=8 @@ -19247,13 +19244,13 @@ i32.load offset=4 local.set $3 loop $while-continue|08 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -19261,17 +19258,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -19283,9 +19280,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 local.get $2 i32.load offset=8 @@ -19302,13 +19299,13 @@ i32.load offset=4 local.set $3 loop $while-continue|011 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -19316,17 +19313,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -19338,9 +19335,9 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 local.get $2 i32.load offset=8 @@ -19357,13 +19354,13 @@ i32.load offset=4 local.set $3 loop $while-continue|014 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -19371,17 +19368,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -19393,9 +19390,9 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 local.get $2 i32.load offset=8 @@ -19412,13 +19409,13 @@ i32.load offset=4 local.set $3 loop $while-continue|017 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -19426,17 +19423,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -19448,9 +19445,9 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 local.get $2 i32.load offset=8 @@ -19467,13 +19464,13 @@ i32.load offset=4 local.set $3 loop $while-continue|020 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -19481,17 +19478,17 @@ i64.const 1 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20185,9 +20182,9 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 local.get $4 i32.load offset=8 @@ -20203,13 +20200,13 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -20217,17 +20214,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20239,9 +20236,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 local.get $4 i32.load offset=8 @@ -20257,13 +20254,13 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -20271,17 +20268,17 @@ i64.const 4 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -20291,9 +20288,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 local.get $4 i32.load offset=8 @@ -20309,13 +20306,13 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -20323,17 +20320,17 @@ i64.const 5 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -20345,9 +20342,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 local.get $4 i32.load offset=8 @@ -20363,13 +20360,13 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -20377,17 +20374,17 @@ i64.const 9 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20399,9 +20396,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 local.get $4 i32.load offset=8 @@ -20417,13 +20414,13 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -20431,17 +20428,17 @@ i64.const 10 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20453,9 +20450,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 local.get $4 i32.load offset=8 @@ -20471,13 +20468,13 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -20485,17 +20482,17 @@ i64.const 11 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20507,9 +20504,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 local.get $4 i32.load offset=8 @@ -20526,13 +20523,13 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -20540,17 +20537,17 @@ i64.const 5 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -20562,9 +20559,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 local.get $4 i32.load offset=8 @@ -20581,13 +20578,13 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -20595,17 +20592,17 @@ i64.const 5 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20679,9 +20676,9 @@ 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/Float32Array,f32>|inlined.0 local.get $2 i32.load offset=8 @@ -20697,13 +20694,13 @@ i32.load offset=4 local.set $3 loop $while-continue|0 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -20711,17 +20708,17 @@ f32.const 0 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -20731,9 +20728,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 local.get $2 i32.load offset=8 @@ -20749,13 +20746,13 @@ i32.load offset=4 local.set $3 loop $while-continue|02 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -20763,17 +20760,17 @@ f32.const 11 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20785,9 +20782,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 local.get $2 i32.load offset=8 @@ -20803,13 +20800,13 @@ i32.load offset=4 local.set $3 loop $while-continue|05 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -20817,17 +20814,17 @@ f32.const -1 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20839,9 +20836,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 local.get $2 i32.load offset=8 @@ -20857,13 +20854,13 @@ i32.load offset=4 local.set $3 loop $while-continue|08 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -20871,17 +20868,17 @@ f32.const 3 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -20893,9 +20890,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 local.get $2 i32.load offset=8 @@ -20912,13 +20909,13 @@ i32.load offset=4 local.set $3 loop $while-continue|011 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -20926,17 +20923,17 @@ f32.const 3 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -20948,9 +20945,9 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 local.get $2 i32.load offset=8 @@ -20967,13 +20964,13 @@ i32.load offset=4 local.set $3 loop $while-continue|014 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -20981,17 +20978,17 @@ f32.const 3 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -21003,9 +21000,9 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 local.get $2 i32.load offset=8 @@ -21022,13 +21019,13 @@ i32.load offset=4 local.set $3 loop $while-continue|017 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -21036,17 +21033,17 @@ f32.const 3 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21058,9 +21055,9 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 local.get $2 i32.load offset=8 @@ -21077,13 +21074,13 @@ i32.load offset=4 local.set $3 loop $while-continue|020 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -21091,17 +21088,17 @@ f32.const 1 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21796,9 +21793,9 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 local.get $4 i32.load offset=8 @@ -21814,13 +21811,13 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -21828,17 +21825,17 @@ f32.const 3 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21850,9 +21847,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 local.get $4 i32.load offset=8 @@ -21868,13 +21865,13 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -21882,17 +21879,17 @@ f32.const 4 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -21902,9 +21899,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 local.get $4 i32.load offset=8 @@ -21920,13 +21917,13 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -21934,17 +21931,17 @@ f32.const 5 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -21956,9 +21953,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 local.get $4 i32.load offset=8 @@ -21974,13 +21971,13 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -21988,17 +21985,17 @@ f32.const 9 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22010,9 +22007,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 local.get $4 i32.load offset=8 @@ -22028,13 +22025,13 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -22042,17 +22039,17 @@ f32.const 10 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22064,9 +22061,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 local.get $4 i32.load offset=8 @@ -22082,13 +22079,13 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -22096,17 +22093,17 @@ f32.const 11 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22118,9 +22115,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 local.get $4 i32.load offset=8 @@ -22137,13 +22134,13 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -22151,17 +22148,17 @@ f32.const 5 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -22173,9 +22170,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 local.get $4 i32.load offset=8 @@ -22192,13 +22189,13 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -22206,17 +22203,17 @@ f32.const 5 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22290,9 +22287,9 @@ 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/Float64Array,f64>|inlined.0 local.get $2 i32.load offset=8 @@ -22308,13 +22305,13 @@ i32.load offset=4 local.set $3 loop $while-continue|0 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -22322,17 +22319,17 @@ f64.const 0 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -22342,9 +22339,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 local.get $2 i32.load offset=8 @@ -22360,13 +22357,13 @@ i32.load offset=4 local.set $3 loop $while-continue|02 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -22374,17 +22371,17 @@ f64.const 11 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22396,9 +22393,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 local.get $2 i32.load offset=8 @@ -22414,13 +22411,13 @@ i32.load offset=4 local.set $3 loop $while-continue|05 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -22428,17 +22425,17 @@ f64.const -1 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22450,9 +22447,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 local.get $2 i32.load offset=8 @@ -22468,13 +22465,13 @@ i32.load offset=4 local.set $3 loop $while-continue|08 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -22482,17 +22479,17 @@ f64.const 3 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -22504,9 +22501,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 local.get $2 i32.load offset=8 @@ -22523,13 +22520,13 @@ i32.load offset=4 local.set $3 loop $while-continue|011 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -22537,17 +22534,17 @@ f64.const 3 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -22559,9 +22556,9 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 local.get $2 i32.load offset=8 @@ -22578,13 +22575,13 @@ i32.load offset=4 local.set $3 loop $while-continue|014 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -22592,17 +22589,17 @@ f64.const 3 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -22614,9 +22611,9 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 local.get $2 i32.load offset=8 @@ -22633,13 +22630,13 @@ i32.load offset=4 local.set $3 loop $while-continue|017 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -22647,17 +22644,17 @@ f64.const 3 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22669,9 +22666,9 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 local.get $2 i32.load offset=8 @@ -22688,13 +22685,13 @@ i32.load offset=4 local.set $3 loop $while-continue|020 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -22702,17 +22699,17 @@ f64.const 1 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -23408,9 +23405,9 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 local.get $4 i32.load offset=8 @@ -23426,13 +23423,13 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -23440,17 +23437,17 @@ f64.const 3 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -23462,9 +23459,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 local.get $4 i32.load offset=8 @@ -23480,13 +23477,13 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -23494,17 +23491,17 @@ f64.const 4 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -23514,9 +23511,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 local.get $4 i32.load offset=8 @@ -23532,13 +23529,13 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -23546,17 +23543,17 @@ f64.const 5 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -23568,9 +23565,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 local.get $4 i32.load offset=8 @@ -23586,13 +23583,13 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -23600,17 +23597,17 @@ f64.const 9 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -23622,9 +23619,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 local.get $4 i32.load offset=8 @@ -23640,13 +23637,13 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -23654,17 +23651,17 @@ f64.const 10 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -23676,9 +23673,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 local.get $4 i32.load offset=8 @@ -23694,13 +23691,13 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -23708,17 +23705,17 @@ f64.const 11 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -23730,9 +23727,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 local.get $4 i32.load offset=8 @@ -23749,13 +23746,13 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -23763,17 +23760,17 @@ f64.const 5 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -23785,9 +23782,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 local.get $4 i32.load offset=8 @@ -23804,13 +23801,13 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -23818,17 +23815,17 @@ f64.const 5 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -25510,14 +25507,6 @@ i64.const 100000000 i64.ge_u if - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - local.get $0 - i32.add local.get $1 local.get $1 i64.const 100000000 @@ -25529,8 +25518,20 @@ i32.wrap_i64 local.tee $3 i32.const 10000 + i32.div_u + local.set $4 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 10000 i32.rem_u - local.tee $4 + local.tee $3 i32.const 100 i32.div_u i32.const 2 @@ -25538,7 +25539,7 @@ i32.const 8012 i32.add i64.load32_u - local.get $4 + local.get $3 i32.const 100 i32.rem_u i32.const 2 @@ -25558,10 +25559,7 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 10000 - i32.div_u - local.tee $3 + local.get $4 i32.const 100 i32.div_u i32.const 2 @@ -25569,7 +25567,7 @@ i32.const 8012 i32.add i64.load32_u - local.get $3 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -27006,26 +27004,28 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $4 - i32.const 1 - local.get $4 - select - i32.const 1075 - i32.sub - local.tee $10 - i32.const 1 - i32.sub + local.set $5 local.get $2 i64.const 4503599627370495 i64.and - local.get $4 + local.get $5 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl i64.add - local.tee $2 + local.set $2 + local.get $5 + i32.const 1 + local.get $5 + select + i32.const 1075 + i32.sub + local.tee $5 + i32.const 1 + i32.sub + local.get $2 i64.const 1 i64.shl i64.const 1 @@ -27033,11 +27033,11 @@ local.tee $3 i64.clz i32.wrap_i64 - local.tee $5 + local.tee $4 i32.sub - local.set $4 + local.set $10 local.get $3 - local.get $5 + local.get $4 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -27047,25 +27047,25 @@ i64.eq i32.const 1 i32.add - local.tee $5 + local.tee $4 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $10 local.get $5 - i32.sub local.get $4 i32.sub + local.get $10 + i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $4 + local.get $10 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $10 + local.tee $5 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -27087,10 +27087,10 @@ local.tee $4 i32.const 3 i32.shl - local.tee $5 + local.tee $10 i32.sub global.set $~lib/util/number/_K - local.get $5 + local.get $10 i32.const 9864 i32.add i64.load @@ -27109,34 +27109,40 @@ local.tee $3 i64.const 4294967295 i64.and - local.set $11 + local.set $12 global.get $~lib/util/number/_frc_pow - local.tee $6 + local.tee $11 i64.const 4294967295 i64.and - local.tee $2 + local.set $2 local.get $3 i64.const 32 i64.shr_u - local.tee $13 + local.set $13 + local.get $11 + i64.const 32 + i64.shr_u + local.set $3 + local.get $2 + local.get $13 i64.mul local.get $2 - local.get $11 + local.get $12 i64.mul i64.const 32 i64.shr_u i64.add - local.set $12 + local.set $11 global.get $~lib/util/number/_frc_plus - local.tee $3 + local.tee $6 i64.const 4294967295 i64.and local.set $7 local.get $2 - local.get $3 + local.get $6 i64.const 32 i64.shr_u - local.tee $3 + local.tee $6 i64.mul local.get $2 local.get $7 @@ -27147,9 +27153,6 @@ local.set $8 local.get $3 local.get $6 - i64.const 32 - i64.shr_u - local.tee $3 i64.mul local.get $8 i64.const 32 @@ -27169,17 +27172,17 @@ i64.add i64.const 1 i64.sub - local.set $7 + local.set $6 global.get $~lib/util/number/_frc_minus - local.tee $6 + local.tee $7 i64.const 4294967295 i64.and local.set $8 local.get $2 - local.get $6 + local.get $7 i64.const 32 i64.shr_u - local.tee $6 + local.tee $7 i64.mul local.get $2 local.get $8 @@ -27197,14 +27200,14 @@ local.get $3 local.get $13 i64.mul - local.get $12 + local.get $11 i64.const 32 i64.shr_u i64.add local.get $3 - local.get $11 - i64.mul local.get $12 + i64.mul + local.get $11 i64.const 4294967295 i64.and i64.add @@ -27213,15 +27216,15 @@ i64.const 32 i64.shr_u i64.add - local.get $7 - local.get $10 + local.get $6 + local.get $5 global.get $~lib/util/number/_exp_pow i32.add i32.const -64 i32.sub - local.get $7 - local.get $3 local.get $6 + local.get $3 + local.get $7 i64.mul local.get $2 i64.const 32 @@ -27967,8 +27970,8 @@ ) (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i64) - (local $5 i32) + (local $4 i32) + (local $5 i64) local.get $2 i32.const 0 i32.lt_s @@ -28001,10 +28004,10 @@ local.get $0 i32.load offset=4 i32.add - local.set $0 + local.set $2 local.get $1 i32.load offset=4 - local.set $2 + local.set $4 local.get $1 i32.load offset=8 i32.const 3 @@ -28015,26 +28018,26 @@ local.get $3 i32.gt_s if - local.get $0 + local.get $2 local.get $3 i32.add local.get $3 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load - local.tee $4 - i32.wrap_i64 local.tee $5 + i32.wrap_i64 + local.tee $0 i32.const 31 i32.shr_s i32.const -1 i32.xor i64.extend_i32_s - local.get $4 - i32.const 255 local.get $5 + i32.const 255 + local.get $0 i32.sub i32.const 31 i32.shr_s @@ -28903,13 +28906,13 @@ i32.sub i32.const 1 i32.add - local.tee $5 + local.tee $6 local.get $3 i32.sub i32.const 1 i32.and i32.sub - local.get $5 + local.get $6 i32.const 1 i32.and local.get $3 @@ -29109,20 +29112,20 @@ i32.add local.tee $3 i32.load8_s - local.set $5 + local.set $6 local.get $3 local.get $0 local.get $2 i32.add - local.tee $3 + local.tee $5 i32.load8_s i32.store8 local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store8 local.get $2 i32.const 1 @@ -29190,10 +29193,9 @@ i32.const 1 i32.sub local.tee $2 - local.tee $8 i32.add local.get $0 - local.get $8 + local.get $2 i32.add i32.load8_s i32.store8 @@ -29231,16 +29233,16 @@ local.get $6 i32.add i32.load8_s - local.set $7 + local.set $8 local.get $2 local.get $4 i32.add i32.load8_s - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -29250,7 +29252,7 @@ local.get $0 local.get $1 i32.add - local.get $7 + local.get $8 i32.store8 local.get $6 i32.const 1 @@ -29260,7 +29262,7 @@ local.get $0 local.get $1 i32.add - local.get $8 + local.get $7 i32.store8 local.get $2 i32.const 1 @@ -29282,11 +29284,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) + (local $13 i64) local.get $1 i32.const 48 i32.le_s @@ -29300,10 +29302,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -29311,7 +29314,7 @@ end local.get $0 i32.load8_s - local.set $7 + local.set $3 local.get $0 i32.load8_s offset=1 local.set $4 @@ -29319,8 +29322,8 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $7 - local.get $7 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load @@ -29330,32 +29333,32 @@ local.tee $1 select i32.store8 + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load8_s offset=2 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $7 + local.get $0 local.get $4 - local.get $1 - select - local.tee $4 local.get $3 + local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $3 - local.get $4 - local.get $1 + local.tee $1 select i32.store8 offset=1 local.get $0 - local.get $4 local.get $3 + local.get $4 local.get $1 select i32.store8 offset=2 @@ -29391,7 +29394,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -29406,47 +29409,47 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc - local.tee $12 - local.get $7 + local.tee $10 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $7 + local.set $5 loop $for-loop|1 + local.get $5 local.get $6 - local.get $7 - i32.gt_u + i32.lt_u if - local.get $7 + local.get $5 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.const -1 i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|1 end end local.get $1 call $~lib/rt/tlsf/__alloc - local.set $10 + local.set $12 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $13 + local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -29455,31 +29458,31 @@ if local.get $0 i32.const 0 - local.get $13 + local.get $9 i32.const 31 - local.get $13 + local.get $9 i32.const 31 i32.lt_s select - local.tee $5 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 - local.get $13 + local.get $7 + local.get $9 i32.lt_s if local.get $0 - local.get $5 + local.get $7 i32.const 1 i32.add local.tee $6 - local.get $13 + local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $5 local.get $6 i32.sub i32.const 1 @@ -29490,16 +29493,16 @@ if local.get $0 local.get $6 - local.get $13 + local.get $9 local.get $6 i32.const 31 i32.add local.tee $1 local.get $1 - local.get $13 + local.get $9 i32.gt_s select - local.tee $7 + local.tee $5 local.get $8 local.get $2 call $~lib/util/sort/insertionSort @@ -29510,21 +29513,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $9 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $13 i64.div_u + local.get $5 local.get $6 - local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $13 i64.div_u i64.xor i32.wrap_i64 @@ -29540,7 +29543,7 @@ local.get $8 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $4 @@ -29558,12 +29561,12 @@ i32.load i32.const 1 i32.add - local.get $5 - local.get $10 + local.get $7 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $10 i32.add i32.const -1 i32.store @@ -29577,7 +29580,7 @@ br $for-loop|3 end end - local.get $12 + local.get $10 local.get $1 i32.const 2 i32.shl @@ -29588,12 +29591,12 @@ local.get $4 local.get $11 i32.add - local.get $5 + local.get $7 i32.store local.get $6 local.set $3 - local.get $7 - local.set $5 + local.get $5 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -29605,7 +29608,7 @@ local.get $4 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $1 @@ -29622,8 +29625,8 @@ i32.load i32.const 1 i32.add - local.get $13 - local.get $10 + local.get $9 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns end @@ -29634,10 +29637,10 @@ br $for-loop|4 end end - local.get $10 - call $~lib/rt/tlsf/__free local.get $12 call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -29670,13 +29673,13 @@ i32.sub i32.const 1 i32.add - local.tee $5 + local.tee $6 local.get $3 i32.sub i32.const 1 i32.and i32.sub - local.get $5 + local.get $6 i32.const 1 i32.and local.get $3 @@ -29876,20 +29879,20 @@ i32.add local.tee $3 i32.load8_u - local.set $5 + local.set $6 local.get $3 local.get $0 local.get $2 i32.add - local.tee $3 + local.tee $5 i32.load8_u i32.store8 local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store8 local.get $2 i32.const 1 @@ -29957,10 +29960,9 @@ i32.const 1 i32.sub local.tee $2 - local.tee $8 i32.add local.get $0 - local.get $8 + local.get $2 i32.add i32.load8_u i32.store8 @@ -29998,16 +30000,16 @@ local.get $6 i32.add i32.load8_u - local.set $7 + local.set $8 local.get $2 local.get $4 i32.add i32.load8_u - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -30017,7 +30019,7 @@ local.get $0 local.get $1 i32.add - local.get $7 + local.get $8 i32.store8 local.get $6 i32.const 1 @@ -30027,7 +30029,7 @@ local.get $0 local.get $1 i32.add - local.get $8 + local.get $7 i32.store8 local.get $2 i32.const 1 @@ -30049,11 +30051,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) + (local $13 i64) local.get $1 i32.const 48 i32.le_s @@ -30067,10 +30069,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -30078,7 +30081,7 @@ end local.get $0 i32.load8_u - local.set $7 + local.set $3 local.get $0 i32.load8_u offset=1 local.set $4 @@ -30086,8 +30089,8 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $7 - local.get $7 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load @@ -30097,32 +30100,32 @@ local.tee $1 select i32.store8 + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load8_u offset=2 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $7 + local.get $0 local.get $4 - local.get $1 - select - local.tee $4 local.get $3 + local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $3 - local.get $4 - local.get $1 + local.tee $1 select i32.store8 offset=1 local.get $0 - local.get $4 local.get $3 + local.get $4 local.get $1 select i32.store8 offset=2 @@ -30158,7 +30161,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -30173,47 +30176,47 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc - local.tee $12 - local.get $7 + local.tee $10 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $7 + local.set $5 loop $for-loop|1 + local.get $5 local.get $6 - local.get $7 - i32.gt_u + i32.lt_u if - local.get $7 + local.get $5 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.const -1 i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|1 end end local.get $1 call $~lib/rt/tlsf/__alloc - local.set $10 + local.set $12 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $13 + local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -30222,31 +30225,31 @@ if local.get $0 i32.const 0 - local.get $13 + local.get $9 i32.const 31 - local.get $13 + local.get $9 i32.const 31 i32.lt_s select - local.tee $5 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 - local.get $13 + local.get $7 + local.get $9 i32.lt_s if local.get $0 - local.get $5 + local.get $7 i32.const 1 i32.add local.tee $6 - local.get $13 + local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $5 local.get $6 i32.sub i32.const 1 @@ -30257,16 +30260,16 @@ if local.get $0 local.get $6 - local.get $13 + local.get $9 local.get $6 i32.const 31 i32.add local.tee $1 local.get $1 - local.get $13 + local.get $9 i32.gt_s select - local.tee $7 + local.tee $5 local.get $8 local.get $2 call $~lib/util/sort/insertionSort @@ -30277,21 +30280,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $9 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $13 i64.div_u + local.get $5 local.get $6 - local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $13 i64.div_u i64.xor i32.wrap_i64 @@ -30307,7 +30310,7 @@ local.get $8 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $4 @@ -30325,12 +30328,12 @@ i32.load i32.const 1 i32.add - local.get $5 - local.get $10 + local.get $7 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $10 i32.add i32.const -1 i32.store @@ -30344,7 +30347,7 @@ br $for-loop|3 end end - local.get $12 + local.get $10 local.get $1 i32.const 2 i32.shl @@ -30355,12 +30358,12 @@ local.get $4 local.get $11 i32.add - local.get $5 + local.get $7 i32.store local.get $6 local.set $3 - local.get $7 - local.set $5 + local.get $5 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -30372,7 +30375,7 @@ local.get $4 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $1 @@ -30389,8 +30392,8 @@ i32.load i32.const 1 i32.add - local.get $13 - local.get $10 + local.get $9 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns end @@ -30401,10 +30404,10 @@ br $for-loop|4 end end - local.get $10 - call $~lib/rt/tlsf/__free local.get $12 call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -30447,13 +30450,13 @@ i32.sub i32.const 1 i32.add - local.tee $5 + local.tee $6 local.get $3 i32.sub i32.const 1 i32.and i32.sub - local.get $5 + local.get $6 i32.const 1 i32.and local.get $3 @@ -30675,22 +30678,22 @@ i32.add local.tee $3 i32.load16_s - local.set $5 + local.set $6 local.get $3 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.tee $3 + local.tee $5 i32.load16_s i32.store16 local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store16 local.get $2 i32.const 1 @@ -30809,18 +30812,18 @@ local.get $4 i32.add i32.load16_s - local.set $7 + local.set $8 local.get $2 i32.const 1 i32.shl local.get $4 i32.add i32.load16_s - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -30832,7 +30835,7 @@ i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store16 local.get $6 i32.const 1 @@ -30844,7 +30847,7 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store16 local.get $2 i32.const 1 @@ -30866,11 +30869,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) + (local $13 i64) local.get $1 i32.const 48 i32.le_s @@ -30884,10 +30887,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -30895,7 +30899,7 @@ end local.get $0 i32.load16_s - local.set $7 + local.set $3 local.get $0 i32.load16_s offset=2 local.set $4 @@ -30903,8 +30907,8 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $7 - local.get $7 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load @@ -30914,32 +30918,32 @@ local.tee $1 select i32.store16 + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load16_s offset=4 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $7 + local.get $0 local.get $4 - local.get $1 - select - local.tee $4 local.get $3 + local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $3 - local.get $4 - local.get $1 + local.tee $1 select i32.store16 offset=2 local.get $0 - local.get $4 local.get $3 + local.get $4 local.get $1 select i32.store16 offset=4 @@ -30975,7 +30979,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -30990,32 +30994,32 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc - local.tee $12 - local.get $7 + local.tee $10 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $7 + local.set $5 loop $for-loop|1 + local.get $5 local.get $6 - local.get $7 - i32.gt_u + i32.lt_u if - local.get $7 + local.get $5 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.const -1 i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|1 end end @@ -31023,16 +31027,16 @@ i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc - local.set $10 + local.set $12 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $13 + local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -31041,31 +31045,31 @@ if local.get $0 i32.const 0 - local.get $13 + local.get $9 i32.const 31 - local.get $13 + local.get $9 i32.const 31 i32.lt_s select - local.tee $5 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 - local.get $13 + local.get $7 + local.get $9 i32.lt_s if local.get $0 - local.get $5 + local.get $7 i32.const 1 i32.add local.tee $6 - local.get $13 + local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $5 local.get $6 i32.sub i32.const 1 @@ -31076,16 +31080,16 @@ if local.get $0 local.get $6 - local.get $13 + local.get $9 local.get $6 i32.const 31 i32.add local.tee $1 local.get $1 - local.get $13 + local.get $9 i32.gt_s select - local.tee $7 + local.tee $5 local.get $8 local.get $2 call $~lib/util/sort/insertionSort @@ -31096,21 +31100,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $9 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $13 i64.div_u + local.get $5 local.get $6 - local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $13 i64.div_u i64.xor i32.wrap_i64 @@ -31126,7 +31130,7 @@ local.get $8 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $4 @@ -31144,12 +31148,12 @@ i32.load i32.const 1 i32.add - local.get $5 - local.get $10 + local.get $7 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $10 i32.add i32.const -1 i32.store @@ -31163,7 +31167,7 @@ br $for-loop|3 end end - local.get $12 + local.get $10 local.get $1 i32.const 2 i32.shl @@ -31174,12 +31178,12 @@ local.get $4 local.get $11 i32.add - local.get $5 + local.get $7 i32.store local.get $6 local.set $3 - local.get $7 - local.set $5 + local.get $5 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -31191,7 +31195,7 @@ local.get $4 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $1 @@ -31208,8 +31212,8 @@ i32.load i32.const 1 i32.add - local.get $13 - local.get $10 + local.get $9 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns end @@ -31220,10 +31224,10 @@ br $for-loop|4 end end - local.get $10 - call $~lib/rt/tlsf/__free local.get $12 call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -31256,13 +31260,13 @@ i32.sub i32.const 1 i32.add - local.tee $5 + local.tee $6 local.get $3 i32.sub i32.const 1 i32.and i32.sub - local.get $5 + local.get $6 i32.const 1 i32.and local.get $3 @@ -31484,22 +31488,22 @@ i32.add local.tee $3 i32.load16_u - local.set $5 + local.set $6 local.get $3 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.tee $3 + local.tee $5 i32.load16_u i32.store16 local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store16 local.get $2 i32.const 1 @@ -31618,18 +31622,18 @@ local.get $4 i32.add i32.load16_u - local.set $7 + local.set $8 local.get $2 i32.const 1 i32.shl local.get $4 i32.add i32.load16_u - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -31641,7 +31645,7 @@ i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store16 local.get $6 i32.const 1 @@ -31653,7 +31657,7 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store16 local.get $2 i32.const 1 @@ -31675,11 +31679,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) + (local $13 i64) local.get $1 i32.const 48 i32.le_s @@ -31693,10 +31697,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -31704,7 +31709,7 @@ end local.get $0 i32.load16_u - local.set $7 + local.set $3 local.get $0 i32.load16_u offset=2 local.set $4 @@ -31712,8 +31717,8 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $7 - local.get $7 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load @@ -31723,32 +31728,32 @@ local.tee $1 select i32.store16 + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load16_u offset=4 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $7 + local.get $0 local.get $4 - local.get $1 - select - local.tee $4 local.get $3 + local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $3 - local.get $4 - local.get $1 + local.tee $1 select i32.store16 offset=2 local.get $0 - local.get $4 local.get $3 + local.get $4 local.get $1 select i32.store16 offset=4 @@ -31784,7 +31789,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -31799,32 +31804,32 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc - local.tee $12 - local.get $7 + local.tee $10 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $7 + local.set $5 loop $for-loop|1 + local.get $5 local.get $6 - local.get $7 - i32.gt_u + i32.lt_u if - local.get $7 + local.get $5 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.const -1 i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|1 end end @@ -31832,16 +31837,16 @@ i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc - local.set $10 + local.set $12 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $13 + local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -31850,31 +31855,31 @@ if local.get $0 i32.const 0 - local.get $13 + local.get $9 i32.const 31 - local.get $13 + local.get $9 i32.const 31 i32.lt_s select - local.tee $5 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 - local.get $13 + local.get $7 + local.get $9 i32.lt_s if local.get $0 - local.get $5 + local.get $7 i32.const 1 i32.add local.tee $6 - local.get $13 + local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $5 local.get $6 i32.sub i32.const 1 @@ -31885,16 +31890,16 @@ if local.get $0 local.get $6 - local.get $13 + local.get $9 local.get $6 i32.const 31 i32.add local.tee $1 local.get $1 - local.get $13 + local.get $9 i32.gt_s select - local.tee $7 + local.tee $5 local.get $8 local.get $2 call $~lib/util/sort/insertionSort @@ -31905,21 +31910,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $9 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $13 i64.div_u + local.get $5 local.get $6 - local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $13 i64.div_u i64.xor i32.wrap_i64 @@ -31935,7 +31940,7 @@ local.get $8 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $4 @@ -31953,12 +31958,12 @@ i32.load i32.const 1 i32.add - local.get $5 - local.get $10 + local.get $7 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $10 i32.add i32.const -1 i32.store @@ -31972,7 +31977,7 @@ br $for-loop|3 end end - local.get $12 + local.get $10 local.get $1 i32.const 2 i32.shl @@ -31983,12 +31988,12 @@ local.get $4 local.get $11 i32.add - local.get $5 + local.get $7 i32.store local.get $6 local.set $3 - local.get $7 - local.set $5 + local.get $5 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -32000,7 +32005,7 @@ local.get $4 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $1 @@ -32017,8 +32022,8 @@ i32.load i32.const 1 i32.add - local.get $13 - local.get $10 + local.get $9 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns end @@ -32029,10 +32034,10 @@ br $for-loop|4 end end - local.get $10 - call $~lib/rt/tlsf/__free local.get $12 call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -32075,13 +32080,13 @@ i32.sub i32.const 1 i32.add - local.tee $5 + local.tee $6 local.get $3 i32.sub i32.const 1 i32.and i32.sub - local.get $5 + local.get $6 i32.const 1 i32.and local.get $3 @@ -32303,22 +32308,22 @@ i32.add local.tee $3 i32.load - local.set $5 + local.set $6 local.get $3 local.get $0 local.get $2 i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $5 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store local.get $2 i32.const 1 @@ -32437,18 +32442,18 @@ local.get $4 i32.add i32.load - local.set $7 + local.set $8 local.get $2 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -32460,7 +32465,7 @@ i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store local.get $6 i32.const 1 @@ -32472,7 +32477,7 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store local.get $2 i32.const 1 @@ -32494,11 +32499,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) + (local $13 i64) local.get $1 i32.const 48 i32.le_s @@ -32512,10 +32517,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -32523,7 +32529,7 @@ end local.get $0 i32.load - local.set $7 + local.set $3 local.get $0 i32.load offset=4 local.set $4 @@ -32531,8 +32537,8 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $7 - local.get $7 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load @@ -32542,32 +32548,32 @@ local.tee $1 select i32.store + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load offset=8 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $7 + local.get $0 local.get $4 - local.get $1 - select - local.tee $4 local.get $3 + local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $3 - local.get $4 - local.get $1 + local.tee $1 select i32.store offset=4 local.get $0 - local.get $4 local.get $3 + local.get $4 local.get $1 select i32.store offset=8 @@ -32603,7 +32609,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -32618,32 +32624,32 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc - local.tee $12 - local.get $7 + local.tee $10 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $7 + local.set $5 loop $for-loop|1 + local.get $5 local.get $6 - local.get $7 - i32.gt_u + i32.lt_u if - local.get $7 + local.get $5 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.const -1 i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|1 end end @@ -32651,16 +32657,16 @@ i32.const 2 i32.shl call $~lib/rt/tlsf/__alloc - local.set $10 + local.set $12 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $13 + local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -32669,31 +32675,31 @@ if local.get $0 i32.const 0 - local.get $13 + local.get $9 i32.const 31 - local.get $13 + local.get $9 i32.const 31 i32.lt_s select - local.tee $5 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 - local.get $13 + local.get $7 + local.get $9 i32.lt_s if local.get $0 - local.get $5 + local.get $7 i32.const 1 i32.add local.tee $6 - local.get $13 + local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $5 local.get $6 i32.sub i32.const 1 @@ -32704,16 +32710,16 @@ if local.get $0 local.get $6 - local.get $13 + local.get $9 local.get $6 i32.const 31 i32.add local.tee $1 local.get $1 - local.get $13 + local.get $9 i32.gt_s select - local.tee $7 + local.tee $5 local.get $8 local.get $2 call $~lib/util/sort/insertionSort @@ -32724,21 +32730,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $9 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $13 i64.div_u + local.get $5 local.get $6 - local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $13 i64.div_u i64.xor i32.wrap_i64 @@ -32754,7 +32760,7 @@ local.get $8 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $4 @@ -32772,12 +32778,12 @@ i32.load i32.const 1 i32.add - local.get $5 - local.get $10 + local.get $7 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $10 i32.add i32.const -1 i32.store @@ -32791,7 +32797,7 @@ br $for-loop|3 end end - local.get $12 + local.get $10 local.get $1 i32.const 2 i32.shl @@ -32802,12 +32808,12 @@ local.get $4 local.get $11 i32.add - local.get $5 + local.get $7 i32.store local.get $6 local.set $3 - local.get $7 - local.set $5 + local.get $5 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -32819,7 +32825,7 @@ local.get $4 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $1 @@ -32836,8 +32842,8 @@ i32.load i32.const 1 i32.add - local.get $13 - local.get $10 + local.get $9 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns end @@ -32848,10 +32854,10 @@ br $for-loop|4 end end - local.get $10 - call $~lib/rt/tlsf/__free local.get $12 call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -32878,13 +32884,13 @@ i32.sub i32.const 1 i32.add - local.tee $5 + local.tee $6 local.get $3 i32.sub i32.const 1 i32.and i32.sub - local.get $5 + local.get $6 i32.const 1 i32.and local.get $3 @@ -33106,22 +33112,22 @@ i32.add local.tee $3 i32.load - local.set $5 + local.set $6 local.get $3 local.get $0 local.get $2 i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $5 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store local.get $2 i32.const 1 @@ -33240,18 +33246,18 @@ local.get $4 i32.add i32.load - local.set $7 + local.set $8 local.get $2 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -33263,7 +33269,7 @@ i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store local.get $6 i32.const 1 @@ -33275,7 +33281,7 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store local.get $2 i32.const 1 @@ -33297,11 +33303,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) + (local $13 i64) local.get $1 i32.const 48 i32.le_s @@ -33315,10 +33321,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -33326,7 +33333,7 @@ end local.get $0 i32.load - local.set $7 + local.set $3 local.get $0 i32.load offset=4 local.set $4 @@ -33334,8 +33341,8 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $7 - local.get $7 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load @@ -33345,32 +33352,32 @@ local.tee $1 select i32.store + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load offset=8 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $7 + local.get $0 local.get $4 - local.get $1 - select - local.tee $4 local.get $3 + local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $3 - local.get $4 - local.get $1 + local.tee $1 select i32.store offset=4 local.get $0 - local.get $4 local.get $3 + local.get $4 local.get $1 select i32.store offset=8 @@ -33406,7 +33413,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -33421,32 +33428,32 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc - local.tee $12 - local.get $7 + local.tee $10 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $7 + local.set $5 loop $for-loop|1 + local.get $5 local.get $6 - local.get $7 - i32.gt_u + i32.lt_u if - local.get $7 + local.get $5 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.const -1 i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|1 end end @@ -33454,16 +33461,16 @@ i32.const 2 i32.shl call $~lib/rt/tlsf/__alloc - local.set $10 + local.set $12 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $13 + local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -33472,31 +33479,31 @@ if local.get $0 i32.const 0 - local.get $13 + local.get $9 i32.const 31 - local.get $13 + local.get $9 i32.const 31 i32.lt_s select - local.tee $5 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 - local.get $13 + local.get $7 + local.get $9 i32.lt_s if local.get $0 - local.get $5 + local.get $7 i32.const 1 i32.add local.tee $6 - local.get $13 + local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $5 local.get $6 i32.sub i32.const 1 @@ -33507,16 +33514,16 @@ if local.get $0 local.get $6 - local.get $13 + local.get $9 local.get $6 i32.const 31 i32.add local.tee $1 local.get $1 - local.get $13 + local.get $9 i32.gt_s select - local.tee $7 + local.tee $5 local.get $8 local.get $2 call $~lib/util/sort/insertionSort @@ -33527,21 +33534,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $9 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $13 i64.div_u + local.get $5 local.get $6 - local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $13 i64.div_u i64.xor i32.wrap_i64 @@ -33557,7 +33564,7 @@ local.get $8 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $4 @@ -33575,12 +33582,12 @@ i32.load i32.const 1 i32.add - local.get $5 - local.get $10 + local.get $7 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $10 i32.add i32.const -1 i32.store @@ -33594,7 +33601,7 @@ br $for-loop|3 end end - local.get $12 + local.get $10 local.get $1 i32.const 2 i32.shl @@ -33605,12 +33612,12 @@ local.get $4 local.get $11 i32.add - local.get $5 + local.get $7 i32.store local.get $6 local.set $3 - local.get $7 - local.set $5 + local.get $5 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -33622,7 +33629,7 @@ local.get $4 i32.const 2 i32.shl - local.get $12 + local.get $10 i32.add i32.load local.tee $1 @@ -33639,8 +33646,8 @@ i32.load i32.const 1 i32.add - local.get $13 - local.get $10 + local.get $9 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns end @@ -33651,10 +33658,10 @@ br $for-loop|4 end end - local.get $10 - call $~lib/rt/tlsf/__free local.get $12 call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -33921,14 +33928,14 @@ i32.const 3 i32.shl i32.add - local.tee $3 + local.tee $7 i64.load i64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 + local.get $7 local.get $5 i64.store local.get $2 @@ -34107,13 +34114,12 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i32) - (local $11 i64) + (local $11 i32) (local $12 i32) (local $13 i64) - (local $14 i32) - (local $15 i32) + (local $14 i64) local.get $1 i32.const 48 i32.le_s @@ -34127,10 +34133,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -34141,14 +34148,14 @@ local.set $13 local.get $0 i64.load offset=8 - local.set $9 + local.set $14 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $9 + local.get $14 local.get $13 local.get $13 - local.get $9 + local.get $14 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -34157,49 +34164,49 @@ local.tee $1 select i64.store + local.get $13 + local.get $14 + local.get $1 + select + local.set $13 local.get $0 i64.load offset=16 - local.set $11 + local.set $14 i32.const 2 global.set $~argumentsLength + local.get $0 + local.get $14 local.get $13 - local.get $9 - local.get $1 - select - local.tee $9 - local.get $11 + local.get $13 + local.get $14 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $11 - local.get $9 - local.get $1 + local.tee $1 select i64.store offset=8 local.get $0 - local.get $9 - local.get $11 + local.get $13 + local.get $14 local.get $1 select i64.store offset=16 end local.get $0 i64.load - local.set $11 + local.set $13 local.get $0 i64.load offset=8 - local.set $9 + local.set $14 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $9 - local.get $11 - local.get $11 - local.get $9 + local.get $14 + local.get $13 + local.get $13 + local.get $14 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -34209,8 +34216,8 @@ select i64.store local.get $0 - local.get $11 - local.get $9 + local.get $13 + local.get $14 local.get $1 select i64.store offset=8 @@ -34218,7 +34225,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -34233,32 +34240,32 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc - local.tee $12 - local.get $5 + local.tee $11 + local.get $7 i32.add - local.set $14 + local.set $10 i32.const 0 - local.set $5 + local.set $7 loop $for-loop|1 - local.get $5 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $5 + local.get $7 i32.const 2 i32.shl - local.get $12 + local.get $11 i32.add i32.const -1 i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|1 end end @@ -34266,16 +34273,16 @@ i32.const 3 i32.shl call $~lib/rt/tlsf/__alloc - local.set $15 + local.set $9 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $10 + local.tee $12 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $5 i32.const 1 i32.add local.tee $1 @@ -34284,31 +34291,31 @@ if local.get $0 i32.const 0 - local.get $10 + local.get $12 i32.const 31 - local.get $10 + local.get $12 i32.const 31 i32.lt_s select - local.tee $7 + local.tee $5 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 - local.get $10 + local.get $5 + local.get $12 i32.lt_s if local.get $0 - local.get $7 + local.get $5 i32.const 1 i32.add local.tee $6 - local.get $10 + local.get $12 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 local.get $6 i32.sub i32.const 1 @@ -34319,16 +34326,16 @@ if local.get $0 local.get $6 - local.get $10 + local.get $12 local.get $6 i32.const 31 i32.add local.tee $1 local.get $1 - local.get $10 + local.get $12 i32.gt_s select - local.tee $5 + local.tee $7 local.get $8 local.get $2 call $~lib/util/sort/insertionSort @@ -34339,21 +34346,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $10 + local.get $12 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $14 i64.div_u - local.get $5 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $14 i64.div_u i64.xor i32.wrap_i64 @@ -34369,7 +34376,7 @@ local.get $8 i32.const 2 i32.shl - local.get $12 + local.get $11 i32.add i32.load local.tee $4 @@ -34378,7 +34385,7 @@ if local.get $0 local.get $4 - local.get $14 + local.get $10 local.get $8 i32.const 2 i32.shl @@ -34387,12 +34394,12 @@ i32.load i32.const 1 i32.add - local.get $7 - local.get $15 + local.get $5 + local.get $9 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $11 i32.add i32.const -1 i32.store @@ -34406,7 +34413,7 @@ br $for-loop|3 end end - local.get $12 + local.get $11 local.get $1 i32.const 2 i32.shl @@ -34415,14 +34422,14 @@ local.get $3 i32.store local.get $4 - local.get $14 + local.get $10 i32.add - local.get $7 + local.get $5 i32.store local.get $6 local.set $3 - local.get $5 - local.set $7 + local.get $7 + local.set $5 local.get $1 local.set $4 br $while-continue|2 @@ -34434,7 +34441,7 @@ local.get $4 i32.const 2 i32.shl - local.get $12 + local.get $11 i32.add i32.load local.tee $1 @@ -34446,13 +34453,13 @@ local.get $4 i32.const 2 i32.shl - local.get $14 + local.get $10 i32.add i32.load i32.const 1 i32.add - local.get $10 - local.get $15 + local.get $12 + local.get $9 local.get $2 call $~lib/util/sort/mergeRuns end @@ -34463,9 +34470,9 @@ br $for-loop|4 end end - local.get $15 + local.get $9 call $~lib/rt/tlsf/__free - local.get $12 + local.get $11 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) @@ -34733,14 +34740,14 @@ i32.const 3 i32.shl i32.add - local.tee $3 + local.tee $7 i64.load i64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 + local.get $7 local.get $5 i64.store local.get $2 @@ -34919,13 +34926,12 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i32) - (local $11 i64) + (local $11 i32) (local $12 i32) (local $13 i64) - (local $14 i32) - (local $15 i32) + (local $14 i64) local.get $1 i32.const 48 i32.le_s @@ -34939,10 +34945,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -34953,14 +34960,14 @@ local.set $13 local.get $0 i64.load offset=8 - local.set $9 + local.set $14 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $9 + local.get $14 local.get $13 local.get $13 - local.get $9 + local.get $14 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -34969,49 +34976,49 @@ local.tee $1 select i64.store + local.get $13 + local.get $14 + local.get $1 + select + local.set $13 local.get $0 i64.load offset=16 - local.set $11 + local.set $14 i32.const 2 global.set $~argumentsLength + local.get $0 + local.get $14 local.get $13 - local.get $9 - local.get $1 - select - local.tee $9 - local.get $11 + local.get $13 + local.get $14 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $11 - local.get $9 - local.get $1 + local.tee $1 select i64.store offset=8 local.get $0 - local.get $9 - local.get $11 + local.get $13 + local.get $14 local.get $1 select i64.store offset=16 end local.get $0 i64.load - local.set $11 + local.set $13 local.get $0 i64.load offset=8 - local.set $9 + local.set $14 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $9 - local.get $11 - local.get $11 - local.get $9 + local.get $14 + local.get $13 + local.get $13 + local.get $14 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -35021,8 +35028,8 @@ select i64.store local.get $0 - local.get $11 - local.get $9 + local.get $13 + local.get $14 local.get $1 select i64.store offset=8 @@ -35030,7 +35037,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -35045,32 +35052,32 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc - local.tee $12 - local.get $5 + local.tee $11 + local.get $7 i32.add - local.set $14 + local.set $10 i32.const 0 - local.set $5 + local.set $7 loop $for-loop|1 - local.get $5 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $5 + local.get $7 i32.const 2 i32.shl - local.get $12 + local.get $11 i32.add i32.const -1 i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|1 end end @@ -35078,16 +35085,16 @@ i32.const 3 i32.shl call $~lib/rt/tlsf/__alloc - local.set $15 + local.set $9 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $10 + local.tee $12 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $5 i32.const 1 i32.add local.tee $1 @@ -35096,31 +35103,31 @@ if local.get $0 i32.const 0 - local.get $10 + local.get $12 i32.const 31 - local.get $10 + local.get $12 i32.const 31 i32.lt_s select - local.tee $7 + local.tee $5 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 - local.get $10 + local.get $5 + local.get $12 i32.lt_s if local.get $0 - local.get $7 + local.get $5 i32.const 1 i32.add local.tee $6 - local.get $10 + local.get $12 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 local.get $6 i32.sub i32.const 1 @@ -35131,16 +35138,16 @@ if local.get $0 local.get $6 - local.get $10 + local.get $12 local.get $6 i32.const 31 i32.add local.tee $1 local.get $1 - local.get $10 + local.get $12 i32.gt_s select - local.tee $5 + local.tee $7 local.get $8 local.get $2 call $~lib/util/sort/insertionSort @@ -35151,21 +35158,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $10 + local.get $12 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $14 i64.div_u - local.get $5 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $14 i64.div_u i64.xor i32.wrap_i64 @@ -35181,7 +35188,7 @@ local.get $8 i32.const 2 i32.shl - local.get $12 + local.get $11 i32.add i32.load local.tee $4 @@ -35190,7 +35197,7 @@ if local.get $0 local.get $4 - local.get $14 + local.get $10 local.get $8 i32.const 2 i32.shl @@ -35199,12 +35206,12 @@ i32.load i32.const 1 i32.add - local.get $7 - local.get $15 + local.get $5 + local.get $9 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $11 i32.add i32.const -1 i32.store @@ -35218,7 +35225,7 @@ br $for-loop|3 end end - local.get $12 + local.get $11 local.get $1 i32.const 2 i32.shl @@ -35227,14 +35234,14 @@ local.get $3 i32.store local.get $4 - local.get $14 + local.get $10 i32.add - local.get $7 + local.get $5 i32.store local.get $6 local.set $3 - local.get $5 - local.set $7 + local.get $7 + local.set $5 local.get $1 local.set $4 br $while-continue|2 @@ -35246,7 +35253,7 @@ local.get $4 i32.const 2 i32.shl - local.get $12 + local.get $11 i32.add i32.load local.tee $1 @@ -35258,13 +35265,13 @@ local.get $4 i32.const 2 i32.shl - local.get $14 + local.get $10 i32.add i32.load i32.const 1 i32.add - local.get $10 - local.get $15 + local.get $12 + local.get $9 local.get $2 call $~lib/util/sort/mergeRuns end @@ -35275,9 +35282,9 @@ br $for-loop|4 end end - local.get $15 + local.get $9 call $~lib/rt/tlsf/__free - local.get $12 + local.get $11 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) @@ -35545,14 +35552,14 @@ i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $7 f32.load f32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 + local.get $7 local.get $5 f32.store local.get $2 @@ -35731,14 +35738,13 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f32) + (local $9 i64) (local $10 i32) - (local $11 f32) + (local $11 i32) (local $12 i32) - (local $13 f32) - (local $14 i32) - (local $15 i32) - (local $16 i64) + (local $13 i32) + (local $14 f32) + (local $15 f32) local.get $1 i32.const 48 i32.le_s @@ -35752,10 +35758,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -35763,17 +35770,17 @@ end local.get $0 f32.load - local.set $13 + local.set $15 local.get $0 f32.load offset=4 - local.set $9 + local.set $14 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $9 - local.get $13 - local.get $13 - local.get $9 + local.get $14 + local.get $15 + local.get $15 + local.get $14 local.get $2 i32.load call_indirect $0 (type $f32_f32_=>_i32) @@ -35782,49 +35789,49 @@ local.tee $1 select f32.store + local.get $15 + local.get $14 + local.get $1 + select + local.set $15 local.get $0 f32.load offset=8 - local.set $11 + local.set $14 i32.const 2 global.set $~argumentsLength - local.get $13 - local.get $9 - local.get $1 - select - local.tee $9 - local.get $11 + local.get $0 + local.get $14 + local.get $15 + local.get $15 + local.get $14 local.get $2 i32.load call_indirect $0 (type $f32_f32_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $11 - local.get $9 - local.get $1 + local.tee $1 select f32.store offset=4 local.get $0 - local.get $9 - local.get $11 + local.get $15 + local.get $14 local.get $1 select f32.store offset=8 end local.get $0 f32.load - local.set $11 + local.set $15 local.get $0 f32.load offset=4 - local.set $9 + local.set $14 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $9 - local.get $11 - local.get $11 - local.get $9 + local.get $14 + local.get $15 + local.get $15 + local.get $14 local.get $2 i32.load call_indirect $0 (type $f32_f32_=>_i32) @@ -35834,8 +35841,8 @@ select f32.store local.get $0 - local.get $11 - local.get $9 + local.get $15 + local.get $14 local.get $1 select f32.store offset=4 @@ -35843,7 +35850,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -35858,32 +35865,32 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl call $~lib/rt/tlsf/__alloc local.tee $12 - local.get $5 + local.get $7 i32.add - local.set $14 + local.set $11 i32.const 0 - local.set $5 + local.set $7 loop $for-loop|1 - local.get $5 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $5 + local.get $7 i32.const 2 i32.shl local.get $12 i32.add i32.const -1 i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|1 end end @@ -35891,16 +35898,16 @@ i32.const 2 i32.shl call $~lib/rt/tlsf/__alloc - local.set $15 + local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $10 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $5 i32.const 1 i32.add local.tee $1 @@ -35909,31 +35916,31 @@ if local.get $0 i32.const 0 - local.get $10 + local.get $13 i32.const 31 - local.get $10 + local.get $13 i32.const 31 i32.lt_s select - local.tee $7 + local.tee $5 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 - local.get $10 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $7 + local.get $5 i32.const 1 i32.add local.tee $6 - local.get $10 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $7 local.get $6 i32.sub i32.const 1 @@ -35944,16 +35951,16 @@ if local.get $0 local.get $6 - local.get $10 + local.get $13 local.get $6 i32.const 31 i32.add local.tee $1 local.get $1 - local.get $10 + local.get $13 i32.gt_s select - local.tee $5 + local.tee $7 local.get $8 local.get $2 call $~lib/util/sort/insertionSort @@ -35964,21 +35971,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $10 + local.get $13 i32.const 1 i32.add i64.extend_i32_u - local.tee $16 + local.tee $9 i64.div_u - local.get $5 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $16 + local.get $9 i64.div_u i64.xor i32.wrap_i64 @@ -36003,7 +36010,7 @@ if local.get $0 local.get $4 - local.get $14 + local.get $11 local.get $8 i32.const 2 i32.shl @@ -36012,8 +36019,8 @@ i32.load i32.const 1 i32.add - local.get $7 - local.get $15 + local.get $5 + local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 @@ -36040,14 +36047,14 @@ local.get $3 i32.store local.get $4 - local.get $14 + local.get $11 i32.add - local.get $7 + local.get $5 i32.store local.get $6 local.set $3 - local.get $5 - local.set $7 + local.get $7 + local.set $5 local.get $1 local.set $4 br $while-continue|2 @@ -36071,13 +36078,13 @@ local.get $4 i32.const 2 i32.shl - local.get $14 + local.get $11 i32.add i32.load i32.const 1 i32.add + local.get $13 local.get $10 - local.get $15 local.get $2 call $~lib/util/sort/mergeRuns end @@ -36088,7 +36095,7 @@ br $for-loop|4 end end - local.get $15 + local.get $10 call $~lib/rt/tlsf/__free local.get $12 call $~lib/rt/tlsf/__free @@ -36190,7 +36197,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -36201,43 +36207,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 6 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $2 i32.store - local.get $4 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $2 i32.const 5 i32.const 5 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $7 i32.const 3952 i32.store offset=4 - local.get $0 - local.tee $3 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -36246,89 +36251,89 @@ 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 $4 + local.get $2 i32.load offset=8 local.set $6 - local.get $0 + local.get $1 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer local.get $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $5 i32.store offset=4 - local.get $4 + local.get $2 i32.load offset=4 - local.set $9 + local.set $3 loop $for-loop|0 - local.get $5 local.get $6 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $5 - local.get $9 + local.get $3 + local.get $8 i32.add i32.load8_s - local.set $8 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $5 local.get $4 + local.get $8 + local.get $2 i32.const 3952 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $2 - local.tee $1 - i32.const 1 - i32.add - local.set $2 - local.get $1 - local.get $7 + local.get $0 + local.get $5 i32.add - local.get $8 + local.get $4 i32.store8 + 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 $1 + local.get $5 local.get $0 - local.get $7 - local.get $2 call $~lib/rt/itcms/__renew - local.tee $1 + local.tee $2 i32.store - local.get $0 local.get $1 + local.get $2 call $~lib/rt/itcms/__link + local.get $1 local.get $0 - local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 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 $0 + local.get $7 + local.get $1 + local.tee $2 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load i32.sub if @@ -36339,7 +36344,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.load offset=8 i32.const 3 i32.ne @@ -36351,7 +36356,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 3 @@ -36364,7 +36369,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 4 @@ -36377,7 +36382,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 5 @@ -36413,7 +36418,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -36424,43 +36428,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 6 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $2 i32.store - local.get $4 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 5 i32.const 5 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $7 i32.const 3984 i32.store offset=4 - local.get $0 - local.tee $3 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -36469,89 +36472,89 @@ 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 $4 + local.get $2 i32.load offset=8 local.set $6 - local.get $0 + local.get $1 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer local.get $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $5 i32.store offset=4 - local.get $4 + local.get $2 i32.load offset=4 - local.set $9 + local.set $3 loop $for-loop|0 - local.get $5 local.get $6 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $5 - local.get $9 + local.get $3 + local.get $8 i32.add i32.load8_u - local.set $8 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $5 local.get $4 + local.get $8 + local.get $2 i32.const 3984 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $2 - local.tee $1 - i32.const 1 - i32.add - local.set $2 - local.get $1 - local.get $7 + local.get $0 + local.get $5 i32.add - local.get $8 + local.get $4 i32.store8 + 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 $1 + local.get $5 local.get $0 - local.get $7 - local.get $2 call $~lib/rt/itcms/__renew - local.tee $1 + local.tee $2 i32.store - local.get $0 local.get $1 + local.get $2 call $~lib/rt/itcms/__link + local.get $1 local.get $0 - local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 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 $0 + local.get $7 + local.get $1 + local.tee $2 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load i32.sub if @@ -36562,7 +36565,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.load offset=8 i32.const 3 i32.ne @@ -36574,7 +36577,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 3 @@ -36587,7 +36590,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 4 @@ -36600,7 +36603,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 5 @@ -36636,7 +36639,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -36647,43 +36649,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $2 i32.store - local.get $4 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $2 i32.const 5 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $7 i32.const 4016 i32.store offset=4 - local.get $0 - local.tee $3 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -36692,89 +36693,89 @@ 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 $4 + local.get $2 i32.load offset=8 local.set $6 - 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 $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $5 i32.store offset=4 - local.get $4 + local.get $2 i32.load offset=4 - local.set $9 + local.set $3 loop $for-loop|0 - local.get $5 local.get $6 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $5 - local.get $9 + local.get $3 + local.get $8 i32.add i32.load8_u - local.set $8 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $5 local.get $4 + local.get $8 + local.get $2 i32.const 4016 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $2 - local.tee $1 - i32.const 1 - i32.add - local.set $2 - local.get $1 - local.get $7 + local.get $0 + local.get $5 i32.add - local.get $8 + local.get $4 i32.store8 + 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 $1 + local.get $5 local.get $0 - local.get $7 - local.get $2 call $~lib/rt/itcms/__renew - local.tee $1 + local.tee $2 i32.store - local.get $0 local.get $1 + local.get $2 call $~lib/rt/itcms/__link + local.get $1 local.get $0 - local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 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 $0 + local.get $7 + local.get $1 + local.tee $2 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load i32.sub if @@ -36785,7 +36786,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.load offset=8 i32.const 3 i32.ne @@ -36797,7 +36798,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 @@ -36810,7 +36811,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 @@ -36823,7 +36824,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 5 @@ -36859,7 +36860,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -36870,42 +36870,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 6 call $~lib/typedarray/Int16Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $2 i32.const 5 i32.const 5 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 4048 i32.store offset=4 - local.get $5 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -36914,101 +36914,100 @@ 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 $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.set $6 - local.get $0 + local.set $5 + local.get $1 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 1 i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $4 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 - local.get $4 - local.get $6 - i32.lt_s + local.get $5 + local.get $7 + i32.gt_s if - local.get $9 - local.get $4 + local.get $8 + local.get $7 i32.const 1 i32.shl i32.add i32.load16_s - local.set $8 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $4 local.get $3 + local.get $7 + local.get $2 i32.const 4048 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $2 - local.tee $0 - i32.const 1 - i32.add - local.set $2 - local.get $7 + local.get $4 local.get $0 i32.const 1 i32.shl i32.add - local.get $8 + local.get $3 i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $4 + local.get $7 i32.const 1 i32.add - local.set $4 + local.set $7 br $for-loop|0 end end local.get $1 - local.get $7 - local.get $2 + local.get $4 + local.get $0 i32.const 1 i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew local.tee $2 + call $~lib/rt/itcms/__renew + local.tee $8 i32.store local.get $1 - local.get $2 + local.get $8 call $~lib/rt/itcms/__link local.get $1 - local.get $0 + local.get $2 i32.store offset=8 local.get $1 - local.get $2 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 local.get $1 - local.tee $0 + local.tee $2 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load i32.sub if @@ -37019,7 +37018,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u @@ -37033,7 +37032,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 3 @@ -37046,7 +37045,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 4 @@ -37059,7 +37058,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 5 @@ -37095,7 +37094,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -37106,42 +37104,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 6 call $~lib/typedarray/Uint16Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $2 i32.const 5 i32.const 5 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 4080 i32.store offset=4 - local.get $5 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37150,101 +37148,100 @@ 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 $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.set $6 - local.get $0 + local.set $5 + local.get $1 i32.const 12 i32.const 7 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 1 i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $4 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 - local.get $4 - local.get $6 - i32.lt_s + local.get $5 + local.get $7 + i32.gt_s if - local.get $9 - local.get $4 + local.get $8 + local.get $7 i32.const 1 i32.shl i32.add i32.load16_u - local.set $8 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $4 local.get $3 + local.get $7 + local.get $2 i32.const 4080 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $2 - local.tee $0 - i32.const 1 - i32.add - local.set $2 - local.get $7 + local.get $4 local.get $0 i32.const 1 i32.shl i32.add - local.get $8 + local.get $3 i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $4 + local.get $7 i32.const 1 i32.add - local.set $4 + local.set $7 br $for-loop|0 end end local.get $1 - local.get $7 - local.get $2 + local.get $4 + local.get $0 i32.const 1 i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew local.tee $2 + call $~lib/rt/itcms/__renew + local.tee $8 i32.store local.get $1 - local.get $2 + local.get $8 call $~lib/rt/itcms/__link local.get $1 - local.get $0 + local.get $2 i32.store offset=8 local.get $1 - local.get $2 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 local.get $1 - local.tee $0 + local.tee $2 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load i32.sub if @@ -37255,7 +37252,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u @@ -37269,7 +37266,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 3 @@ -37282,7 +37279,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 4 @@ -37295,7 +37292,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 5 @@ -37331,7 +37328,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -37342,42 +37338,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 6 call $~lib/typedarray/Int32Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $2 i32.const 5 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 4112 i32.store offset=4 - local.get $5 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37386,101 +37382,100 @@ 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 $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.set $6 - local.get $0 + local.set $5 + local.get $1 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 2 i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $4 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 - local.get $4 - local.get $6 - i32.lt_s + local.get $5 + local.get $7 + i32.gt_s if - local.get $9 - local.get $4 + local.get $8 + local.get $7 i32.const 2 i32.shl i32.add i32.load - local.set $8 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $4 local.get $3 + local.get $7 + local.get $2 i32.const 4112 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $2 - local.tee $0 - i32.const 1 - i32.add - local.set $2 - local.get $7 + local.get $4 local.get $0 i32.const 2 i32.shl i32.add - local.get $8 + local.get $3 i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $4 + local.get $7 i32.const 1 i32.add - local.set $4 + local.set $7 br $for-loop|0 end end local.get $1 - local.get $7 - local.get $2 + local.get $4 + local.get $0 i32.const 2 i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew local.tee $2 + call $~lib/rt/itcms/__renew + local.tee $8 i32.store local.get $1 - local.get $2 + local.get $8 call $~lib/rt/itcms/__link local.get $1 - local.get $0 + local.get $2 i32.store offset=8 local.get $1 - local.get $2 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 local.get $1 - local.tee $0 + local.tee $2 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load i32.sub if @@ -37491,7 +37486,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -37505,7 +37500,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -37518,7 +37513,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 4 @@ -37531,7 +37526,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 5 @@ -37567,7 +37562,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -37578,42 +37572,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 6 call $~lib/typedarray/Uint32Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $2 i32.const 5 i32.const 5 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 4144 i32.store offset=4 - local.get $5 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37622,101 +37616,100 @@ 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 $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.set $6 - local.get $0 + local.set $5 + local.get $1 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 2 i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $4 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 - local.get $4 - local.get $6 - i32.lt_s + local.get $5 + local.get $7 + i32.gt_s if - local.get $9 - local.get $4 + local.get $8 + local.get $7 i32.const 2 i32.shl i32.add i32.load - local.set $8 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $4 local.get $3 + local.get $7 + local.get $2 i32.const 4144 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $2 - local.tee $0 - i32.const 1 - i32.add - local.set $2 - local.get $7 + local.get $4 local.get $0 i32.const 2 i32.shl i32.add - local.get $8 + local.get $3 i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $4 + local.get $7 i32.const 1 i32.add - local.set $4 + local.set $7 br $for-loop|0 end end local.get $1 - local.get $7 - local.get $2 + local.get $4 + local.get $0 i32.const 2 i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew local.tee $2 + call $~lib/rt/itcms/__renew + local.tee $8 i32.store local.get $1 - local.get $2 + local.get $8 call $~lib/rt/itcms/__link local.get $1 - local.get $0 + local.get $2 i32.store offset=8 local.get $1 - local.get $2 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 local.get $1 - local.tee $0 + local.tee $2 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load i32.sub if @@ -37727,7 +37720,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -37741,7 +37734,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 3 @@ -37754,7 +37747,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 4 @@ -37767,7 +37760,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 5 @@ -37797,13 +37790,12 @@ (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 i32) - (local $8 i64) - (local $9 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -37814,42 +37806,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 6 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 3 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 5 i64.const 5 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 4176 i32.store offset=4 - local.get $5 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37858,101 +37850,100 @@ 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 $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.set $6 - local.get $0 + local.set $5 + local.get $1 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 3 i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $4 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 - local.get $4 - local.get $6 - i32.lt_s + local.get $5 + local.get $7 + i32.gt_s if - local.get $9 - local.get $4 + local.get $8 + local.get $7 i32.const 3 i32.shl i32.add i64.load - local.set $8 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $4 local.get $3 + local.get $7 + local.get $2 i32.const 4176 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) if - local.get $2 - local.tee $0 - i32.const 1 - i32.add - local.set $2 - local.get $7 + local.get $4 local.get $0 i32.const 3 i32.shl i32.add - local.get $8 + local.get $3 i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $4 + local.get $7 i32.const 1 i32.add - local.set $4 + local.set $7 br $for-loop|0 end end local.get $1 - local.get $7 - local.get $2 + local.get $4 + local.get $0 i32.const 3 i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew local.tee $2 + call $~lib/rt/itcms/__renew + local.tee $8 i32.store local.get $1 - local.get $2 + local.get $8 call $~lib/rt/itcms/__link local.get $1 - local.get $0 + local.get $2 i32.store offset=8 local.get $1 - local.get $2 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 local.get $1 - local.tee $0 + local.tee $2 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load i32.sub if @@ -37963,7 +37954,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -37977,7 +37968,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 3 @@ -37990,7 +37981,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 4 @@ -38003,7 +37994,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 5 @@ -38033,13 +38024,12 @@ (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 i32) - (local $8 i64) - (local $9 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -38050,42 +38040,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 6 call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $2 i32.const 3 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $2 i32.const 5 i64.const 5 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 4208 i32.store offset=4 - local.get $5 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -38094,101 +38084,100 @@ 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 $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.set $6 - local.get $0 + local.set $5 + local.get $1 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 3 i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $4 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 - local.get $4 - local.get $6 - i32.lt_s + local.get $5 + local.get $7 + i32.gt_s if - local.get $9 - local.get $4 + local.get $8 + local.get $7 i32.const 3 i32.shl i32.add i64.load - local.set $8 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $4 local.get $3 + local.get $7 + local.get $2 i32.const 4208 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) if - local.get $2 - local.tee $0 - i32.const 1 - i32.add - local.set $2 - local.get $7 + local.get $4 local.get $0 i32.const 3 i32.shl i32.add - local.get $8 + local.get $3 i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $4 + local.get $7 i32.const 1 i32.add - local.set $4 + local.set $7 br $for-loop|0 end end local.get $1 - local.get $7 - local.get $2 + local.get $4 + local.get $0 i32.const 3 i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew local.tee $2 + call $~lib/rt/itcms/__renew + local.tee $8 i32.store local.get $1 - local.get $2 + local.get $8 call $~lib/rt/itcms/__link local.get $1 - local.get $0 + local.get $2 i32.store offset=8 local.get $1 - local.get $2 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 local.get $1 - local.tee $0 + local.tee $2 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load i32.sub if @@ -38199,7 +38188,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -38213,7 +38202,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 3 @@ -38226,7 +38215,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 4 @@ -38239,7 +38228,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 5 @@ -38269,13 +38258,12 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 f32) - (local $9 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -38286,42 +38274,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 6 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $2 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $2 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $2 i32.const 3 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $2 i32.const 5 f32.const 5 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 4240 i32.store offset=4 - local.get $5 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -38330,101 +38318,100 @@ 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 $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.set $6 - local.get $0 + local.set $5 + local.get $1 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 2 i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $4 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 - local.get $4 - local.get $6 - i32.lt_s + local.get $5 + local.get $7 + i32.gt_s if - local.get $9 - local.get $4 + local.get $8 + local.get $7 i32.const 2 i32.shl i32.add f32.load - local.set $8 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $4 local.get $3 + local.get $7 + local.get $2 i32.const 4240 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) if - local.get $2 - local.tee $0 - i32.const 1 - i32.add - local.set $2 - local.get $7 + local.get $4 local.get $0 i32.const 2 i32.shl i32.add - local.get $8 + local.get $3 f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $4 + local.get $7 i32.const 1 i32.add - local.set $4 + local.set $7 br $for-loop|0 end end local.get $1 - local.get $7 - local.get $2 + local.get $4 + local.get $0 i32.const 2 i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew local.tee $2 + call $~lib/rt/itcms/__renew + local.tee $8 i32.store local.get $1 - local.get $2 + local.get $8 call $~lib/rt/itcms/__link local.get $1 - local.get $0 + local.get $2 i32.store offset=8 local.get $1 - local.get $2 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 local.get $1 - local.tee $0 + local.tee $2 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load i32.sub if @@ -38435,7 +38422,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -38449,7 +38436,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 3 @@ -38462,7 +38449,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 4 @@ -38475,7 +38462,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 5 @@ -38505,13 +38492,12 @@ (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 i32) - (local $8 f64) - (local $9 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -38522,42 +38508,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 6 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $2 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $2 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $2 i32.const 3 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $2 i32.const 5 f64.const 5 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 4272 i32.store offset=4 - local.get $5 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -38566,101 +38552,100 @@ 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 $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.set $6 - local.get $0 + local.set $5 + local.get $1 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 3 i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $4 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 - local.get $4 - local.get $6 - i32.lt_s + local.get $5 + local.get $7 + i32.gt_s if - local.get $9 - local.get $4 + local.get $8 + local.get $7 i32.const 3 i32.shl i32.add f64.load - local.set $8 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $4 local.get $3 + local.get $7 + local.get $2 i32.const 4272 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) if - local.get $2 - local.tee $0 - i32.const 1 - i32.add - local.set $2 - local.get $7 + local.get $4 local.get $0 i32.const 3 i32.shl i32.add - local.get $8 + local.get $3 f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $4 + local.get $7 i32.const 1 i32.add - local.set $4 + local.set $7 br $for-loop|0 end end local.get $1 - local.get $7 - local.get $2 + local.get $4 + local.get $0 i32.const 3 i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew local.tee $2 + call $~lib/rt/itcms/__renew + local.tee $8 i32.store local.get $1 - local.get $2 + local.get $8 call $~lib/rt/itcms/__link local.get $1 - local.get $0 + local.get $2 i32.store offset=8 local.get $1 - local.get $2 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 local.get $1 - local.tee $0 + local.tee $2 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load i32.sub if @@ -38671,7 +38656,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -38685,7 +38670,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 3 @@ -38698,7 +38683,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 4 @@ -38711,7 +38696,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 5 @@ -45994,50 +45979,50 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $3 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $3 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -46062,7 +46047,7 @@ i32.const 10 call $~lib/typedarray/Float32Array#constructor local.tee $7 - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 @@ -46070,13 +46055,13 @@ block $folding-inner0 i32.const 11020 i32.load - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 local.set $5 i32.const 11012 @@ -46086,11 +46071,11 @@ i32.load local.set $8 loop $for-loop|0 - local.get $0 + local.get $1 local.get $8 i32.lt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl local.tee $9 @@ -46102,10 +46087,10 @@ i32.load f32.convert_i32_s f32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -46114,17 +46099,17 @@ i32.const 61 i32.const 14480 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $1 + i32.store offset=16 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - local.get $1 + local.get $0 i32.const 11088 i32.const 3 call $~lib/typedarray/Int32Array#set<~lib/array/Array> @@ -46133,62 +46118,62 @@ i32.const 61 i32.const 14592 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $1 + i32.store offset=16 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 - local.set $0 - local.get $2 + local.set $1 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u i32.const 6 i32.add - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 24 i32.add local.set $5 - local.get $2 + local.get $3 i32.load offset=4 local.set $6 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $3 loop $for-loop|01 - local.get $0 - local.get $2 + local.get $1 + local.get $3 i32.lt_s if local.get $5 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add local.get $6 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add i64.load f32.convert_i64_s f32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|01 end end @@ -46197,104 +46182,104 @@ i32.const 61 i32.const 14656 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=16 - local.get $1 local.get $0 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 - local.set $0 - local.get $3 + local.set $1 + local.get $2 i32.load offset=8 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=4 local.set $5 - local.get $3 + local.get $2 i32.load offset=8 - local.set $3 + local.set $2 loop $for-loop|03 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add - local.get $0 + local.get $1 local.get $5 i32.add i32.load8_u f32.convert_i32_u f32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|03 end end i32.const 0 - local.set $0 + local.set $2 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u i32.const 4 i32.add - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 16 i32.add local.set $3 local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.set $4 loop $for-loop|05 - local.get $0 + local.get $2 local.get $4 i32.lt_s if local.get $3 - local.get $0 + local.get $2 i32.const 2 i32.shl i32.add + local.get $1 local.get $2 - local.get $0 i32.const 1 i32.shl i32.add i32.load16_s f32.convert_i32_s f32.store - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|05 end end @@ -46302,48 +46287,48 @@ i32.const 11264 i32.store offset=16 i32.const 0 - local.set $0 + local.set $2 i32.const 11276 i32.load i32.const 7 i32.add - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 28 i32.add - local.set $1 + local.set $0 i32.const 11268 i32.load local.set $3 i32.const 11276 i32.load - local.set $2 + local.set $4 loop $for-loop|09 - local.get $0 local.get $2 + local.get $4 i32.lt_s if - local.get $1 local.get $0 + local.get $2 i32.const 2 i32.shl i32.add - local.get $0 + local.get $2 local.get $3 i32.add i32.load8_s f32.convert_i32_s f32.store - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|09 end end @@ -46352,12 +46337,12 @@ i32.const 61 i32.const 14720 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 $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -46503,38 +46488,38 @@ local.get $1 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 7 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $3 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $3 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -46684,7 +46669,7 @@ call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> i32.const 0 local.set $0 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -46701,17 +46686,17 @@ i32.const 48 i32.add local.set $5 - local.get $2 + local.get $3 i32.load offset=4 local.set $6 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $3 loop $for-loop|06 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $5 @@ -46738,16 +46723,16 @@ i32.const 62 i32.const 15056 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=16 local.get $1 - local.get $0 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> i32.const 0 local.set $0 - local.get $3 + local.get $2 i32.load offset=8 local.get $1 i32.load offset=8 @@ -46757,19 +46742,19 @@ br_if $folding-inner0 local.get $1 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=4 local.set $5 - local.get $3 + local.get $2 i32.load offset=8 - local.set $3 + local.set $2 loop $for-loop|08 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 3 i32.shl @@ -46788,7 +46773,7 @@ end end i32.const 0 - local.set $0 + local.set $2 local.get $4 i32.load offset=8 i32.const 1 @@ -46808,34 +46793,34 @@ local.set $3 local.get $4 i32.load offset=4 - local.set $2 + local.set $0 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.set $4 loop $for-loop|010 - local.get $0 + local.get $2 local.get $4 i32.lt_s if local.get $3 - local.get $0 + local.get $2 i32.const 3 i32.shl i32.add - local.get $2 local.get $0 + local.get $2 i32.const 1 i32.shl i32.add i32.load16_s f64.convert_i32_s f64.store - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|010 end end @@ -46843,7 +46828,7 @@ i32.const 11264 i32.store offset=16 i32.const 0 - local.set $0 + local.set $2 i32.const 11276 i32.load i32.const 7 @@ -46864,27 +46849,27 @@ local.set $3 i32.const 11276 i32.load - local.set $2 + local.set $4 loop $for-loop|014 - local.get $0 local.get $2 + local.get $4 i32.lt_s if local.get $1 - local.get $0 + local.get $2 i32.const 3 i32.shl i32.add - local.get $0 + local.get $2 local.get $3 i32.add i32.load8_s f64.convert_i32_s f64.store - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|014 end end @@ -46930,6 +46915,7 @@ (local $13 i64) (local $14 f32) (local $15 f64) + (local $16 i32) global.get $~lib/memory/__stack_pointer i32.const 32 i32.sub @@ -47610,33 +47596,33 @@ global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $5 i32.store offset=8 - local.get $4 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $5 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $5 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $5 i32.load offset=4 local.set $2 i32.const 1 - local.get $4 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u @@ -47681,7 +47667,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $5 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47693,26 +47679,26 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.load offset=4 - local.set $1 + local.set $2 i32.const 0 - local.get $4 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 0 i32.gt_s select local.set $0 loop $for-loop|01 local.get $0 - local.get $2 + local.get $1 i32.lt_s if - local.get $1 + local.get $2 local.get $0 i32.const 2 i32.shl @@ -47735,7 +47721,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $5 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47747,11 +47733,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.load offset=4 local.set $2 i32.const 0 - local.get $4 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u @@ -47799,7 +47785,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $5 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47811,10 +47797,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.load offset=4 local.set $2 - local.get $4 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u @@ -47856,7 +47842,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $5 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47868,11 +47854,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.load offset=4 local.set $2 i32.const 1 - local.get $4 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u @@ -47917,7 +47903,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $5 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47930,32 +47916,32 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 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 $1 + local.set $2 i32.const 0 - local.get $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 0 i32.gt_s select local.set $0 loop $for-loop|09 local.get $0 - local.get $2 + local.get $1 i32.lt_s if - local.get $1 + local.get $2 local.get $0 i32.const 2 i32.shl @@ -47969,7 +47955,7 @@ br $for-loop|09 end end - local.get $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -47983,9 +47969,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 @@ -47998,7 +47984,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.load offset=8 i32.const 12 i32.ne @@ -48019,7 +48005,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 @@ -48040,7 +48026,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $5 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -49030,42 +49016,40 @@ global.get $~lib/memory/__stack_pointer i32.const 2896 i32.store offset=4 - i32.const 0 - local.set $1 local.get $4 i32.load offset=4 - local.set $3 + local.set $2 local.get $4 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|011 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_s local.set $0 i32.const 4 global.set $~argumentsLength - local.get $5 + local.get $6 local.get $0 - local.get $1 + local.get $3 local.get $4 i32.const 2896 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $1 + local.set $6 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|011 end end - local.get $5 + local.get $6 i32.const 255 i32.and i32.const 6 @@ -49108,43 +49092,43 @@ i32.const 2928 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 i32.const 0 - local.set $5 + local.set $6 local.get $4 i32.load offset=4 - local.set $3 + local.set $2 local.get $4 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|010 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $5 + local.get $6 local.get $0 - local.get $1 + local.get $3 local.get $4 i32.const 2928 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $1 + local.set $6 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|010 end end - local.get $5 + local.get $6 i32.const 255 i32.and i32.const 6 @@ -49187,43 +49171,43 @@ i32.const 2960 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 i32.const 0 - local.set $5 + local.set $6 local.get $4 i32.load offset=4 - local.set $3 + local.set $2 local.get $4 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|013 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $5 + local.get $6 local.get $0 - local.get $1 + local.get $3 local.get $4 i32.const 2960 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $1 + local.set $6 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|013 end end - local.get $5 + local.get $6 i32.const 255 i32.and i32.const 6 @@ -49266,24 +49250,24 @@ i32.const 2992 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 i32.const 0 - local.set $5 + local.set $6 local.get $4 i32.load offset=4 - local.set $3 + local.set $2 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|014 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 1 i32.shl i32.add @@ -49291,22 +49275,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $5 + local.get $6 local.get $0 - local.get $1 + local.get $3 local.get $4 i32.const 2992 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $1 + local.set $6 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|014 end end - local.get $5 + local.get $6 i32.const 65535 i32.and i32.const 6 @@ -49349,24 +49333,24 @@ i32.const 3024 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 i32.const 0 - local.set $5 + local.set $6 local.get $4 i32.load offset=4 - local.set $3 + local.set $2 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|016 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 1 i32.shl i32.add @@ -49374,22 +49358,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $5 + local.get $6 local.get $0 - local.get $1 + local.get $3 local.get $4 i32.const 3024 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $1 + local.set $6 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|016 end end - local.get $5 + local.get $6 i32.const 65535 i32.and i32.const 6 @@ -49432,24 +49416,24 @@ i32.const 3056 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 i32.const 0 - local.set $5 + local.set $6 local.get $4 i32.load offset=4 - local.set $3 + local.set $2 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|018 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 2 i32.shl i32.add @@ -49457,22 +49441,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $5 + local.get $6 local.get $0 - local.get $1 + local.get $3 local.get $4 i32.const 3056 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $1 + local.set $6 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|018 end end - local.get $5 + local.get $6 i32.const 6 i32.ne br_if $folding-inner1 @@ -49513,24 +49497,24 @@ i32.const 3088 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 i32.const 0 - local.set $5 + local.set $6 local.get $4 i32.load offset=4 - local.set $3 + local.set $2 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|021 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 2 i32.shl i32.add @@ -49538,22 +49522,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $5 + local.get $6 local.get $0 - local.get $1 + local.get $3 local.get $4 i32.const 3088 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $1 + local.set $6 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|021 end end - local.get $5 + local.get $6 i32.const 6 i32.ne br_if $folding-inner1 @@ -49576,17 +49560,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set @@ -49594,22 +49578,22 @@ i32.const 3120 i32.store offset=4 i32.const 0 - local.set $1 - local.get $3 + local.set $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|023 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -49619,16 +49603,16 @@ global.set $~argumentsLength local.get $13 local.get $9 - local.get $1 local.get $3 + local.get $2 i32.const 3120 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) local.set $13 - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|023 end end @@ -49655,17 +49639,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set @@ -49673,24 +49657,24 @@ i32.const 3152 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 i64.const 0 local.set $13 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|025 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -49700,16 +49684,16 @@ global.set $~argumentsLength local.get $13 local.get $9 - local.get $1 local.get $3 + local.get $2 i32.const 3152 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) local.set $13 - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|025 end end @@ -49736,17 +49720,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $2 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $2 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set @@ -49754,22 +49738,22 @@ i32.const 3184 i32.store offset=4 i32.const 0 - local.set $1 - local.get $3 + local.set $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 loop $for-loop|027 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 2 i32.shl i32.add @@ -49779,16 +49763,16 @@ global.set $~argumentsLength local.get $14 local.get $11 - local.get $1 local.get $3 + local.get $2 i32.const 3184 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) local.set $14 - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|027 end end @@ -49815,17 +49799,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $2 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $2 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set @@ -49833,22 +49817,22 @@ i32.const 3216 i32.store offset=4 i32.const 0 - local.set $1 - local.get $3 + local.set $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|029 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -49858,16 +49842,16 @@ global.set $~argumentsLength local.get $15 local.get $12 - local.get $1 local.get $3 + local.get $2 i32.const 3216 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) local.set $15 - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|029 end end @@ -50455,17 +50439,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set @@ -50473,43 +50457,43 @@ i32.const 3248 i32.store offset=4 i32.const 0 - local.set $1 - local.get $3 + local.set $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + local.get $2 i32.load offset=8 i32.const 1 i32.sub - local.set $6 + local.set $4 loop $for-loop|031 - local.get $6 + local.get $4 i32.const 0 i32.ge_s if - local.get $2 - local.get $6 + local.get $1 + local.get $4 i32.add i32.load8_s local.set $0 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $0 - local.get $6 local.get $3 + local.get $0 + local.get $4 + local.get $2 i32.const 3248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $6 + local.set $3 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|031 end end - local.get $1 + local.get $3 i32.const 255 i32.and i32.const 6 @@ -50534,17 +50518,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set @@ -50552,43 +50536,43 @@ i32.const 3280 i32.store offset=4 i32.const 0 - local.set $1 - local.get $3 + local.set $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + local.get $2 i32.load offset=8 i32.const 1 i32.sub - local.set $6 + local.set $4 loop $for-loop|033 - local.get $6 + local.get $4 i32.const 0 i32.ge_s if - local.get $2 - local.get $6 + local.get $1 + local.get $4 i32.add i32.load8_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $0 - local.get $6 local.get $3 + local.get $0 + local.get $4 + local.get $2 i32.const 3280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $6 + local.set $3 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|033 end end - local.get $1 + local.get $3 i32.const 255 i32.and i32.const 6 @@ -50613,17 +50597,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set @@ -50631,43 +50615,43 @@ i32.const 3312 i32.store offset=4 i32.const 0 - local.set $1 - local.get $3 + local.set $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + local.get $2 i32.load offset=8 i32.const 1 i32.sub - local.set $6 + local.set $4 loop $for-loop|036 - local.get $6 + local.get $4 i32.const 0 i32.ge_s if - local.get $2 - local.get $6 + local.get $1 + local.get $4 i32.add i32.load8_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $0 - local.get $6 local.get $3 + local.get $0 + local.get $4 + local.get $2 i32.const 3312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $6 + local.set $3 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|036 end end - local.get $1 + local.get $3 i32.const 255 i32.and i32.const 6 @@ -50692,17 +50676,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set @@ -50710,24 +50694,24 @@ i32.const 3344 i32.store offset=4 i32.const 0 - local.set $1 - local.get $3 + local.set $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $6 + local.set $4 loop $for-loop|038 - local.get $6 + local.get $4 i32.const 0 i32.ge_s if - local.get $2 - local.get $6 + local.get $1 + local.get $4 i32.const 1 i32.shl i32.add @@ -50735,22 +50719,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $0 - local.get $6 local.get $3 + local.get $0 + local.get $4 + local.get $2 i32.const 3344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $6 + local.set $3 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|038 end end - local.get $1 + local.get $3 i32.const 65535 i32.and i32.const 6 @@ -50775,17 +50759,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set @@ -50793,24 +50777,24 @@ i32.const 3376 i32.store offset=4 i32.const 0 - local.set $1 - local.get $3 + local.set $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $6 + local.set $4 loop $for-loop|040 - local.get $6 + local.get $4 i32.const 0 i32.ge_s if - local.get $2 - local.get $6 + local.get $1 + local.get $4 i32.const 1 i32.shl i32.add @@ -50818,22 +50802,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $0 - local.get $6 local.get $3 + local.get $0 + local.get $4 + local.get $2 i32.const 3376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $6 + local.set $3 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|040 end end - local.get $1 + local.get $3 i32.const 65535 i32.and i32.const 6 @@ -50858,17 +50842,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set @@ -50876,24 +50860,24 @@ i32.const 3408 i32.store offset=4 i32.const 0 - local.set $1 - local.get $3 + local.set $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $6 + local.set $4 loop $for-loop|042 - local.get $6 + local.get $4 i32.const 0 i32.ge_s if - local.get $2 - local.get $6 + local.get $1 + local.get $4 i32.const 2 i32.shl i32.add @@ -50901,22 +50885,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $0 - local.get $6 local.get $3 + local.get $0 + local.get $4 + local.get $2 i32.const 3408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $6 + local.set $3 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|042 end end - local.get $1 + local.get $3 i32.const 6 i32.ne br_if $folding-inner5 @@ -50939,17 +50923,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set @@ -50957,24 +50941,24 @@ i32.const 3440 i32.store offset=4 i32.const 0 - local.set $1 - local.get $3 + local.set $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $6 + local.set $4 loop $for-loop|044 - local.get $6 + local.get $4 i32.const 0 i32.ge_s if - local.get $2 - local.get $6 + local.get $1 + local.get $4 i32.const 2 i32.shl i32.add @@ -50982,22 +50966,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $0 - local.get $6 local.get $3 + local.get $0 + local.get $4 + local.get $2 i32.const 3440 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $6 + local.set $3 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|044 end end - local.get $1 + local.get $3 i32.const 6 i32.ne br_if $folding-inner5 @@ -51048,14 +51032,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $6 + local.set $4 loop $for-loop|046 - local.get $6 + local.get $4 i32.const 0 i32.ge_s if local.get $0 - local.get $6 + local.get $4 i32.const 3 i32.shl i32.add @@ -51065,16 +51049,16 @@ global.set $~argumentsLength local.get $13 local.get $9 - local.get $6 + local.get $4 local.get $1 i32.const 3472 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) local.set $13 - local.get $6 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|046 end end @@ -51129,14 +51113,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $6 + local.set $4 loop $for-loop|048 - local.get $6 + local.get $4 i32.const 0 i32.ge_s if local.get $0 - local.get $6 + local.get $4 i32.const 3 i32.shl i32.add @@ -51146,16 +51130,16 @@ global.set $~argumentsLength local.get $13 local.get $9 - local.get $6 + local.get $4 local.get $1 i32.const 3504 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) local.set $13 - local.get $6 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|048 end end @@ -51210,14 +51194,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $6 + local.set $4 loop $for-loop|050 - local.get $6 + local.get $4 i32.const 0 i32.ge_s if local.get $0 - local.get $6 + local.get $4 i32.const 2 i32.shl i32.add @@ -51227,16 +51211,16 @@ global.set $~argumentsLength local.get $14 local.get $11 - local.get $6 + local.get $4 local.get $1 i32.const 3536 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) local.set $14 - local.get $6 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|050 end end @@ -51291,14 +51275,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $6 + local.set $4 loop $for-loop|052 - local.get $6 + local.get $4 i32.const 0 i32.ge_s if local.get $0 - local.get $6 + local.get $4 i32.const 3 i32.shl i32.add @@ -51308,16 +51292,16 @@ global.set $~argumentsLength local.get $15 local.get $12 - local.get $6 + local.get $4 local.get $1 i32.const 3568 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) local.set $15 - local.get $6 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|052 end end @@ -51329,8 +51313,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51349,25 +51331,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $5 + local.tee $3 i32.store - local.get $5 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i32.const 3600 i32.store offset=4 - local.get $0 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -51376,88 +51358,88 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $5 - i32.load offset=8 - local.set $3 - local.get $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 + i32.load offset=8 + local.set $5 + local.get $0 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store offset=4 loop $for-loop|02 - local.get $3 - local.get $6 + local.get $5 + local.get $7 i32.gt_s if local.get $2 - local.get $6 + local.get $7 i32.add i32.load8_s local.set $1 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $6 + local.get $7 i32.add local.get $1 - local.get $6 - local.get $5 + local.get $7 + local.get $3 i32.const 3600 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|02 end end - local.get $7 - local.get $4 + local.get $0 + local.get $6 i32.store - local.get $7 - local.get $4 + local.get $0 + local.get $6 call $~lib/rt/itcms/__link - local.get $7 - local.get $4 + local.get $0 + local.get $6 i32.store offset=4 - local.get $7 - local.get $3 + local.get $0 + 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 $4 local.get $0 - local.get $7 i32.store offset=8 - local.get $7 + local.get $0 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne br_if $folding-inner20 - local.get $7 + local.get $0 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 4 i32.ne br_if $folding-inner21 - local.get $7 + local.get $0 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 9 @@ -51468,7 +51450,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51487,25 +51469,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $5 + local.tee $3 i32.store - local.get $5 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i32.const 3632 i32.store offset=4 - local.get $0 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -51514,88 +51496,88 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $5 - i32.load offset=8 - local.set $3 - local.get $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 + i32.load offset=8 + local.set $5 + local.get $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store offset=4 loop $for-loop|04 - local.get $3 - local.get $6 + local.get $5 + local.get $7 i32.gt_s if local.get $2 - local.get $6 + local.get $7 i32.add i32.load8_u local.set $1 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $6 + local.get $7 i32.add local.get $1 - local.get $6 - local.get $5 + local.get $7 + local.get $3 i32.const 3632 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|04 end end - local.get $7 - local.get $4 + local.get $0 + local.get $6 i32.store - local.get $7 - local.get $4 + local.get $0 + local.get $6 call $~lib/rt/itcms/__link - local.get $7 - local.get $4 + local.get $0 + local.get $6 i32.store offset=4 - local.get $7 - local.get $3 + local.get $0 + 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 $4 local.get $0 - local.get $7 i32.store offset=8 - local.get $7 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne br_if $folding-inner20 - local.get $7 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 4 i32.ne br_if $folding-inner21 - local.get $7 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 9 @@ -51606,7 +51588,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51625,25 +51607,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $5 + local.tee $3 i32.store - local.get $5 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i32.const 3664 i32.store offset=4 - local.get $0 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -51652,88 +51634,88 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $5 - i32.load offset=8 - local.set $3 - local.get $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 + i32.load offset=8 + local.set $5 + local.get $0 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store offset=4 loop $for-loop|06 - local.get $3 - local.get $6 + local.get $5 + local.get $7 i32.gt_s if local.get $2 - local.get $6 + local.get $7 i32.add i32.load8_u local.set $1 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $6 + local.get $7 i32.add local.get $1 - local.get $6 - local.get $5 + local.get $7 + local.get $3 i32.const 3664 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|06 end end - local.get $7 - local.get $4 + local.get $0 + local.get $6 i32.store - local.get $7 - local.get $4 + local.get $0 + local.get $6 call $~lib/rt/itcms/__link - local.get $7 - local.get $4 + local.get $0 + local.get $6 i32.store offset=4 - local.get $7 - local.get $3 + local.get $0 + 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 $4 local.get $0 - local.get $7 i32.store offset=8 - local.get $7 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne br_if $folding-inner20 - local.get $7 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 i32.ne br_if $folding-inner21 - local.get $7 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 9 @@ -51778,10 +51760,10 @@ i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 3696 i32.store offset=4 - local.get $5 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -51794,13 +51776,13 @@ i64.const 0 i64.store local.get $8 + i32.load offset=4 + local.set $4 + local.get $8 i32.load offset=8 i32.const 1 i32.shr_u - local.set $4 - local.get $8 - i32.load offset=4 - local.set $3 + local.set $5 local.get $0 i32.const 12 i32.const 6 @@ -51808,20 +51790,20 @@ local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 1 i32.shl local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $3 i32.store offset=4 loop $for-loop|08 - local.get $4 + local.get $5 local.get $7 i32.gt_s if - local.get $3 + local.get $4 local.get $7 i32.const 1 i32.shl @@ -51832,7 +51814,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $6 + local.get $3 i32.add local.get $0 local.get $7 @@ -51849,13 +51831,13 @@ end end local.get $10 - local.get $6 + local.get $3 i32.store local.get $10 - local.get $6 + local.get $3 call $~lib/rt/itcms/__link local.get $10 - local.get $6 + local.get $3 i32.store offset=4 local.get $10 local.get $2 @@ -51864,7 +51846,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 local.get $10 i32.store offset=8 local.get $10 @@ -51924,10 +51906,10 @@ i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 3728 i32.store offset=4 - local.get $5 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -51940,13 +51922,13 @@ i64.const 0 i64.store local.get $8 + i32.load offset=4 + local.set $4 + local.get $8 i32.load offset=8 i32.const 1 i32.shr_u - local.set $4 - local.get $8 - i32.load offset=4 - local.set $3 + local.set $5 local.get $0 i32.const 12 i32.const 7 @@ -51954,20 +51936,20 @@ local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 1 i32.shl local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $3 i32.store offset=4 loop $for-loop|012 - local.get $4 + local.get $5 local.get $7 i32.gt_s if - local.get $3 + local.get $4 local.get $7 i32.const 1 i32.shl @@ -51978,7 +51960,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $6 + local.get $3 i32.add local.get $0 local.get $7 @@ -51995,13 +51977,13 @@ end end local.get $10 - local.get $6 + local.get $3 i32.store local.get $10 - local.get $6 + local.get $3 call $~lib/rt/itcms/__link local.get $10 - local.get $6 + local.get $3 i32.store offset=4 local.get $10 local.get $2 @@ -52010,7 +51992,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 local.get $10 i32.store offset=8 local.get $10 @@ -52070,10 +52052,10 @@ i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 3760 i32.store offset=4 - local.get $5 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -52086,13 +52068,13 @@ i64.const 0 i64.store local.get $8 + i32.load offset=4 + local.set $4 + local.get $8 i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 - local.get $8 - i32.load offset=4 - local.set $3 + local.set $5 local.get $0 i32.const 12 i32.const 8 @@ -52100,20 +52082,20 @@ local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 2 i32.shl local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $3 i32.store offset=4 loop $for-loop|015 - local.get $4 + local.get $5 local.get $7 i32.gt_s if - local.get $3 + local.get $4 local.get $7 i32.const 2 i32.shl @@ -52124,7 +52106,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $6 + local.get $3 i32.add local.get $0 local.get $7 @@ -52141,13 +52123,13 @@ end end local.get $10 - local.get $6 + local.get $3 i32.store local.get $10 - local.get $6 + local.get $3 call $~lib/rt/itcms/__link local.get $10 - local.get $6 + local.get $3 i32.store offset=4 local.get $10 local.get $2 @@ -52156,7 +52138,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 local.get $10 i32.store offset=8 local.get $10 @@ -52216,10 +52198,10 @@ i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 3792 i32.store offset=4 - local.get $5 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -52232,13 +52214,13 @@ i64.const 0 i64.store local.get $8 + i32.load offset=4 + local.set $4 + local.get $8 i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 - local.get $8 - i32.load offset=4 - local.set $3 + local.set $5 local.get $0 i32.const 12 i32.const 9 @@ -52246,20 +52228,20 @@ local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 2 i32.shl local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $3 i32.store offset=4 loop $for-loop|017 - local.get $4 + local.get $5 local.get $7 i32.gt_s if - local.get $3 + local.get $4 local.get $7 i32.const 2 i32.shl @@ -52270,7 +52252,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $6 + local.get $3 i32.add local.get $0 local.get $7 @@ -52287,13 +52269,13 @@ end end local.get $10 - local.get $6 + local.get $3 i32.store local.get $10 - local.get $6 + local.get $3 call $~lib/rt/itcms/__link local.get $10 - local.get $6 + local.get $3 i32.store offset=4 local.get $10 local.get $2 @@ -52302,7 +52284,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 local.get $10 i32.store offset=8 local.get $10 @@ -52328,7 +52310,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52362,10 +52344,10 @@ i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 3824 i32.store offset=4 - local.get $4 + local.get $5 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -52378,13 +52360,13 @@ i64.const 0 i64.store local.get $7 + i32.load offset=4 + local.set $2 + local.get $7 i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 - local.get $7 - i32.load offset=4 - local.set $2 + local.set $4 local.get $0 i32.const 12 i32.const 10 @@ -52392,21 +52374,21 @@ local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 3 i32.shl local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|019 local.get $3 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if local.get $2 - local.get $6 + local.get $3 i32.const 3 i32.shl local.tee $0 @@ -52416,30 +52398,30 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $5 + local.get $6 i32.add local.get $9 - local.get $6 + local.get $3 local.get $7 i32.const 3824 i32.load call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store - local.get $6 + local.get $3 i32.const 1 i32.add - local.set $6 + local.set $3 br $for-loop|019 end end local.get $8 - local.get $5 + local.get $6 i32.store local.get $8 - local.get $5 + local.get $6 call $~lib/rt/itcms/__link local.get $8 - local.get $5 + local.get $6 i32.store offset=4 local.get $8 local.get $1 @@ -52448,7 +52430,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 local.get $8 i32.store offset=8 local.get $8 @@ -52474,7 +52456,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52508,10 +52490,10 @@ i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 3856 i32.store offset=4 - local.get $4 + local.get $5 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -52524,13 +52506,13 @@ i64.const 0 i64.store local.get $7 + i32.load offset=4 + local.set $2 + local.get $7 i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 - local.get $7 - i32.load offset=4 - local.set $2 + local.set $4 local.get $0 i32.const 12 i32.const 11 @@ -52538,21 +52520,21 @@ local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 3 i32.shl local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|022 local.get $3 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if local.get $2 - local.get $6 + local.get $3 i32.const 3 i32.shl local.tee $0 @@ -52562,30 +52544,30 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $5 + local.get $6 i32.add local.get $9 - local.get $6 + local.get $3 local.get $7 i32.const 3856 i32.load call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store - local.get $6 + local.get $3 i32.const 1 i32.add - local.set $6 + local.set $3 br $for-loop|022 end end local.get $8 - local.get $5 + local.get $6 i32.store local.get $8 - local.get $5 + local.get $6 call $~lib/rt/itcms/__link local.get $8 - local.get $5 + local.get $6 i32.store offset=4 local.get $8 local.get $1 @@ -52594,7 +52576,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 local.get $8 i32.store offset=8 local.get $8 @@ -52620,7 +52602,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52654,10 +52636,10 @@ f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 3888 i32.store offset=4 - local.get $4 + local.get $5 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -52670,13 +52652,13 @@ i64.const 0 i64.store local.get $7 + i32.load offset=4 + local.set $2 + local.get $7 i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 - local.get $7 - i32.load offset=4 - local.set $2 + local.set $4 local.get $0 i32.const 12 i32.const 12 @@ -52684,21 +52666,21 @@ local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 2 i32.shl local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|024 local.get $3 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if local.get $2 - local.get $6 + local.get $3 i32.const 2 i32.shl local.tee $0 @@ -52708,30 +52690,30 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $5 + local.get $6 i32.add local.get $11 - local.get $6 + local.get $3 local.get $7 i32.const 3888 i32.load call_indirect $0 (type $f32_i32_i32_=>_f32) f32.store - local.get $6 + local.get $3 i32.const 1 i32.add - local.set $6 + local.set $3 br $for-loop|024 end end local.get $8 - local.get $5 + local.get $6 i32.store local.get $8 - local.get $5 + local.get $6 call $~lib/rt/itcms/__link local.get $8 - local.get $5 + local.get $6 i32.store offset=4 local.get $8 local.get $1 @@ -52740,7 +52722,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 local.get $8 i32.store offset=8 local.get $8 @@ -52766,7 +52748,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $6 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52800,10 +52782,10 @@ f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 3920 i32.store offset=4 - local.get $4 + local.get $5 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -52816,13 +52798,13 @@ i64.const 0 i64.store local.get $7 + i32.load offset=4 + local.set $2 + local.get $7 i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 - local.get $7 - i32.load offset=4 - local.set $2 + local.set $4 local.get $0 i32.const 12 i32.const 13 @@ -52830,21 +52812,21 @@ local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 3 i32.shl local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|026 local.get $3 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if local.get $2 - local.get $6 + local.get $3 i32.const 3 i32.shl local.tee $0 @@ -52854,30 +52836,30 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $5 + local.get $6 i32.add local.get $12 - local.get $6 + local.get $3 local.get $7 i32.const 3920 i32.load call_indirect $0 (type $f64_i32_i32_=>_f64) f64.store - local.get $6 + local.get $3 i32.const 1 i32.add - local.set $6 + local.set $3 br $for-loop|026 end end local.get $8 - local.get $5 + local.get $6 i32.store local.get $8 - local.get $5 + local.get $6 call $~lib/rt/itcms/__link local.get $8 - local.get $5 + local.get $6 i32.store offset=4 local.get $8 local.get $1 @@ -52886,7 +52868,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 local.get $8 i32.store offset=8 local.get $8 @@ -52955,20 +52937,20 @@ i32.const 4304 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|045 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_s @@ -52977,17 +52959,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 + local.get $3 local.get $5 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 $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|045 end end @@ -52999,20 +52981,20 @@ i32.const 4336 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.047 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|049 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_s @@ -53021,17 +53003,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 4336 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.047 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|049 end end @@ -53075,20 +53057,20 @@ i32.const 4368 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|051 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_u @@ -53097,17 +53079,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 + local.get $3 local.get $5 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 $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|051 end end @@ -53119,20 +53101,20 @@ i32.const 4400 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.053 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|054 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_u @@ -53141,17 +53123,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 4400 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.053 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|054 end end @@ -53195,20 +53177,20 @@ i32.const 4432 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.057 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|058 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_u @@ -53217,17 +53199,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 4432 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.057 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|058 end end @@ -53239,20 +53221,20 @@ i32.const 4464 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.060 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|061 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_u @@ -53261,17 +53243,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 4464 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.060 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|061 end end @@ -53315,23 +53297,23 @@ i32.const 4496 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|063 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 1 i32.shl i32.add @@ -53341,17 +53323,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 + local.get $3 local.get $5 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 $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|063 end end @@ -53363,23 +53345,23 @@ i32.const 4528 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.065 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|066 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 1 i32.shl i32.add @@ -53389,17 +53371,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 4528 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.065 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|066 end end @@ -53443,23 +53425,23 @@ i32.const 4560 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|068 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 1 i32.shl i32.add @@ -53469,17 +53451,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 + local.get $3 local.get $5 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 $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|068 end end @@ -53491,23 +53473,23 @@ i32.const 4592 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.070 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|071 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 1 i32.shl i32.add @@ -53517,17 +53499,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 4592 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.070 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|071 end end @@ -53571,23 +53553,23 @@ i32.const 4624 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|073 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 2 i32.shl i32.add @@ -53597,17 +53579,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 + local.get $3 local.get $5 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 $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|073 end end @@ -53619,23 +53601,23 @@ i32.const 4656 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.075 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|076 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 2 i32.shl i32.add @@ -53645,17 +53627,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 4656 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.075 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|076 end end @@ -53699,23 +53681,23 @@ i32.const 4688 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|078 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 2 i32.shl i32.add @@ -53725,17 +53707,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 + local.get $3 local.get $5 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 $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|078 end end @@ -53747,23 +53729,23 @@ i32.const 4720 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.080 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|081 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 2 i32.shl i32.add @@ -53773,17 +53755,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 4720 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.080 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|081 end end @@ -53827,11 +53809,11 @@ i32.const 4752 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 3 @@ -53839,11 +53821,11 @@ local.set $0 loop $for-loop|083 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -53853,17 +53835,17 @@ global.set $~argumentsLength i32.const 1 local.get $9 - local.get $1 + local.get $3 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 $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|083 end end @@ -53875,11 +53857,11 @@ i32.const 4784 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.085 (result i32) local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 3 @@ -53887,11 +53869,11 @@ local.set $0 loop $for-loop|086 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -53901,17 +53883,17 @@ global.set $~argumentsLength i32.const 1 local.get $9 - local.get $1 + local.get $3 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.085 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|086 end end @@ -53955,11 +53937,11 @@ i32.const 4816 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 3 @@ -53967,11 +53949,11 @@ local.set $0 loop $for-loop|088 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -53981,17 +53963,17 @@ global.set $~argumentsLength i32.const 1 local.get $9 - local.get $1 + local.get $3 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 $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|088 end end @@ -54003,11 +53985,11 @@ i32.const 4848 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.090 (result i32) local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 3 @@ -54015,11 +53997,11 @@ local.set $0 loop $for-loop|091 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -54029,17 +54011,17 @@ global.set $~argumentsLength i32.const 1 local.get $9 - local.get $1 + local.get $3 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.090 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|091 end end @@ -54083,11 +54065,11 @@ i32.const 4880 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 2 @@ -54095,11 +54077,11 @@ local.set $0 loop $for-loop|093 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 2 i32.shl i32.add @@ -54109,17 +54091,17 @@ global.set $~argumentsLength i32.const 1 local.get $11 - local.get $1 + local.get $3 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 $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|093 end end @@ -54131,11 +54113,11 @@ i32.const 4912 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.095 (result i32) local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 2 @@ -54143,11 +54125,11 @@ local.set $0 loop $for-loop|096 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 2 i32.shl i32.add @@ -54157,17 +54139,17 @@ global.set $~argumentsLength i32.const 1 local.get $11 - local.get $1 + local.get $3 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.095 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|096 end end @@ -54211,11 +54193,11 @@ i32.const 4944 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 3 @@ -54223,11 +54205,11 @@ local.set $0 loop $for-loop|098 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -54237,17 +54219,17 @@ global.set $~argumentsLength i32.const 1 local.get $12 - local.get $1 + local.get $3 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 $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|098 end end @@ -54259,11 +54241,11 @@ i32.const 4976 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0100 (result i32) local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 3 @@ -54271,11 +54253,11 @@ local.set $0 loop $for-loop|0101 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -54285,17 +54267,17 @@ global.set $~argumentsLength i32.const 1 local.get $12 - local.get $1 + local.get $3 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.0100 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0101 end end @@ -54321,17 +54303,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set @@ -54340,10 +54322,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $5 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 @@ -54353,13 +54335,13 @@ i32.lt_s if local.get $1 - local.get $3 + local.get $4 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $5 i32.const 5008 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54383,10 +54365,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $5 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0105 @@ -54396,13 +54378,13 @@ i32.lt_s if local.get $1 - local.get $3 + local.get $4 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $5 i32.const 5040 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54440,17 +54422,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set @@ -54459,10 +54441,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $5 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 @@ -54472,13 +54454,13 @@ i32.lt_s if local.get $1 - local.get $3 + local.get $4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $5 i32.const 5072 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54502,10 +54484,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $5 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0110 @@ -54515,13 +54497,13 @@ i32.lt_s if local.get $1 - local.get $3 + local.get $4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $5 i32.const 5104 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54559,17 +54541,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set @@ -54578,10 +54560,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $5 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0114 @@ -54591,13 +54573,13 @@ i32.lt_s if local.get $1 - local.get $3 + local.get $4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $5 i32.const 5136 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54621,10 +54603,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $5 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0117 @@ -54634,13 +54616,13 @@ i32.lt_s if local.get $1 - local.get $3 + local.get $4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $5 i32.const 5168 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54678,17 +54660,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set @@ -54697,10 +54679,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u @@ -54711,7 +54693,7 @@ local.get $2 i32.lt_s if - local.get $3 + local.get $4 local.get $1 i32.const 1 i32.shl @@ -54720,7 +54702,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $5 i32.const 5200 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54744,10 +54726,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u @@ -54758,7 +54740,7 @@ local.get $2 i32.lt_s if - local.get $3 + local.get $4 local.get $1 i32.const 1 i32.shl @@ -54767,7 +54749,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $5 i32.const 5232 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54805,17 +54787,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set @@ -54824,10 +54806,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u @@ -54838,7 +54820,7 @@ local.get $2 i32.lt_s if - local.get $3 + local.get $4 local.get $1 i32.const 1 i32.shl @@ -54847,7 +54829,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $5 i32.const 5264 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54871,10 +54853,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u @@ -54885,7 +54867,7 @@ local.get $2 i32.lt_s if - local.get $3 + local.get $4 local.get $1 i32.const 1 i32.shl @@ -54894,7 +54876,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $5 i32.const 5296 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54932,17 +54914,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set @@ -54951,10 +54933,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u @@ -54965,7 +54947,7 @@ local.get $2 i32.lt_s if - local.get $3 + local.get $4 local.get $1 i32.const 2 i32.shl @@ -54974,7 +54956,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $5 i32.const 5328 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54998,10 +54980,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u @@ -55012,7 +54994,7 @@ local.get $2 i32.lt_s if - local.get $3 + local.get $4 local.get $1 i32.const 2 i32.shl @@ -55021,7 +55003,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $5 i32.const 5360 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55059,17 +55041,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set @@ -55078,10 +55060,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u @@ -55092,7 +55074,7 @@ local.get $2 i32.lt_s if - local.get $3 + local.get $4 local.get $1 i32.const 2 i32.shl @@ -55101,7 +55083,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $5 i32.const 5392 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55125,10 +55107,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u @@ -55139,7 +55121,7 @@ local.get $2 i32.lt_s if - local.get $3 + local.get $4 local.get $1 i32.const 2 i32.shl @@ -55148,7 +55130,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $5 i32.const 5424 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55186,17 +55168,17 @@ local.get $0 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 @@ -55205,10 +55187,10 @@ i32.store offset=4 i32.const 0 local.set $1 - 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 @@ -55228,7 +55210,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5456 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -55252,10 +55234,10 @@ i32.store offset=4 i32.const 0 local.set $1 - 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 @@ -55275,7 +55257,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5488 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -55313,17 +55295,17 @@ local.get $0 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 @@ -55332,10 +55314,10 @@ i32.store offset=4 i32.const 0 local.set $1 - 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 @@ -55355,7 +55337,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5520 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -55379,10 +55361,10 @@ i32.store offset=4 i32.const 0 local.set $1 - 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 @@ -55402,7 +55384,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5552 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -55440,17 +55422,17 @@ local.get $0 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 @@ -55459,10 +55441,10 @@ i32.store offset=4 i32.const 0 local.set $1 - 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 @@ -55482,7 +55464,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5584 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) @@ -55506,10 +55488,10 @@ i32.store offset=4 i32.const 0 local.set $1 - 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 @@ -55529,7 +55511,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5616 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) @@ -55567,17 +55549,17 @@ local.get $0 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 @@ -55586,10 +55568,10 @@ i32.store offset=4 i32.const 0 local.set $1 - 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 @@ -55609,7 +55591,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5648 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) @@ -55633,10 +55615,10 @@ i32.store offset=4 i32.const 0 local.set $1 - 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 @@ -55656,7 +55638,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5680 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) @@ -55694,27 +55676,27 @@ 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.get $4 i32.load offset=8 i32.const 1 i32.sub @@ -55732,7 +55714,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5712 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55754,10 +55736,10 @@ 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.get $4 i32.load offset=8 i32.const 1 i32.sub @@ -55775,7 +55757,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5744 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55813,27 +55795,27 @@ 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.get $4 i32.load offset=8 i32.const 1 i32.sub @@ -55851,7 +55833,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5776 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55873,10 +55855,10 @@ 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.get $4 i32.load offset=8 i32.const 1 i32.sub @@ -55894,7 +55876,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5808 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55932,27 +55914,27 @@ 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.get $4 i32.load offset=8 i32.const 1 i32.sub @@ -55970,7 +55952,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5840 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55992,10 +55974,10 @@ 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.get $4 i32.load offset=8 i32.const 1 i32.sub @@ -56013,7 +55995,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5872 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56051,27 +56033,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.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -56093,7 +56075,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5904 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56115,10 +56097,10 @@ 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.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -56140,7 +56122,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5936 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56178,27 +56160,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.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -56220,7 +56202,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 5968 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56242,10 +56224,10 @@ 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.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -56267,7 +56249,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 6000 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56305,27 +56287,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.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -56347,7 +56329,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 6032 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56369,10 +56351,10 @@ 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.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -56394,7 +56376,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 6064 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56432,27 +56414,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.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -56474,7 +56456,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 6096 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56496,10 +56478,10 @@ 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.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -56521,7 +56503,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $3 + local.get $4 i32.const 6128 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -57085,20 +57067,20 @@ i32.const 6416 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|0217 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_s @@ -57107,7 +57089,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 6416 i32.load @@ -57115,10 +57097,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0217 end end @@ -57130,20 +57112,20 @@ i32.const 6448 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0219 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|0220 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_s @@ -57152,7 +57134,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 6448 i32.load @@ -57160,10 +57142,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0219 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0220 end end @@ -57207,20 +57189,20 @@ i32.const 6480 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|0222 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_u @@ -57229,7 +57211,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 6480 i32.load @@ -57237,10 +57219,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0222 end end @@ -57252,20 +57234,20 @@ i32.const 6512 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0224 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|0225 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_u @@ -57274,7 +57256,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 6512 i32.load @@ -57282,10 +57264,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0224 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0225 end end @@ -57329,20 +57311,20 @@ i32.const 6544 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0228 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|0229 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_u @@ -57351,7 +57333,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 6544 i32.load @@ -57359,10 +57341,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0228 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0229 end end @@ -57374,20 +57356,20 @@ i32.const 6576 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0231 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|0232 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_u @@ -57396,7 +57378,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 6576 i32.load @@ -57404,10 +57386,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0231 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0232 end end @@ -57451,23 +57433,23 @@ i32.const 6608 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0234 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 1 i32.shl i32.add @@ -57477,7 +57459,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 6608 i32.load @@ -57485,10 +57467,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0234 end end @@ -57500,23 +57482,23 @@ i32.const 6640 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0236 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0237 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 1 i32.shl i32.add @@ -57526,7 +57508,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 6640 i32.load @@ -57534,10 +57516,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0236 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0237 end end @@ -57581,23 +57563,23 @@ i32.const 6672 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0239 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 1 i32.shl i32.add @@ -57607,7 +57589,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 6672 i32.load @@ -57615,10 +57597,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0239 end end @@ -57630,23 +57612,23 @@ i32.const 6704 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0241 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0242 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 1 i32.shl i32.add @@ -57656,7 +57638,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 6704 i32.load @@ -57664,10 +57646,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0241 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0242 end end @@ -57711,23 +57693,23 @@ i32.const 6736 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0244 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 2 i32.shl i32.add @@ -57737,7 +57719,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 6736 i32.load @@ -57745,10 +57727,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0244 end end @@ -57760,23 +57742,23 @@ i32.const 6768 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0246 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0247 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 2 i32.shl i32.add @@ -57786,7 +57768,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 6768 i32.load @@ -57794,10 +57776,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0246 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0247 end end @@ -57841,23 +57823,23 @@ i32.const 6800 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0249 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 2 i32.shl i32.add @@ -57867,7 +57849,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 6800 i32.load @@ -57875,10 +57857,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0249 end end @@ -57890,23 +57872,23 @@ i32.const 6832 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0251 (result i32) local.get $5 i32.load offset=4 - local.set $3 + local.set $2 local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0252 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $1 i32.const 2 i32.shl i32.add @@ -57916,7 +57898,7 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 + local.get $3 local.get $5 i32.const 6832 i32.load @@ -57924,10 +57906,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0251 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0252 end end @@ -57971,11 +57953,11 @@ i32.const 6864 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 3 @@ -57983,11 +57965,11 @@ local.set $0 loop $for-loop|0254 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -57997,7 +57979,7 @@ global.set $~argumentsLength i32.const 0 local.get $9 - local.get $1 + local.get $3 local.get $4 i32.const 6864 i32.load @@ -58005,10 +57987,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0254 end end @@ -58020,11 +58002,11 @@ i32.const 6896 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0256 (result i32) local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 3 @@ -58032,11 +58014,11 @@ local.set $0 loop $for-loop|0257 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -58046,7 +58028,7 @@ global.set $~argumentsLength i32.const 0 local.get $9 - local.get $1 + local.get $3 local.get $4 i32.const 6896 i32.load @@ -58054,10 +58036,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0256 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0257 end end @@ -58101,11 +58083,11 @@ i32.const 6928 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 3 @@ -58113,11 +58095,11 @@ local.set $0 loop $for-loop|0259 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -58127,7 +58109,7 @@ global.set $~argumentsLength i32.const 0 local.get $9 - local.get $1 + local.get $3 local.get $4 i32.const 6928 i32.load @@ -58135,10 +58117,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0259 end end @@ -58150,11 +58132,11 @@ i32.const 6960 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0261 (result i32) local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 3 @@ -58162,11 +58144,11 @@ local.set $0 loop $for-loop|0262 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -58176,7 +58158,7 @@ global.set $~argumentsLength i32.const 0 local.get $9 - local.get $1 + local.get $3 local.get $4 i32.const 6960 i32.load @@ -58184,10 +58166,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0261 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0262 end end @@ -58231,11 +58213,11 @@ i32.const 6992 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 2 @@ -58243,11 +58225,11 @@ local.set $0 loop $for-loop|0264 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 2 i32.shl i32.add @@ -58257,7 +58239,7 @@ global.set $~argumentsLength i32.const 0 local.get $11 - local.get $1 + local.get $3 local.get $4 i32.const 6992 i32.load @@ -58265,10 +58247,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0264 end end @@ -58280,11 +58262,11 @@ i32.const 7024 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0266 (result i32) local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 2 @@ -58292,11 +58274,11 @@ local.set $0 loop $for-loop|0267 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 2 i32.shl i32.add @@ -58306,7 +58288,7 @@ global.set $~argumentsLength i32.const 0 local.get $11 - local.get $1 + local.get $3 local.get $4 i32.const 7024 i32.load @@ -58314,10 +58296,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0266 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0267 end end @@ -58361,11 +58343,11 @@ i32.const 7056 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 3 @@ -58373,11 +58355,11 @@ local.set $0 loop $for-loop|0269 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -58387,7 +58369,7 @@ global.set $~argumentsLength i32.const 0 local.get $12 - local.get $1 + local.get $3 local.get $4 i32.const 7056 i32.load @@ -58395,10 +58377,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0269 end end @@ -58410,11 +58392,11 @@ i32.const 7088 i32.store offset=4 i32.const 0 - local.set $1 + local.set $3 block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0271 (result i32) local.get $4 i32.load offset=4 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 3 @@ -58422,11 +58404,11 @@ local.set $0 loop $for-loop|0272 local.get $0 - local.get $1 + local.get $3 i32.gt_s if - local.get $2 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -58436,7 +58418,7 @@ global.set $~argumentsLength i32.const 0 local.get $12 - local.get $1 + local.get $3 local.get $4 i32.const 7088 i32.load @@ -58444,10 +58426,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0271 drop - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0272 end end @@ -58516,33 +58498,33 @@ i32.const 7200 i32.store offset=8 i32.const 0 - local.set $0 + local.set $3 local.get $4 i32.load offset=4 - local.set $3 + local.set $2 local.get $4 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|054274 - local.get $0 - local.get $2 - i32.lt_s + local.get $1 + local.get $3 + i32.gt_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 7200 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|054274 end end @@ -58615,33 +58597,33 @@ i32.const 7232 i32.store offset=8 i32.const 0 - local.set $0 + local.set $3 local.get $4 i32.load offset=4 - local.set $3 + local.set $2 local.get $4 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|056 - local.get $0 - local.get $2 - i32.lt_s + local.get $1 + local.get $3 + i32.gt_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 7232 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|056 end end @@ -58714,33 +58696,33 @@ i32.const 7264 i32.store offset=8 i32.const 0 - local.set $0 + local.set $3 local.get $4 i32.load offset=4 - local.set $3 + local.set $2 local.get $4 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|059 - local.get $0 - local.get $2 - i32.lt_s + local.get $1 + local.get $3 + i32.gt_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 7264 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|059 end end @@ -58810,37 +58792,37 @@ i32.const 7296 i32.store offset=8 i32.const 0 - local.set $0 + local.set $3 local.get $4 i32.load offset=4 - local.set $3 + local.set $2 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|061278 - local.get $0 - local.get $2 - i32.lt_s + local.get $1 + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $0 i32.const 1 i32.shl i32.add i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $3 local.get $4 i32.const 7296 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|061278 end end @@ -58913,37 +58895,37 @@ i32.const 7328 i32.store offset=8 i32.const 0 - local.set $0 + local.set $3 local.get $4 i32.load offset=4 - local.set $3 + local.set $2 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|063280 - local.get $0 - local.get $2 - i32.lt_s + local.get $1 + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $0 i32.const 1 i32.shl i32.add i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $3 local.get $4 i32.const 7328 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|063280 end end @@ -59010,37 +58992,37 @@ i32.const 7360 i32.store offset=8 i32.const 0 - local.set $0 + local.set $3 local.get $4 i32.load offset=4 - local.set $3 + local.set $2 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|065 - local.get $0 - local.get $2 - i32.lt_s + local.get $1 + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $3 local.get $4 i32.const 7360 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|065 end end @@ -59107,37 +59089,37 @@ i32.const 7392 i32.store offset=8 i32.const 0 - local.set $0 + local.set $3 local.get $4 i32.load offset=4 - local.set $3 + local.set $2 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|067 - local.get $0 - local.get $2 - i32.lt_s + local.get $1 + local.get $3 + i32.gt_s if + local.get $2 local.get $3 - local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $3 local.get $4 i32.const 7392 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|067 end end @@ -59169,14 +59151,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 7152 i32.const 0 @@ -59186,7 +59168,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 1 i32.const 7152 i32.const 1 @@ -59196,7 +59178,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 2 i32.const 7152 i32.const 2 @@ -59207,37 +59189,37 @@ i32.const 7424 i32.store offset=8 i32.const 0 - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|069 local.get $0 - local.get $1 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 3 i32.shl i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $3 + local.get $2 i32.const 7424 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|069 end end @@ -59269,14 +59251,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 7152 i32.const 0 @@ -59286,7 +59268,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 1 i32.const 7152 i32.const 1 @@ -59296,7 +59278,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 2 i32.const 7152 i32.const 2 @@ -59307,37 +59289,37 @@ i32.const 7456 i32.store offset=8 i32.const 0 - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|071285 local.get $0 - local.get $1 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 3 i32.shl i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $3 + local.get $2 i32.const 7456 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|071285 end end @@ -59369,14 +59351,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 7152 i32.const 0 @@ -59386,7 +59368,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 1 i32.const 7152 i32.const 1 @@ -59396,7 +59378,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 2 i32.const 7152 i32.const 2 @@ -59407,37 +59389,37 @@ i32.const 7488 i32.store offset=8 i32.const 0 - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|073287 local.get $0 - local.get $1 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 2 i32.shl i32.add f32.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $3 + local.get $2 i32.const 7488 i32.load call_indirect $0 (type $f32_i32_i32_=>_none) - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|073287 end end @@ -59469,14 +59451,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 7152 i32.const 0 @@ -59486,7 +59468,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 1 i32.const 7152 i32.const 1 @@ -59496,7 +59478,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 2 i32.const 7152 i32.const 2 @@ -59507,37 +59489,37 @@ i32.const 7520 i32.store offset=8 i32.const 0 - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|075 local.get $0 - local.get $1 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.const 3 i32.shl i32.add f64.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $3 + local.get $2 i32.const 7520 i32.load call_indirect $0 (type $f64_i32_i32_=>_none) - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|075 end end @@ -59574,18 +59556,18 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/typedarray/Float64Array#constructor - local.tee $2 + local.tee $5 i32.store offset=12 - local.get $2 + local.get $5 i32.const 0 f64.const nan:0x8000000000000 call $~lib/typedarray/Float64Array#__set i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $2 + local.get $5 i32.load offset=8 i32.const 3 i32.shr_u @@ -59595,17 +59577,17 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $2 + local.get $5 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $3 - local.get $1 - local.tee $0 + local.get $2 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -59613,17 +59595,17 @@ f64.const nan:0x8000000000000 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -59635,32 +59617,32 @@ unreachable end i32.const 0 - local.set $0 + local.set $3 block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) i32.const 0 - local.get $2 + local.get $5 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $1 i32.const 0 - local.get $3 + local.get $1 select i32.eqz br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $2 + local.get $5 i32.load offset=4 - local.set $1 + local.set $0 loop $while-continue|0289 - local.get $0 + local.get $1 local.get $3 - i32.lt_s + i32.gt_s if i32.const 1 i32.const 1 - local.get $1 local.get $0 + local.get $3 i32.const 3 i32.shl i32.add @@ -59674,10 +59656,10 @@ select br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $while-continue|0289 end end @@ -59695,18 +59677,18 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/typedarray/Float32Array#constructor - local.tee $2 + local.tee $5 i32.store offset=24 - local.get $2 + local.get $5 i32.const 0 f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u @@ -59716,17 +59698,17 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 + local.get $5 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0290 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $3 - local.get $1 - local.tee $0 + local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -59734,17 +59716,17 @@ f32.const nan:0x400000 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0290 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -59756,32 +59738,32 @@ unreachable end i32.const 0 - local.set $0 + local.set $3 block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) i32.const 0 - local.get $2 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $1 i32.const 0 - local.get $3 + local.get $1 select i32.eqz br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $2 + local.get $5 i32.load offset=4 - local.set $1 + local.set $0 loop $while-continue|078 - local.get $0 + local.get $1 local.get $3 - i32.lt_s + i32.gt_s if i32.const 1 i32.const 1 - local.get $1 local.get $0 + local.get $3 i32.const 2 i32.shl i32.add @@ -59795,10 +59777,10 @@ select br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $while-continue|078 end end @@ -60913,16 +60895,16 @@ local.get $0 i32.const 10940 i32.load - local.tee $3 + local.tee $4 call $~lib/typedarray/Int8Array#constructor - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|028 local.get $2 - local.get $3 + local.get $4 i32.lt_s if - local.get $5 + local.get $6 local.get $2 i32.const 10928 local.get $2 @@ -60938,27 +60920,27 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $5 + local.get $6 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub - local.get $5 + local.get $6 i32.load offset=8 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $5 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -60975,7 +60957,7 @@ local.tee $1 i32.const 0 i32.store - local.get $4 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -60987,16 +60969,16 @@ local.tee $1 i32.store local.get $1 - local.get $4 + local.get $5 i32.store local.get $1 - local.get $4 + local.get $5 call $~lib/rt/itcms/__link local.get $1 local.get $0 i32.store offset=8 local.get $1 - local.get $4 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -61009,10 +60991,10 @@ local.set $2 loop $for-loop|1 local.get $2 - local.get $3 + local.get $4 i32.lt_s if - local.get $5 + local.get $6 local.get $2 call $~lib/typedarray/Int8Array#__get local.get $1 @@ -61059,14 +61041,14 @@ i32.load local.tee $2 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $4 i32.store offset=4 loop $for-loop|030 local.get $1 local.get $2 i32.lt_s if - local.get $3 + local.get $4 local.get $1 i32.const 10928 local.get $1 @@ -61083,22 +61065,22 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $3 + local.get $4 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $3 + local.get $4 i32.load offset=4 - local.get $3 + local.get $4 i32.load i32.sub - local.get $3 + local.get $4 i32.load offset=8 - local.get $3 + local.get $4 i32.load offset=4 - local.get $3 + local.get $4 i32.load i32.sub i32.add @@ -61120,7 +61102,7 @@ local.get $2 i32.lt_s if - local.get $3 + local.get $4 local.get $1 call $~lib/typedarray/Uint8Array#__get local.get $0 @@ -61165,16 +61147,16 @@ local.get $0 i32.const 10940 i32.load - local.tee $3 + local.tee $4 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|034 local.get $2 - local.get $3 + local.get $4 i32.lt_s if - local.get $5 + local.get $6 local.get $2 i32.const 10928 local.get $2 @@ -61191,27 +61173,27 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $5 + local.get $6 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub - local.get $5 + local.get $6 i32.load offset=8 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $5 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -61228,7 +61210,7 @@ local.tee $1 i32.const 0 i32.store - local.get $4 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -61240,16 +61222,16 @@ local.tee $1 i32.store local.get $1 - local.get $4 + local.get $5 i32.store local.get $1 - local.get $4 + local.get $5 call $~lib/rt/itcms/__link local.get $1 local.get $0 i32.store offset=8 local.get $1 - local.get $4 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -61262,10 +61244,10 @@ local.set $2 loop $for-loop|135 local.get $2 - local.get $3 + local.get $4 i32.lt_s if - local.get $5 + local.get $6 local.get $2 call $~lib/typedarray/Uint8ClampedArray#__get local.get $1 @@ -61312,14 +61294,14 @@ i32.load local.tee $2 call $~lib/typedarray/Int16Array#constructor - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|037 local.get $1 local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 10928 local.get $1 @@ -61335,27 +61317,27 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $5 + local.get $6 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub - local.get $5 + local.get $6 i32.load offset=8 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 + local.tee $4 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -61371,7 +61353,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -61383,26 +61365,26 @@ i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store + local.get $5 local.get $4 - local.get $3 i32.store + local.get $5 local.get $4 - local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $5 local.get $0 i32.store offset=8 + local.get $5 local.get $4 - local.get $3 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 $4 + local.get $5 i32.store offset=16 i32.const 0 local.set $1 @@ -61411,10 +61393,10 @@ local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 call $~lib/typedarray/Int16Array#__get - local.get $4 + local.get $5 local.get $1 call $~lib/typedarray/Int16Array#__get i32.ne @@ -61458,14 +61440,14 @@ i32.load local.tee $2 call $~lib/typedarray/Uint16Array#constructor - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|041 local.get $1 local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 10928 local.get $1 @@ -61482,27 +61464,27 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $5 + local.get $6 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub - local.get $5 + local.get $6 i32.load offset=8 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 + local.tee $4 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -61518,7 +61500,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -61530,26 +61512,26 @@ i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store + local.get $5 local.get $4 - local.get $3 i32.store + local.get $5 local.get $4 - local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $5 local.get $0 i32.store offset=8 + local.get $5 local.get $4 - local.get $3 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 $4 + local.get $5 i32.store offset=16 i32.const 0 local.set $1 @@ -61558,10 +61540,10 @@ local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 call $~lib/typedarray/Uint16Array#__get - local.get $4 + local.get $5 local.get $1 call $~lib/typedarray/Uint16Array#__get i32.ne @@ -61605,14 +61587,14 @@ i32.load local.tee $2 call $~lib/typedarray/Int32Array#constructor - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|047 local.get $1 local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 10928 local.get $1 @@ -61627,27 +61609,27 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $5 + local.get $6 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub - local.get $5 + local.get $6 i32.load offset=8 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 + local.tee $4 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -61663,7 +61645,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -61675,26 +61657,26 @@ i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store + local.get $5 local.get $4 - local.get $3 i32.store + local.get $5 local.get $4 - local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $5 local.get $0 i32.store offset=8 + local.get $5 local.get $4 - local.get $3 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 $4 + local.get $5 i32.store offset=16 i32.const 0 local.set $1 @@ -61703,10 +61685,10 @@ local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 call $~lib/typedarray/Int32Array#__get - local.get $4 + local.get $5 local.get $1 call $~lib/typedarray/Int32Array#__get i32.ne @@ -61750,14 +61732,14 @@ i32.load local.tee $2 call $~lib/typedarray/Uint32Array#constructor - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|053 local.get $1 local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 10928 local.get $1 @@ -61772,27 +61754,27 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $5 + local.get $6 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub - local.get $5 + local.get $6 i32.load offset=8 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 + local.tee $4 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -61808,7 +61790,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -61820,26 +61802,26 @@ i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store + local.get $5 local.get $4 - local.get $3 i32.store + local.get $5 local.get $4 - local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $5 local.get $0 i32.store offset=8 + local.get $5 local.get $4 - local.get $3 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 $4 + local.get $5 i32.store offset=16 i32.const 0 local.set $1 @@ -61848,10 +61830,10 @@ local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 call $~lib/typedarray/Uint32Array#__get - local.get $4 + local.get $5 local.get $1 call $~lib/typedarray/Uint32Array#__get i32.ne @@ -61895,14 +61877,14 @@ i32.load local.tee $2 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|057 local.get $1 local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 10928 local.get $1 @@ -61918,27 +61900,27 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $5 + local.get $6 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub - local.get $5 + local.get $6 i32.load offset=8 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 + local.tee $4 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -61954,7 +61936,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -61966,26 +61948,26 @@ i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store + local.get $5 local.get $4 - local.get $3 i32.store + local.get $5 local.get $4 - local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $5 local.get $0 i32.store offset=8 + local.get $5 local.get $4 - local.get $3 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 $4 + local.get $5 i32.store offset=16 i32.const 0 local.set $1 @@ -61994,10 +61976,10 @@ local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 call $~lib/typedarray/Int64Array#__get - local.get $4 + local.get $5 local.get $1 call $~lib/typedarray/Int64Array#__get i64.ne @@ -62041,14 +62023,14 @@ i32.load local.tee $2 call $~lib/typedarray/Uint64Array#constructor - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|060 local.get $1 local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 10928 local.get $1 @@ -62064,27 +62046,27 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $5 + local.get $6 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub - local.get $5 + local.get $6 i32.load offset=8 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 + local.tee $4 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -62100,7 +62082,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -62112,26 +62094,26 @@ i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store + local.get $5 local.get $4 - local.get $3 i32.store + local.get $5 local.get $4 - local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $5 local.get $0 i32.store offset=8 + local.get $5 local.get $4 - local.get $3 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 $4 + local.get $5 i32.store offset=16 i32.const 0 local.set $1 @@ -62140,10 +62122,10 @@ local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 call $~lib/typedarray/Uint64Array#__get - local.get $4 + local.get $5 local.get $1 call $~lib/typedarray/Uint64Array#__get i64.ne @@ -62187,14 +62169,14 @@ i32.load local.tee $2 call $~lib/typedarray/Float32Array#constructor - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|064 local.get $1 local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 10928 local.get $1 @@ -62210,27 +62192,27 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $5 + local.get $6 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub - local.get $5 + local.get $6 i32.load offset=8 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 + local.tee $4 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -62246,7 +62228,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -62258,26 +62240,26 @@ i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store + local.get $5 local.get $4 - local.get $3 i32.store + local.get $5 local.get $4 - local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $5 local.get $0 i32.store offset=8 + local.get $5 local.get $4 - local.get $3 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 $4 + local.get $5 i32.store offset=16 i32.const 0 local.set $1 @@ -62286,10 +62268,10 @@ local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 call $~lib/typedarray/Float32Array#__get - local.get $4 + local.get $5 local.get $1 call $~lib/typedarray/Float32Array#__get f32.ne @@ -62333,14 +62315,14 @@ i32.load local.tee $2 call $~lib/typedarray/Float64Array#constructor - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|070 local.get $1 local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 10928 local.get $1 @@ -62356,27 +62338,27 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $5 + local.get $6 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub - local.get $5 + local.get $6 i32.load offset=8 - local.get $5 + local.get $6 i32.load offset=4 - local.get $5 + local.get $6 i32.load i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 + local.tee $4 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -62392,7 +62374,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -62404,26 +62386,26 @@ i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store + local.get $5 local.get $4 - local.get $3 i32.store + local.get $5 local.get $4 - local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $5 local.get $0 i32.store offset=8 + local.get $5 local.get $4 - local.get $3 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 $4 + local.get $5 i32.store offset=16 i32.const 0 local.set $1 @@ -62432,10 +62414,10 @@ local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 call $~lib/typedarray/Float64Array#__get - local.get $4 + local.get $5 local.get $1 call $~lib/typedarray/Float64Array#__get f64.ne @@ -62465,65 +62447,63 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 - local.tee $10 + local.tee $6 + local.tee $8 i32.store offset=24 global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $0 + local.tee $1 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 f32.const 400 call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $1 i32.const 1 f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $1 i32.const 2 f32.const inf call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Int64Array#constructor - local.tee $8 + local.tee $7 i32.store offset=8 - local.get $8 + local.get $7 i32.const 0 i64.const -10 call $~lib/typedarray/Int64Array#__set - local.get $8 + local.get $7 i32.const 1 i64.const 100 call $~lib/typedarray/Int64Array#__set - local.get $8 + local.get $7 i32.const 2 i64.const 10 call $~lib/typedarray/Int64Array#__set - local.get $8 + local.get $7 i32.const 3 i64.const 300 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 2 call $~lib/typedarray/Int32Array#constructor - local.tee $7 + local.tee $0 i32.store offset=16 - local.get $7 + local.get $0 i32.const 0 i32.const 300 call $~lib/typedarray/Int32Array#__set - local.get $7 + local.get $0 i32.const 1 i32.const -1 call $~lib/typedarray/Int32Array#__set - i32.const 0 - local.set $6 - local.get $10 + local.get $8 i32.load offset=8 - local.get $0 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u @@ -62531,29 +62511,29 @@ i32.add i32.lt_s br_if $folding-inner19 - local.get $10 + local.get $8 i32.load offset=4 i32.const 1 i32.add - local.set $3 - local.get $0 + local.set $5 + local.get $1 i32.load offset=4 - local.set $2 - local.get $0 + local.set $4 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $2 loop $for-loop|082 - local.get $1 - local.get $6 + local.get $2 + local.get $16 i32.gt_s if - local.get $3 - local.get $6 + local.get $5 + local.get $16 i32.add - local.get $2 - local.get $6 + local.get $4 + local.get $16 i32.const 2 i32.shl i32.add @@ -62574,22 +62554,22 @@ i32.const 0 end i32.store8 - local.get $6 + local.get $16 i32.const 1 i32.add - local.set $6 + local.set $16 br $for-loop|082 end end - local.get $10 local.get $8 + local.get $7 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> i32.const 0 - local.set $6 - local.get $10 + local.set $3 + local.get $8 i32.load offset=8 - local.get $7 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -62597,51 +62577,51 @@ i32.add i32.lt_s br_if $folding-inner19 - local.get $10 + local.get $8 i32.load offset=4 i32.const 8 i32.add local.set $2 - local.get $7 + local.get $0 i32.load offset=4 local.set $1 - local.get $7 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 loop $for-loop|086312 local.get $0 - local.get $6 + local.get $3 i32.gt_s if local.get $2 - local.get $6 + local.get $3 i32.add local.get $1 - local.get $6 + local.get $3 i32.const 2 i32.shl i32.add i32.load - local.tee $3 + local.tee $4 i32.const 31 i32.shr_s i32.const -1 i32.xor - local.get $3 + local.get $4 i32.const 255 - local.get $3 + local.get $4 i32.sub i32.const 31 i32.shr_s i32.or i32.and i32.store8 - local.get $6 + local.get $3 i32.const 1 i32.add - local.set $6 + local.set $3 br $for-loop|086312 end end @@ -62654,7 +62634,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $10 + local.get $8 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer @@ -62700,8 +62680,8 @@ i32.const 300 call $~lib/typedarray/Int16Array#__set i32.const 0 - local.set $6 - local.get $10 + local.set $3 + local.get $8 i32.load offset=8 local.get $0 i32.load offset=8 @@ -62709,9 +62689,9 @@ i32.shr_u i32.lt_s br_if $folding-inner19 - local.get $10 + local.get $8 i32.load offset=4 - local.set $3 + local.set $4 local.get $0 i32.load offset=4 local.set $2 @@ -62722,15 +62702,15 @@ local.set $1 loop $for-loop|090 local.get $1 - local.get $6 + local.get $3 i32.gt_s if local.get $3 - local.get $6 + local.get $4 i32.add i32.const 255 local.get $2 - local.get $6 + local.get $3 i32.const 2 i32.shl i32.add @@ -62741,14 +62721,14 @@ i32.gt_u select i32.store8 - local.get $6 + local.get $3 i32.const 1 i32.add - local.set $6 + local.set $3 br $for-loop|090 end end - local.get $10 + local.get $8 local.get $5 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> @@ -62761,7 +62741,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/valuesEqual<~lib/typedarray/Uint8ClampedArray> i32.const 0 diff --git a/tests/compiler/std/uri.optimized.wat b/tests/compiler/std/uri.optimized.wat index 42dfa9b0ce..a9fae139e6 100644 --- a/tests/compiler/std/uri.optimized.wat +++ b/tests/compiler/std/uri.optimized.wat @@ -288,16 +288,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 4336 i32.load i32.gt_u @@ -309,7 +309,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 4340 @@ -325,26 +325,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -485,17 +485,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1364,12 +1364,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1385,14 +1385,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1406,15 +1406,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1425,13 +1425,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1439,21 +1439,21 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl @@ -1461,12 +1461,12 @@ i32.sub i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1480,16 +1480,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1497,18 +1497,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1519,8 +1519,8 @@ unreachable end end - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1533,13 +1533,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1552,54 +1552,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1609,37 +1609,37 @@ i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $3 + local.set $3 local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 - local.get $1 local.get $3 - local.get $1 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1647,22 +1647,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1671,18 +1671,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 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 @@ -1691,10 +1691,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1703,20 +1703,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1731,10 +1731,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1751,16 +1751,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1783,8 +1783,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 @@ -2780,10 +2780,10 @@ local.get $1 local.get $2 i32.load offset=16 - local.tee $0 - local.get $0 + local.tee $2 local.get $1 - i32.gt_u + local.get $2 + i32.lt_u select call $~lib/memory/memory.copy local.get $3 @@ -2805,21 +2805,21 @@ local.get $1 i32.const 1 i32.shl - local.tee $8 + local.tee $9 i32.const 1 call $~lib/rt/itcms/__new local.set $3 loop $while-continue|0 local.get $1 - local.get $6 + local.get $7 i32.gt_u if block $while-break|0 - local.get $6 + local.get $7 local.set $5 loop $do-continue|1 block $do-break|1 - local.get $6 + local.get $7 i32.const 1 i32.shl local.get $0 @@ -2839,58 +2839,57 @@ i32.load8_u br_if $do-break|1 local.get $1 - local.get $6 + local.get $7 i32.const 1 i32.add - local.tee $6 + local.tee $7 i32.gt_u br_if $do-continue|1 end end local.get $5 - local.get $6 + local.get $7 i32.lt_u if - local.get $8 - local.get $7 + local.get $9 local.get $6 + local.get $7 local.get $5 i32.sub i32.const 1 i32.shl - local.tee $9 + local.tee $8 i32.add i32.lt_u if local.get $3 - local.get $7 - local.get $9 + local.get $6 + local.get $8 i32.add - local.tee $8 + local.tee $9 call $~lib/rt/itcms/__renew local.set $3 end local.get $3 - local.get $7 + local.get $6 i32.add local.get $5 i32.const 1 i32.shl local.get $0 i32.add - local.get $9 + local.get $8 call $~lib/memory/memory.copy - local.get $7 - local.get $9 + local.get $6 + local.get $8 i32.add - local.set $7 + local.set $6 local.get $1 - local.get $6 + local.get $7 i32.le_u br_if $while-break|0 end - local.get $8 - local.get $7 + local.get $9 i32.const 6 i32.const 24 local.get $4 @@ -2918,7 +2917,7 @@ i32.le_u if (result i32) local.get $1 - local.get $6 + local.get $7 i32.le_u if i32.const 1584 @@ -2929,10 +2928,10 @@ unreachable end i32.const 1 - local.get $6 + local.get $7 i32.const 1 i32.add - local.tee $6 + local.tee $7 i32.const 1 i32.shl local.get $0 @@ -2973,34 +2972,36 @@ i32.const 128 i32.lt_u select - i32.add + local.get $6 local.tee $5 + i32.add + local.tee $6 i32.lt_u if local.get $3 - local.get $5 + local.get $6 i32.const 1 i32.shl - local.get $5 + local.get $6 local.get $1 i32.const 1 i32.gt_u select - local.tee $8 + local.tee $9 call $~lib/rt/itcms/__renew local.set $3 end local.get $4 i32.const 128 i32.lt_u - if + if (result i32) local.get $3 - local.get $7 + local.get $5 i32.add - local.tee $5 + local.tee $6 i32.const 37 i32.store16 - local.get $5 + local.get $6 local.get $4 i32.const 4 i32.shr_u @@ -3019,25 +3020,28 @@ i32.shl i32.or i32.store offset=2 + local.get $5 + i32.const 6 + i32.add else local.get $3 local.get $4 i32.const 2048 i32.lt_u - if + if (result i32) local.get $3 - local.get $7 + local.get $5 i32.add - local.tee $5 + local.tee $6 i32.const 37 i32.store16 - local.get $5 + local.get $6 local.get $4 i32.const 6 i32.shr_u i32.const 192 i32.or - local.tee $5 + local.tee $8 i32.const 4 i32.shr_u i32.const 15 @@ -3045,7 +3049,7 @@ i32.const 1676 i32.add i32.load8_u - local.get $5 + local.get $8 i32.const 15 i32.and i32.const 1676 @@ -3055,6 +3059,9 @@ i32.shl i32.or i32.store offset=2 + local.get $5 + i32.const 6 + i32.add else local.get $3 local.get $4 @@ -3062,18 +3069,18 @@ i32.lt_u if local.get $3 - local.get $7 + local.get $5 i32.add - local.tee $5 + local.tee $6 i32.const 37 i32.store16 - local.get $5 + local.get $6 local.get $4 i32.const 12 i32.shr_u i32.const 224 i32.or - local.tee $5 + local.tee $8 i32.const 4 i32.shr_u i32.const 15 @@ -3081,7 +3088,7 @@ i32.const 1676 i32.add i32.load8_u - local.get $5 + local.get $8 i32.const 15 i32.and i32.const 1676 @@ -3093,18 +3100,18 @@ i32.store offset=2 else local.get $3 - local.get $7 + local.get $5 i32.add - local.tee $5 + local.tee $6 i32.const 37 i32.store16 - local.get $5 + local.get $6 local.get $4 i32.const 18 i32.shr_u i32.const 240 i32.or - local.tee $5 + local.tee $8 i32.const 4 i32.shr_u i32.const 15 @@ -3112,7 +3119,7 @@ i32.const 1676 i32.add i32.load8_u - local.get $5 + local.get $8 i32.const 15 i32.and i32.const 1676 @@ -3123,15 +3130,15 @@ i32.or i32.store offset=2 local.get $3 - local.get $7 + local.get $5 i32.const 6 i32.add - local.tee $7 - i32.add local.tee $5 + i32.add + local.tee $6 i32.const 37 i32.store16 - local.get $5 + local.get $6 local.get $4 i32.const 12 i32.shr_u @@ -3139,13 +3146,13 @@ i32.and i32.const 128 i32.or - local.tee $5 + local.tee $8 i32.const 4 i32.shr_u i32.const 1676 i32.add i32.load8_u - local.get $5 + local.get $8 i32.const 15 i32.and i32.const 1676 @@ -3156,10 +3163,10 @@ i32.or i32.store offset=2 end - local.get $7 + local.get $5 i32.const 6 i32.add - local.tee $7 + local.tee $6 i32.add local.tee $5 i32.const 37 @@ -3172,13 +3179,13 @@ i32.and i32.const 128 i32.or - local.tee $5 + local.tee $8 i32.const 4 i32.shr_u i32.const 1676 i32.add i32.load8_u - local.get $5 + local.get $8 i32.const 15 i32.and i32.const 1676 @@ -3188,11 +3195,11 @@ i32.shl i32.or i32.store offset=2 + local.get $6 + i32.const 6 + i32.add end - local.get $7 - i32.const 6 - i32.add - local.tee $7 + local.tee $6 i32.add local.tee $5 i32.const 37 @@ -3203,13 +3210,13 @@ i32.and i32.const 128 i32.or - local.tee $5 + local.tee $4 i32.const 4 i32.shr_u i32.const 1676 i32.add i32.load8_u - local.get $5 + local.get $4 i32.const 15 i32.and i32.const 1676 @@ -3219,25 +3226,25 @@ i32.shl i32.or i32.store offset=2 + local.get $6 + i32.const 6 + i32.add end + local.set $6 local.get $7 - i32.const 6 - i32.add - local.set $7 - local.get $6 i32.const 1 i32.add - local.set $6 + local.set $7 br $while-continue|0 end end end - local.get $7 - local.get $8 + local.get $6 + local.get $9 i32.lt_u if (result i32) local.get $3 - local.get $7 + local.get $6 call $~lib/rt/itcms/__renew else local.get $3 diff --git a/tests/compiler/super-inline.optimized.wat b/tests/compiler/super-inline.optimized.wat index 88b83a122c..4d8966db47 100644 --- a/tests/compiler/super-inline.optimized.wat +++ b/tests/compiler/super-inline.optimized.wat @@ -181,16 +181,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1440 i32.load i32.gt_u @@ -202,7 +202,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -218,26 +218,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -378,17 +378,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index 0021ed33e8..a6351645fa 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -367,16 +367,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 5536 i32.load i32.gt_u @@ -388,7 +388,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 5540 @@ -404,26 +404,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -583,17 +583,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1462,12 +1462,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1483,14 +1483,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1504,15 +1504,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1523,13 +1523,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1537,21 +1537,21 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl @@ -1559,12 +1559,12 @@ i32.sub i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1578,16 +1578,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1595,18 +1595,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1617,8 +1617,8 @@ unreachable end end - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1631,13 +1631,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1650,54 +1650,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.and i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $2 local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1707,37 +1707,37 @@ i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $3 + local.set $3 local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 - local.get $1 local.get $3 - local.get $1 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1745,22 +1745,22 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1769,18 +1769,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 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 @@ -1789,10 +1789,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1801,20 +1801,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1829,10 +1829,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1849,16 +1849,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1881,8 +1881,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/throw.optimized.wat b/tests/compiler/throw.optimized.wat index 5c465238e3..f7dd8b1fac 100644 --- a/tests/compiler/throw.optimized.wat +++ b/tests/compiler/throw.optimized.wat @@ -132,7 +132,7 @@ i32.load offset=4 i32.const -4 i32.and - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -165,7 +165,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 i32.store offset=8 local.get $1 @@ -173,13 +173,14 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $1 + local.set $3 local.get $0 + local.tee $1 i32.load offset=12 local.tee $2 i32.const 1 @@ -187,10 +188,11 @@ if (result i32) i32.const 1 else + local.get $2 + local.tee $0 i32.const 1728 i32.load - local.get $2 - i32.lt_u + i32.gt_u if i32.const 1488 i32.const 1552 @@ -199,7 +201,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 3 i32.shl i32.const 1732 @@ -214,28 +216,28 @@ else i32.const 2 end + local.set $0 + local.get $3 + i32.load offset=8 local.set $2 local.get $1 - i32.load offset=8 - local.set $3 local.get $0 - local.get $1 - local.get $2 + local.get $3 i32.or i32.store offset=4 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.store offset=8 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 + local.get $3 local.get $1 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -375,17 +377,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/typeof.optimized.wat b/tests/compiler/typeof.optimized.wat index a077aed81b..fa5a1ce0a0 100644 --- a/tests/compiler/typeof.optimized.wat +++ b/tests/compiler/typeof.optimized.wat @@ -312,16 +312,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1792 i32.load i32.gt_u @@ -333,7 +333,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1796 @@ -349,26 +349,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -509,17 +509,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index 8e50af6cd9..5a3a4cf0de 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -578,17 +578,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -3006,26 +3006,28 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $4 - i32.const 1 - local.get $4 - select - i32.const 1075 - i32.sub - local.tee $10 - i32.const 1 - i32.sub + local.set $5 local.get $2 i64.const 4503599627370495 i64.and - local.get $4 + local.get $5 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl i64.add - local.tee $2 + local.set $2 + local.get $5 + i32.const 1 + local.get $5 + select + i32.const 1075 + i32.sub + local.tee $5 + i32.const 1 + i32.sub + local.get $2 i64.const 1 i64.shl i64.const 1 @@ -3033,11 +3035,11 @@ local.tee $3 i64.clz i32.wrap_i64 - local.tee $5 + local.tee $4 i32.sub - local.set $4 + local.set $10 local.get $3 - local.get $5 + local.get $4 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -3047,25 +3049,25 @@ i64.eq i32.const 1 i32.add - local.tee $5 + local.tee $4 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $10 local.get $5 - i32.sub local.get $4 i32.sub + local.get $10 + i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $4 + local.get $10 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $10 + local.tee $5 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -3087,10 +3089,10 @@ local.tee $4 i32.const 3 i32.shl - local.tee $5 + local.tee $10 i32.sub global.set $~lib/util/number/_K - local.get $5 + local.get $10 i32.const 1328 i32.add i64.load @@ -3109,34 +3111,40 @@ local.tee $3 i64.const 4294967295 i64.and - local.set $11 + local.set $12 global.get $~lib/util/number/_frc_pow - local.tee $6 + local.tee $11 i64.const 4294967295 i64.and - local.tee $2 + local.set $2 local.get $3 i64.const 32 i64.shr_u - local.tee $13 + local.set $13 + local.get $11 + i64.const 32 + i64.shr_u + local.set $3 + local.get $2 + local.get $13 i64.mul local.get $2 - local.get $11 + local.get $12 i64.mul i64.const 32 i64.shr_u i64.add - local.set $12 + local.set $11 global.get $~lib/util/number/_frc_plus - local.tee $3 + local.tee $6 i64.const 4294967295 i64.and local.set $7 local.get $2 - local.get $3 + local.get $6 i64.const 32 i64.shr_u - local.tee $3 + local.tee $6 i64.mul local.get $2 local.get $7 @@ -3147,9 +3155,6 @@ local.set $8 local.get $3 local.get $6 - i64.const 32 - i64.shr_u - local.tee $3 i64.mul local.get $8 i64.const 32 @@ -3169,17 +3174,17 @@ i64.add i64.const 1 i64.sub - local.set $7 + local.set $6 global.get $~lib/util/number/_frc_minus - local.tee $6 + local.tee $7 i64.const 4294967295 i64.and local.set $8 local.get $2 - local.get $6 + local.get $7 i64.const 32 i64.shr_u - local.tee $6 + local.tee $7 i64.mul local.get $2 local.get $8 @@ -3197,14 +3202,14 @@ local.get $3 local.get $13 i64.mul - local.get $12 + local.get $11 i64.const 32 i64.shr_u i64.add local.get $3 - local.get $11 - i64.mul local.get $12 + i64.mul + local.get $11 i64.const 4294967295 i64.and i64.add @@ -3213,15 +3218,15 @@ i64.const 32 i64.shr_u i64.add - local.get $7 - local.get $10 + local.get $6 + local.get $5 global.get $~lib/util/number/_exp_pow i32.add i32.const -64 i32.sub - local.get $7 - local.get $3 local.get $6 + local.get $3 + local.get $7 i64.mul local.get $2 i64.const 32 @@ -3328,96 +3333,96 @@ (local $9 i32) (local $10 i32) i32.const 1056 - local.set $7 + local.set $9 i32.const 1052 i32.load i32.const 1056 i32.add - local.set $9 + local.set $10 loop $while-continue|0 - local.get $7 local.get $9 + local.get $10 i32.lt_u if - local.get $7 + local.get $9 i32.load16_u - local.tee $6 + local.tee $7 i32.const 128 i32.lt_u if (result i32) - local.get $10 + local.get $6 i32.const 1 i32.add else - local.get $6 + local.get $7 i32.const 2048 i32.lt_u if (result i32) - local.get $10 + local.get $6 i32.const 2 i32.add else + local.get $10 local.get $9 - local.get $7 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $6 + local.get $7 i32.const 64512 i32.and i32.const 55296 i32.eq select if - local.get $7 + local.get $9 i32.load16_u offset=2 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $10 + local.get $6 i32.const 4 i32.add - local.set $10 - local.get $7 + local.set $6 + local.get $9 i32.const 4 i32.add - local.set $7 + local.set $9 br $while-continue|0 end end - local.get $10 + local.get $6 i32.const 3 i32.add end end - local.set $10 - local.get $7 + local.set $6 + local.get $9 i32.const 2 i32.add - local.set $7 + local.set $9 br $while-continue|0 end end - local.get $10 + local.get $6 i32.const 56 - local.get $10 + local.get $6 i32.const 56 i32.gt_s select i32.const 13 i32.add - local.set $10 + 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.tee $7 - local.get $10 + local.tee $8 + local.get $6 i32.const 1073741820 i32.gt_u if @@ -3428,13 +3433,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $10 + local.get $6 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $10 + local.get $6 i32.const 19 i32.add i32.const -16 @@ -3442,21 +3447,21 @@ i32.const 4 i32.sub end - local.tee $10 + local.tee $6 call $~lib/rt/tlsf/searchBlock - local.tee $9 + local.tee $7 i32.eqz if memory.size - local.tee $8 - local.get $10 + local.tee $9 + local.get $6 i32.const 536870910 i32.lt_u if (result i32) - local.get $10 + local.get $6 i32.const 1 i32.const 27 - local.get $10 + local.get $6 i32.clz i32.sub i32.shl @@ -3464,12 +3469,12 @@ i32.sub i32.add else - local.get $10 + local.get $6 end i32.const 4 - local.get $7 - i32.load offset=1568 local.get $8 + i32.load offset=1568 + local.get $9 i32.const 16 i32.shl i32.const 4 @@ -3483,16 +3488,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $6 - local.get $6 - local.get $8 + local.tee $7 + local.get $7 + local.get $9 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $6 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -3500,18 +3505,18 @@ unreachable end end - local.get $7 local.get $8 + local.get $9 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $7 - local.get $10 + local.get $8 + local.get $6 call $~lib/rt/tlsf/searchBlock - local.tee $9 + local.tee $7 i32.eqz if i32.const 0 @@ -3522,8 +3527,8 @@ unreachable end end - local.get $10 - local.get $9 + local.get $6 + local.get $7 i32.load i32.const -4 i32.and @@ -3536,15 +3541,13 @@ call $~lib/wasi/index/abort unreachable end + local.get $8 local.get $7 - local.get $9 call $~lib/rt/tlsf/removeBlock local.get $7 - local.set $6 - local.get $9 i32.load - local.set $8 - local.get $10 + local.set $9 + local.get $6 i32.const 4 i32.add i32.const 15 @@ -3557,54 +3560,54 @@ call $~lib/wasi/index/abort unreachable end - local.get $8 + local.get $9 i32.const -4 i32.and - local.get $10 + local.get $6 i32.sub - local.tee $7 + local.tee $10 i32.const 16 i32.ge_u if + local.get $7 + local.get $6 local.get $9 - local.get $10 - local.get $8 i32.const 2 i32.and i32.or i32.store - local.get $10 - local.get $9 + local.get $6 + local.get $7 i32.const 4 i32.add i32.add - local.tee $10 - 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 $6 - local.get $10 call $~lib/rt/tlsf/insertBlock else + local.get $7 local.get $9 - local.get $8 i32.const -2 i32.and i32.store - local.get $9 + local.get $7 i32.const 4 i32.add - local.tee $10 - local.get $9 + local.tee $6 + local.get $7 i32.load i32.const -4 i32.and i32.add - local.get $10 - local.get $9 + local.get $6 + local.get $7 i32.load i32.const -4 i32.and @@ -3614,20 +3617,20 @@ i32.and i32.store end - local.get $9 + local.get $7 i32.const 4 i32.add local.tee $8 i32.const 8 i32.add - local.tee $6 + local.tee $7 i32.const 4 i32.add - local.set $7 + local.set $9 local.get $8 - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i64.const 9071406388179572 i64.store local.get $8 @@ -3636,46 +3639,46 @@ i32.const 2 local.get $8 i32.const 1 - local.get $6 + local.get $7 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop i32.const 1052 i32.load i32.const 1 i32.shr_u - local.set $10 + local.set $6 i32.const 3 global.set $~argumentsLength local.get $8 i32.const 1056 - local.get $10 - local.get $7 + local.get $6 + local.get $9 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.store offset=4 i32.const 2 local.get $8 i32.const 1 - local.get $6 + local.get $7 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 if (result i32) - local.get $7 + local.get $9 i32.const 32 i32.store8 - local.get $7 + local.get $9 i32.const 1 i32.add - local.tee $9 + local.tee $10 local.get $1 call $~lib/util/number/dtoa_buffered - local.set $10 + local.set $6 i32.const 3 global.set $~argumentsLength local.get $8 - local.get $9 local.get $10 - local.get $9 + local.get $6 + local.get $10 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add @@ -3683,23 +3686,23 @@ i32.const 2 local.get $8 i32.const 1 - local.get $6 + local.get $7 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 1 i32.gt_s if - local.get $9 + local.get $10 local.get $2 call $~lib/util/number/dtoa_buffered - local.set $10 + local.set $6 i32.const 3 global.set $~argumentsLength local.get $8 - local.get $9 local.get $10 - local.get $9 + local.get $6 + local.get $10 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add @@ -3707,23 +3710,23 @@ i32.const 2 local.get $8 i32.const 1 - local.get $6 + local.get $7 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 2 i32.gt_s if - local.get $9 + local.get $10 local.get $3 call $~lib/util/number/dtoa_buffered - local.set $10 + local.set $6 i32.const 3 global.set $~argumentsLength local.get $8 - local.get $9 local.get $10 - local.get $9 + local.get $6 + local.get $10 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add @@ -3731,23 +3734,23 @@ i32.const 2 local.get $8 i32.const 1 - local.get $6 + local.get $7 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 3 i32.gt_s if - local.get $9 + local.get $10 local.get $4 call $~lib/util/number/dtoa_buffered - local.set $10 + local.set $6 i32.const 3 global.set $~argumentsLength local.get $8 - local.get $9 local.get $10 - local.get $9 + local.get $6 + local.get $10 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add @@ -3755,23 +3758,23 @@ i32.const 2 local.get $8 i32.const 1 - local.get $6 + local.get $7 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 4 i32.gt_s if - local.get $9 + local.get $10 local.get $5 call $~lib/util/number/dtoa_buffered local.set $0 i32.const 3 global.set $~argumentsLength local.get $8 - local.get $9 + local.get $10 local.get $0 - local.get $9 + local.get $10 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add @@ -3779,18 +3782,18 @@ i32.const 2 local.get $8 i32.const 1 - local.get $6 + local.get $7 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop end end end end - local.get $9 + local.get $10 i32.const 1 i32.sub else - local.get $7 + local.get $9 end i32.const 10 i32.store8 @@ -3800,7 +3803,7 @@ i32.const 2 local.get $8 i32.const 1 - local.get $6 + local.get $7 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $8 @@ -3816,7 +3819,7 @@ local.get $8 i32.const 4 i32.sub - local.set $6 + local.set $7 local.get $8 i32.const 15 i32.and @@ -3826,7 +3829,7 @@ if (result i32) i32.const 1 else - local.get $6 + local.get $7 i32.load i32.const 1 i32.and @@ -3839,13 +3842,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $6 - local.get $6 + local.get $7 + local.get $7 i32.load i32.const 1 i32.or i32.store - local.get $6 + local.get $7 call $~lib/rt/tlsf/insertBlock end ) diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index 3fc410327f..cd79f2650a 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -169,16 +169,16 @@ i32.store offset=4 end 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) i32.const 1 else - local.get $2 + local.get $1 i32.const 1488 i32.load i32.gt_u @@ -190,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -206,26 +206,26 @@ 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 local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount @@ -366,17 +366,17 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $1 - local.get $4 + local.set $2 local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.eqz if local.get $0 @@ -1154,7 +1154,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) i32.const 10 local.set $0 loop $while-continue|0 @@ -1202,10 +1201,10 @@ i32.const 1 i32.sub local.set $0 - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 loop $while-continue|1 local.get $0 if @@ -1252,7 +1251,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 i32.const 1 i32.ne if @@ -1275,7 +1274,7 @@ unreachable end i32.const 0 - local.set $3 + local.set $2 i32.const 1 local.set $0 loop $while-continue|01 @@ -1286,10 +1285,10 @@ local.set $0 local.get $1 if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.add - local.tee $3 + local.tee $2 else i32.const 0 end @@ -1306,7 +1305,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 1 i32.ne if @@ -1346,11 +1345,13 @@ i32.const 1 i32.add local.tee $0 + local.set $1 + local.get $0 i32.const 10 i32.ne br_if $while-continue|03 end - local.get $0 + local.get $1 i32.const 10 i32.ne if @@ -1521,7 +1522,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1536,28 +1537,28 @@ i32.store local.get $1 call $while/Ref#constructor - local.tee $2 + local.tee $0 i32.store loop $while-continue|06 call $while/Ref#constructor if block $while-break|07 - local.get $0 + local.get $2 i32.const 1 i32.add - local.tee $0 + local.tee $2 i32.const 10 i32.eq if i32.const 0 - local.set $2 + local.set $0 br $while-break|07 end br $while-continue|06 end end end - local.get $0 + local.get $2 i32.const 10 i32.ne if @@ -1568,7 +1569,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 if i32.const 0 i32.const 1056 From e5056fbb92062ebd4433bebfeea5d3d4ea72fb58 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Fri, 13 Aug 2021 07:10:16 +0300 Subject: [PATCH 5/5] move LICM after flattening. Now it works --- src/module.ts | 4 +-- tests/compiler/loop-flow.optimized.wat | 28 +++++++++++++------ tests/compiler/number.optimized.wat | 14 ++++++---- tests/compiler/resolve-binary.optimized.wat | 14 ++++++---- .../resolve-elementaccess.optimized.wat | 14 ++++++---- tests/compiler/resolve-ternary.optimized.wat | 14 ++++++---- tests/compiler/std/array.optimized.wat | 14 ++++++---- tests/compiler/std/string.optimized.wat | 14 ++++++---- tests/compiler/std/typedarray.optimized.wat | 14 ++++++---- tests/compiler/templateliteral.optimized.wat | 14 ++++++---- tests/compiler/wasi/trace.optimized.wat | 14 ++++++---- 11 files changed, 92 insertions(+), 66 deletions(-) diff --git a/src/module.ts b/src/module.ts index 262efc81a4..2c91e9a1d5 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2261,6 +2261,7 @@ export class Module { passes.push("flatten"); passes.push("vacuum"); passes.push("local-cse"); + passes.push("licm"); passes.push("simplify-locals-notee-nostructure"); passes.push("merge-locals"); passes.push("reorder-locals"); @@ -2283,9 +2284,6 @@ export class Module { passes.push("pick-load-signs"); passes.push("simplify-globals-optimizing"); } - if (optimizeLevel >= 3 && shrinkLevel <= 1) { - passes.push("licm"); - } passes.push("simplify-locals-notee-nostructure"); passes.push("vacuum"); diff --git a/tests/compiler/loop-flow.optimized.wat b/tests/compiler/loop-flow.optimized.wat index 9812a7bc0e..d2e41d0b4f 100644 --- a/tests/compiler/loop-flow.optimized.wat +++ b/tests/compiler/loop-flow.optimized.wat @@ -26,10 +26,13 @@ i32.const 1 ) (func $loop-flow/whileAny (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 1 + i32.eq + local.set $1 loop $while-continue|0 (result i32) - local.get $0 - i32.const 1 - i32.eq + local.get $1 if (result i32) i32.const 1 else @@ -47,10 +50,13 @@ end ) (func $loop-flow/forAny (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 1 + i32.eq + local.set $1 loop $for-loop|0 (result i32) - local.get $0 - i32.const 1 - i32.eq + local.get $1 if (result i32) i32.const 1 else @@ -70,10 +76,14 @@ end ) (func $loop-flow/doAny (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 1 + i32.eq + local.set $1 loop $do-continue|0 - local.get $0 - i32.const 1 - i32.ne + local.get $1 + i32.eqz if local.get $0 i32.const 2 diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index f8328b862b..96e294fad6 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -2403,6 +2403,9 @@ br $while-continue|0 end end + local.get $10 + i64.extend_i32_s + local.set $0 loop $while-continue|4 local.get $3 i64.const 10 @@ -2411,11 +2414,10 @@ local.get $6 i64.const 10 i64.mul - local.tee $0 - local.get $10 - i64.extend_i32_s - i64.shr_u local.tee $1 + local.get $0 + i64.shr_u + local.tee $6 local.get $4 i64.extend_i32_s i64.or @@ -2432,7 +2434,7 @@ i32.shl i32.const 3456 i32.add - local.get $1 + local.get $6 i32.wrap_i64 i32.const 65535 i32.and @@ -2445,7 +2447,7 @@ i32.sub local.set $8 local.get $3 - local.get $0 + local.get $1 local.get $12 i64.and local.tee $6 diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index d6dbc07a6f..f09953a61a 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -2582,6 +2582,9 @@ br $while-continue|0 end end + local.get $10 + i64.extend_i32_s + local.set $0 loop $while-continue|4 local.get $3 i64.const 10 @@ -2590,11 +2593,10 @@ local.get $6 i64.const 10 i64.mul - local.tee $0 - local.get $10 - i64.extend_i32_s - i64.shr_u local.tee $1 + local.get $0 + i64.shr_u + local.tee $6 local.get $4 i64.extend_i32_s i64.or @@ -2611,7 +2613,7 @@ i32.shl i32.const 9760 i32.add - local.get $1 + local.get $6 i32.wrap_i64 i32.const 65535 i32.and @@ -2624,7 +2626,7 @@ i32.sub local.set $8 local.get $3 - local.get $0 + local.get $1 local.get $12 i64.and local.tee $6 diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index d15f804a12..1ced59c1ab 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -2202,6 +2202,9 @@ br $while-continue|0 end end + local.get $10 + i64.extend_i32_s + local.set $0 loop $while-continue|4 local.get $3 i64.const 10 @@ -2210,11 +2213,10 @@ local.get $6 i64.const 10 i64.mul - local.tee $0 - local.get $10 - i64.extend_i32_s - i64.shr_u local.tee $1 + local.get $0 + i64.shr_u + local.tee $6 local.get $4 i64.extend_i32_s i64.or @@ -2231,7 +2233,7 @@ i32.shl i32.const 1776 i32.add - local.get $1 + local.get $6 i32.wrap_i64 i32.const 65535 i32.and @@ -2244,7 +2246,7 @@ i32.sub local.set $8 local.get $3 - local.get $0 + local.get $1 local.get $12 i64.and local.tee $6 diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index 22edc93b8d..fd989e47d8 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -2284,6 +2284,9 @@ br $while-continue|0 end end + local.get $10 + i64.extend_i32_s + local.set $0 loop $while-continue|4 local.get $3 i64.const 10 @@ -2292,11 +2295,10 @@ local.get $6 i64.const 10 i64.mul - local.tee $0 - local.get $10 - i64.extend_i32_s - i64.shr_u local.tee $1 + local.get $0 + i64.shr_u + local.tee $6 local.get $4 i64.extend_i32_s i64.or @@ -2313,7 +2315,7 @@ i32.shl i32.const 3472 i32.add - local.get $1 + local.get $6 i32.wrap_i64 i32.const 65535 i32.and @@ -2326,7 +2328,7 @@ i32.sub local.set $8 local.get $3 - local.get $0 + local.get $1 local.get $12 i64.and local.tee $6 diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 2d04e0ab5c..b686cca794 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -9965,6 +9965,9 @@ br $while-continue|0 end end + local.get $11 + i64.extend_i32_s + local.set $1 loop $while-continue|4 local.get $4 i64.const 10 @@ -9973,11 +9976,10 @@ local.get $7 i64.const 10 i64.mul - local.tee $1 - local.get $11 - i64.extend_i32_s - i64.shr_u local.tee $2 + local.get $1 + i64.shr_u + local.tee $7 local.get $5 i64.extend_i32_s i64.or @@ -9994,7 +9996,7 @@ i32.const 1 i32.shl i32.add - local.get $2 + local.get $7 i32.wrap_i64 i32.const 65535 i32.and @@ -10007,7 +10009,7 @@ i32.sub local.set $9 local.get $4 - local.get $1 + local.get $2 local.get $13 i64.and local.tee $7 diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 239d5ab2be..142ea233a4 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -6771,6 +6771,9 @@ br $while-continue|0 end end + local.get $10 + i64.extend_i32_s + local.set $0 loop $while-continue|4 local.get $3 i64.const 10 @@ -6779,11 +6782,10 @@ local.get $6 i64.const 10 i64.mul - local.tee $0 - local.get $10 - i64.extend_i32_s - i64.shr_u local.tee $1 + local.get $0 + i64.shr_u + local.tee $6 local.get $4 i64.extend_i32_s i64.or @@ -6800,7 +6802,7 @@ i32.shl i32.const 22864 i32.add - local.get $1 + local.get $6 i32.wrap_i64 i32.const 65535 i32.and @@ -6813,7 +6815,7 @@ i32.sub local.set $8 local.get $3 - local.get $0 + local.get $1 local.get $12 i64.and local.tee $6 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 0704c86626..44be52a890 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -26508,6 +26508,9 @@ br $while-continue|0 end end + local.get $11 + i64.extend_i32_s + local.set $1 loop $while-continue|4 local.get $4 i64.const 10 @@ -26516,11 +26519,10 @@ local.get $7 i64.const 10 i64.mul - local.tee $1 - local.get $11 - i64.extend_i32_s - i64.shr_u local.tee $2 + local.get $1 + i64.shr_u + local.tee $7 local.get $5 i64.extend_i32_s i64.or @@ -26537,7 +26539,7 @@ i32.const 1 i32.shl i32.add - local.get $2 + local.get $7 i32.wrap_i64 i32.const 65535 i32.and @@ -26550,7 +26552,7 @@ i32.sub local.set $9 local.get $4 - local.get $1 + local.get $2 local.get $13 i64.and local.tee $7 diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index a6351645fa..50264db820 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -3659,6 +3659,9 @@ br $while-continue|0 end end + local.get $10 + i64.extend_i32_s + local.set $0 loop $while-continue|4 local.get $3 i64.const 10 @@ -3667,11 +3670,10 @@ local.get $6 i64.const 10 i64.mul - local.tee $0 - local.get $10 - i64.extend_i32_s - i64.shr_u local.tee $1 + local.get $0 + i64.shr_u + local.tee $6 local.get $4 i64.extend_i32_s i64.or @@ -3688,7 +3690,7 @@ i32.shl i32.const 3920 i32.add - local.get $1 + local.get $6 i32.wrap_i64 i32.const 65535 i32.and @@ -3701,7 +3703,7 @@ i32.sub local.set $8 local.get $3 - local.get $0 + local.get $1 local.get $12 i64.and local.tee $6 diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index 5a3a4cf0de..1d6a9d3568 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -1483,6 +1483,9 @@ br $while-continue|0 end end + local.get $11 + i64.extend_i32_s + local.set $1 loop $while-continue|4 local.get $4 i64.const 10 @@ -1491,11 +1494,10 @@ local.get $7 i64.const 10 i64.mul - local.tee $1 - local.get $11 - i64.extend_i32_s - i64.shr_u local.tee $2 + local.get $1 + i64.shr_u + local.tee $7 local.get $5 i64.extend_i32_s i64.or @@ -1512,7 +1514,7 @@ i32.const 1 i32.shl i32.add - local.get $2 + local.get $7 i32.wrap_i64 i32.const 65535 i32.and @@ -1525,7 +1527,7 @@ i32.sub local.set $9 local.get $4 - local.get $1 + local.get $2 local.get $13 i64.and local.tee $7