From 9743e1797b1782f9fc196d4d7a4fa85f114b65e3 Mon Sep 17 00:00:00 2001 From: dcode Date: Mon, 11 May 2020 14:54:45 +0200 Subject: [PATCH] What if locals are never free'd --- src/flow.ts | 2 + tests/compiler/abi.untouched.wat | 43 +- tests/compiler/assert-nonnull.untouched.wat | 72 +- tests/compiler/binary.untouched.wat | 896 ++- tests/compiler/builtins.untouched.wat | 302 +- tests/compiler/call-super.untouched.wat | 5 +- .../compiler/class-overloading.untouched.wat | 157 +- tests/compiler/class.untouched.wat | 5 +- tests/compiler/comma.untouched.wat | 5 +- tests/compiler/constructor.untouched.wat | 5 +- tests/compiler/do.untouched.wat | 421 +- tests/compiler/exports.untouched.wat | 5 +- .../extends-baseaggregate.optimized.wat | 30 +- .../extends-baseaggregate.untouched.wat | 919 ++- .../compiler/extends-recursive.untouched.wat | 5 +- .../features/reference-types.untouched.wat | 3 +- tests/compiler/features/simd.untouched.wat | 5 +- tests/compiler/for.untouched.wat | 423 +- tests/compiler/getter-call.untouched.wat | 5 +- .../implicit-getter-setter.untouched.wat | 391 +- tests/compiler/infer-array.untouched.wat | 663 +- tests/compiler/infer-generic.untouched.wat | 5 +- .../inlining-blocklocals.untouched.wat | 18 +- tests/compiler/inlining.untouched.wat | 110 +- tests/compiler/instanceof-class.untouched.wat | 5 +- tests/compiler/issues/1095.untouched.wat | 404 +- tests/compiler/issues/1225.untouched.wat | 391 +- tests/compiler/logical.untouched.wat | 129 +- tests/compiler/loop-wrap.untouched.wat | 5 +- tests/compiler/managed-cast.untouched.wat | 396 +- tests/compiler/memcpy.untouched.wat | 414 +- tests/compiler/memmove.untouched.wat | 40 +- tests/compiler/new.untouched.wat | 90 +- tests/compiler/number.optimized.wat | 66 +- tests/compiler/number.untouched.wat | 1282 +-- tests/compiler/object-literal.untouched.wat | 1052 +-- .../optional-typeparameters.untouched.wat | 5 +- tests/compiler/overflow.untouched.wat | 221 +- tests/compiler/rc/global-init.untouched.wat | 227 +- tests/compiler/rc/local-init.untouched.wat | 401 +- .../rc/logical-and-mismatch.untouched.wat | 428 +- .../rc/logical-or-mismatch.untouched.wat | 428 +- tests/compiler/rc/optimize.untouched.wat | 391 +- tests/compiler/rc/rereturn.untouched.wat | 391 +- .../rc/ternary-mismatch.untouched.wat | 391 +- tests/compiler/resolve-access.untouched.wat | 517 +- tests/compiler/resolve-binary.optimized.wat | 66 +- tests/compiler/resolve-binary.untouched.wat | 1855 +++-- .../resolve-elementaccess.optimized.wat | 22 +- .../resolve-elementaccess.untouched.wat | 1296 +-- .../resolve-function-expression.untouched.wat | 80 +- tests/compiler/resolve-nested.untouched.wat | 5 +- tests/compiler/resolve-new.untouched.wat | 5 +- .../resolve-propertyaccess.untouched.wat | 80 +- tests/compiler/resolve-ternary.optimized.wat | 66 +- tests/compiler/resolve-ternary.untouched.wat | 1642 ++-- tests/compiler/resolve-unary.untouched.wat | 242 +- .../retain-release-sanity.optimized.wat | 242 +- .../retain-release-sanity.untouched.wat | 1139 +-- tests/compiler/retain-release.untouched.wat | 30 +- tests/compiler/retain-return.untouched.wat | 391 +- tests/compiler/rt/instanceof.untouched.wat | 90 +- tests/compiler/rt/stub-realloc.untouched.wat | 466 +- tests/compiler/runtime-full.untouched.wat | 391 +- tests/compiler/runtime-stub.untouched.wat | 5 +- tests/compiler/scoped.untouched.wat | 26 +- tests/compiler/std/array-access.untouched.wat | 73 +- .../compiler/std/array-literal.untouched.wat | 930 ++- tests/compiler/std/array.optimized.wat | 1155 ++- tests/compiler/std/array.untouched.wat | 7088 ++++++++++------- tests/compiler/std/arraybuffer.untouched.wat | 970 ++- tests/compiler/std/dataview.untouched.wat | 391 +- tests/compiler/std/date.untouched.wat | 75 +- tests/compiler/std/hash.untouched.wat | 115 +- tests/compiler/std/math.optimized.wat | 14 +- tests/compiler/std/math.untouched.wat | 4575 ++++++----- tests/compiler/std/new.untouched.wat | 5 +- tests/compiler/std/object.untouched.wat | 52 +- .../std/operator-overloading.untouched.wat | 818 +- tests/compiler/std/pointer.untouched.wat | 749 +- tests/compiler/std/static-array.untouched.wat | 472 +- tests/compiler/std/staticarray.untouched.wat | 887 ++- .../std/string-casemapping.untouched.wat | 1343 ++-- .../std/string-encoding.untouched.wat | 963 ++- tests/compiler/std/string.optimized.wat | 393 +- tests/compiler/std/string.untouched.wat | 4796 ++++++----- tests/compiler/std/symbol.untouched.wat | 850 +- tests/compiler/std/typedarray.optimized.wat | 421 +- tests/compiler/std/typedarray.untouched.wat | 6575 ++++++++------- tests/compiler/typeof.untouched.wat | 57 +- tests/compiler/unary.untouched.wat | 79 +- tests/compiler/wasi/abort.untouched.wat | 67 +- tests/compiler/wasi/seed.untouched.wat | 67 +- tests/compiler/wasi/trace.optimized.wat | 22 +- tests/compiler/wasi/trace.untouched.wat | 1191 +-- tests/compiler/while.untouched.wat | 414 +- 96 files changed, 31383 insertions(+), 24532 deletions(-) diff --git a/src/flow.ts b/src/flow.ts index 4324bdde69..4f3e87325d 100644 --- a/src/flow.ts +++ b/src/flow.ts @@ -338,6 +338,7 @@ export class Flow { /** Frees the temporary local for reuse. */ freeTempLocal(local: Local): void { + /* if (local.is(CommonFlags.INLINED)) return; assert(local.index >= 0); var parentFunction = this.parentFunction; @@ -390,6 +391,7 @@ export class Flow { } assert(local.index >= 0); temps.push(local); + */ } /** Gets the scoped local of the specified name. */ diff --git a/tests/compiler/abi.untouched.wat b/tests/compiler/abi.untouched.wat index f540d255b1..d17fbcdbba 100644 --- a/tests/compiler/abi.untouched.wat +++ b/tests/compiler/abi.untouched.wat @@ -19,6 +19,9 @@ (func $start:abi (local $0 i32) (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) call $abi/internal drop i32.const 0 @@ -42,28 +45,28 @@ unreachable end i32.const 256 - local.set $0 + local.set $1 global.get $abi/condition if - local.get $0 + local.get $1 i32.const 24 i32.shl i32.const 24 i32.shr_s i32.const 2 i32.div_s - local.set $0 + local.set $1 else - local.get $0 + local.get $1 i32.const 24 i32.shl i32.const 24 i32.shr_s i32.const 2 i32.div_s - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 24 i32.shl i32.const 24 @@ -79,24 +82,24 @@ unreachable end i32.const 256 - local.set $0 + local.set $2 global.get $abi/condition if - local.get $0 + local.get $2 i32.const 24 i32.shl i32.const 24 i32.shr_s i32.const 24 i32.shr_s - local.set $0 + local.set $2 else - local.get $0 + local.get $2 i32.const 127 i32.and - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz i32.eqz if @@ -126,8 +129,8 @@ end i32.const 2 i32.ctz - local.set $0 - local.get $0 + local.set $3 + local.get $3 i32.const 0 i32.ne i32.eqz @@ -141,8 +144,8 @@ end i32.const 1 i32.clz - local.set $0 - local.get $0 + local.set $3 + local.get $3 i32.const 0 i32.ne i32.eqz @@ -156,8 +159,8 @@ end i32.const 2 i32.ctz - local.set $1 - local.get $1 + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -169,8 +172,8 @@ end i32.const 1 i32.clz - local.set $1 - local.get $1 + local.set $4 + local.get $4 i32.eqz if i32.const 0 diff --git a/tests/compiler/assert-nonnull.untouched.wat b/tests/compiler/assert-nonnull.untouched.wat index b55e8ac517..0c663f7a82 100644 --- a/tests/compiler/assert-nonnull.untouched.wat +++ b/tests/compiler/assert-nonnull.untouched.wat @@ -34,6 +34,7 @@ ) (func $assert-nonnull/testVar (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -50,13 +51,14 @@ unreachable end call $~lib/rt/stub/__retain - local.set $1 + local.set $2 local.get $0 call $~lib/rt/stub/__release - local.get $1 + local.get $2 ) (func $assert-nonnull/testObj (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -74,13 +76,14 @@ end i32.load call $~lib/rt/stub/__retain - local.set $1 + local.set $2 local.get $0 call $~lib/rt/stub/__release - local.get $1 + local.get $2 ) (func $assert-nonnull/testProp (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -98,10 +101,10 @@ unreachable end call $~lib/rt/stub/__retain - local.set $1 + local.set $2 local.get $0 call $~lib/rt/stub/__release - local.get $1 + local.get $2 ) (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -152,6 +155,7 @@ ) (func $assert-nonnull/testArr (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -169,10 +173,10 @@ end i32.const 0 call $~lib/array/Array#__get - local.set $1 + local.set $2 local.get $0 call $~lib/rt/stub/__release - local.get $1 + local.get $2 ) (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -211,6 +215,7 @@ ) (func $assert-nonnull/testElem (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -229,14 +234,17 @@ unreachable end call $~lib/rt/stub/__retain - local.set $1 + local.set $2 local.get $0 call $~lib/rt/stub/__release - local.get $1 + local.get $2 ) (func $assert-nonnull/testAll (param $0 i32) (result i32) (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -254,10 +262,10 @@ end i32.const 0 call $~lib/array/Array#__get - local.tee $1 local.tee $2 + local.tee $3 if (result i32) - local.get $2 + local.get $3 else i32.const 0 i32.const 32 @@ -267,9 +275,9 @@ unreachable end i32.load - local.tee $2 + local.tee $4 if (result i32) - local.get $2 + local.get $4 else i32.const 0 i32.const 32 @@ -279,16 +287,19 @@ unreachable end call $~lib/rt/stub/__retain - local.set $2 - local.get $1 + local.set $5 + local.get $2 call $~lib/rt/stub/__release local.get $0 call $~lib/rt/stub/__release - local.get $2 + local.get $5 ) (func $assert-nonnull/testAll2 (param $0 i32) (result i32) (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -306,10 +317,10 @@ end i32.const 0 call $~lib/array/Array#__get - local.tee $1 local.tee $2 + local.tee $3 if (result i32) - local.get $2 + local.get $3 else i32.const 0 i32.const 32 @@ -319,9 +330,9 @@ unreachable end i32.load - local.tee $2 + local.tee $4 if (result i32) - local.get $2 + local.get $4 else i32.const 0 i32.const 32 @@ -331,12 +342,12 @@ unreachable end call $~lib/rt/stub/__retain - local.set $2 - local.get $1 + local.set $5 + local.get $2 call $~lib/rt/stub/__release local.get $0 call $~lib/rt/stub/__release - local.get $2 + local.get $5 ) (func $~setArgumentsLength (param $0 i32) local.get $0 @@ -353,6 +364,7 @@ (func $assert-nonnull/testFn2 (param $0 i32) (result i32) (local $1 i32) (local $2 i32) + (local $3 i32) local.get $0 local.tee $1 if (result i32) @@ -370,11 +382,12 @@ global.set $~argumentsLength local.get $2 call_indirect (type $none_=>_i32) - local.tee $1 + local.tee $3 ) (func $assert-nonnull/testRet (param $0 i32) (result i32) (local $1 i32) (local $2 i32) + (local $3 i32) i32.const 0 global.set $~argumentsLength local.get $0 @@ -392,10 +405,10 @@ unreachable end call $~lib/rt/stub/__retain - local.set $2 + local.set $3 local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $3 ) (func $assert-nonnull/testObjFn (param $0 i32) (result i32) (local $1 i32) @@ -417,6 +430,7 @@ (func $assert-nonnull/testObjRet (param $0 i32) (result i32) (local $1 i32) (local $2 i32) + (local $3 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -438,11 +452,11 @@ unreachable end call $~lib/rt/stub/__retain - local.set $2 + local.set $3 local.get $1 call $~lib/rt/stub/__release local.get $0 call $~lib/rt/stub/__release - local.get $2 + local.get $3 ) ) diff --git a/tests/compiler/binary.untouched.wat b/tests/compiler/binary.untouched.wat index 75abfb6ac0..4984b0b80e 100644 --- a/tests/compiler/binary.untouched.wat +++ b/tests/compiler/binary.untouched.wat @@ -26,18 +26,18 @@ (local $7 i64) (local $8 i64) (local $9 i64) - (local $10 f64) - (local $11 i64) - (local $12 i32) + (local $10 i64) + (local $11 f64) + (local $12 i64) (local $13 i64) (local $14 i64) - (local $15 f64) - (local $16 f64) - (local $17 f64) - (local $18 f64) - (local $19 f64) - (local $20 f64) - (local $21 f64) + (local $15 i64) + (local $16 i32) + (local $17 i64) + (local $18 i64) + (local $19 i32) + (local $20 i64) + (local $21 i64) (local $22 f64) (local $23 f64) (local $24 f64) @@ -55,12 +55,52 @@ (local $36 f64) (local $37 f64) (local $38 f64) - (local $39 i32) - (local $40 i32) - (local $41 i32) - (local $42 i32) - (local $43 i64) - (local $44 i64) + (local $39 f64) + (local $40 f64) + (local $41 f64) + (local $42 f64) + (local $43 f64) + (local $44 f64) + (local $45 f64) + (local $46 f64) + (local $47 f64) + (local $48 f64) + (local $49 f64) + (local $50 f64) + (local $51 f64) + (local $52 f64) + (local $53 f64) + (local $54 f64) + (local $55 i32) + (local $56 f64) + (local $57 f64) + (local $58 i32) + (local $59 i64) + (local $60 i64) + (local $61 i64) + (local $62 i32) + (local $63 f64) + (local $64 f64) + (local $65 f64) + (local $66 f64) + (local $67 f64) + (local $68 f64) + (local $69 f64) + (local $70 i64) + (local $71 i32) + (local $72 f64) + (local $73 i32) + (local $74 i32) + (local $75 f64) + (local $76 i32) + (local $77 i64) + (local $78 i64) + (local $79 f64) + (local $80 f64) + (local $81 f64) + (local $82 f64) + (local $83 f64) + (local $84 f64) local.get $1 f64.abs f64.const 2 @@ -239,8 +279,8 @@ br $~lib/util/math/pow_lut|inlined.0 end local.get $5 - local.set $9 - local.get $9 + local.set $10 + local.get $10 i64.const 1 i64.shl i64.const 1 @@ -253,7 +293,7 @@ local.get $3 local.get $3 f64.mul - local.set $10 + local.set $11 local.get $5 i64.const 63 i64.shr_u @@ -261,21 +301,21 @@ if (result i32) block $~lib/util/math/checkint|inlined.0 (result i32) local.get $6 - local.set $9 - local.get $9 + local.set $12 + local.get $12 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.set $11 - local.get $11 + local.set $13 + local.get $13 i64.const 1023 i64.lt_u if i32.const 0 br $~lib/util/math/checkint|inlined.0 end - local.get $11 + local.get $13 i64.const 1023 i64.const 52 i64.add @@ -288,12 +328,12 @@ i64.const 1023 i64.const 52 i64.add - local.get $11 + local.get $13 i64.sub i64.shl - local.set $11 - local.get $9 - local.get $11 + local.set $13 + local.get $12 + local.get $13 i64.const 1 i64.sub i64.and @@ -303,8 +343,8 @@ i32.const 0 br $~lib/util/math/checkint|inlined.0 end - local.get $9 - local.get $11 + local.get $12 + local.get $13 i64.and i64.const 0 i64.ne @@ -320,9 +360,9 @@ i32.const 0 end if - local.get $10 + local.get $11 f64.neg - local.set $10 + local.set $11 end local.get $6 i64.const 63 @@ -331,10 +371,10 @@ i64.ne if (result f64) f64.const 1 - local.get $10 + local.get $11 f64.div else - local.get $10 + local.get $11 end br $~lib/util/math/pow_lut|inlined.0 end @@ -346,21 +386,21 @@ if block $~lib/util/math/checkint|inlined.1 (result i32) local.get $6 - local.set $9 - local.get $9 + local.set $14 + local.get $14 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.set $11 - local.get $11 + local.set $15 + local.get $15 i64.const 1023 i64.lt_u if i32.const 0 br $~lib/util/math/checkint|inlined.1 end - local.get $11 + local.get $15 i64.const 1023 i64.const 52 i64.add @@ -373,12 +413,12 @@ i64.const 1023 i64.const 52 i64.add - local.get $11 + local.get $15 i64.sub i64.shl - local.set $11 - local.get $9 - local.get $11 + local.set $15 + local.get $14 + local.get $15 i64.const 1 i64.sub i64.and @@ -388,8 +428,8 @@ i32.const 0 br $~lib/util/math/checkint|inlined.1 end - local.get $9 - local.get $11 + local.get $14 + local.get $15 i64.and i64.const 0 i64.ne @@ -399,8 +439,8 @@ end i32.const 2 end - local.set $12 - local.get $12 + local.set $16 + local.get $16 i32.const 0 i32.eq if @@ -413,7 +453,7 @@ f64.div br $~lib/util/math/pow_lut|inlined.0 end - local.get $12 + local.get $16 i32.const 1 i32.eq if @@ -491,12 +531,12 @@ end end local.get $5 - local.set $9 - local.get $9 + local.set $17 + local.get $17 i64.const 4604531861337669632 i64.sub - local.set $11 - local.get $11 + local.set $18 + local.get $18 i64.const 52 i64.const 7 i64.sub @@ -504,150 +544,150 @@ i64.const 127 i64.and i32.wrap_i64 - local.set $12 - local.get $11 + local.set $19 + local.get $18 i64.const 52 i64.shr_s - local.set $13 - local.get $9 - local.get $11 + local.set $20 + local.get $17 + local.get $18 i64.const 4095 i64.const 52 i64.shl i64.and i64.sub - local.set $14 - local.get $14 + local.set $21 + local.get $21 f64.reinterpret_i64 - local.set $10 - local.get $13 + local.set $22 + local.get $20 f64.convert_i64_s - local.set $15 + local.set $23 i32.const 8 - local.get $12 + local.get $19 i32.const 2 i32.const 3 i32.add i32.shl i32.add f64.load - local.set $16 + local.set $24 i32.const 8 - local.get $12 + local.get $19 i32.const 2 i32.const 3 i32.add i32.shl i32.add f64.load offset=16 - local.set $17 + local.set $25 i32.const 8 - local.get $12 + local.get $19 i32.const 2 i32.const 3 i32.add i32.shl i32.add f64.load offset=24 - local.set $18 - local.get $14 + local.set $26 + local.get $21 i64.const 2147483648 i64.add i64.const -4294967296 i64.and f64.reinterpret_i64 - local.set $19 - local.get $10 - local.get $19 + local.set $27 + local.get $22 + local.get $27 f64.sub - local.set $20 - local.get $19 - local.get $16 + local.set $28 + local.get $27 + local.get $24 f64.mul f64.const 1 f64.sub - local.set $21 - local.get $20 - local.get $16 + local.set $29 + local.get $28 + local.get $24 f64.mul - local.set $22 - local.get $21 - local.get $22 + local.set $30 + local.get $29 + local.get $30 f64.add - local.set $23 - local.get $15 + local.set $31 + local.get $23 f64.const 0.6931471805598903 f64.mul - local.get $17 + local.get $25 f64.add - local.set $24 - local.get $24 - local.get $23 + local.set $32 + local.get $32 + local.get $31 f64.add - local.set $25 - local.get $15 + local.set $33 + local.get $23 f64.const 5.497923018708371e-14 f64.mul - local.get $18 + local.get $26 f64.add - local.set $26 - local.get $24 - local.get $25 + local.set $34 + local.get $32 + local.get $33 f64.sub - local.get $23 + local.get $31 f64.add - local.set $27 + local.set $35 f64.const -0.5 - local.get $23 + local.get $31 f64.mul - local.set $28 - local.get $23 - local.get $28 + local.set $36 + local.get $31 + local.get $36 f64.mul - local.set $29 - local.get $23 - local.get $29 + local.set $37 + local.get $31 + local.get $37 f64.mul - local.set $30 + local.set $38 f64.const -0.5 - local.get $21 + local.get $29 f64.mul - local.set $31 - local.get $21 - local.get $31 + local.set $39 + local.get $29 + local.get $39 f64.mul - local.set $32 - local.get $25 - local.get $32 + local.set $40 + local.get $33 + local.get $40 f64.add - local.set $33 - local.get $22 - local.get $28 - local.get $31 + local.set $41 + local.get $30 + local.get $36 + local.get $39 f64.add f64.mul - local.set $34 - local.get $25 + local.set $42 local.get $33 + local.get $41 f64.sub - local.get $32 + local.get $40 f64.add - local.set $35 - local.get $30 + local.set $43 + local.get $38 f64.const -0.6666666666666679 - local.get $23 + local.get $31 f64.const 0.5000000000000007 f64.mul f64.add - local.get $29 + local.get $37 f64.const 0.7999999995323976 - local.get $23 + local.get $31 f64.const -0.6666666663487739 f64.mul f64.add - local.get $29 + local.get $37 f64.const -1.142909628459501 - local.get $23 + local.get $31 f64.const 1.0000415263675542 f64.mul f64.add @@ -656,88 +696,88 @@ f64.mul f64.add f64.mul - local.set $36 - local.get $26 - local.get $27 - f64.add + local.set $44 local.get $34 - f64.add local.get $35 f64.add - local.get $36 + local.get $42 f64.add - local.set $37 - local.get $33 - local.get $37 + local.get $43 f64.add - local.set $38 - local.get $33 - local.get $38 + local.get $44 + f64.add + local.set $45 + local.get $41 + local.get $45 + f64.add + local.set $46 + local.get $41 + local.get $46 f64.sub - local.get $37 + local.get $45 f64.add global.set $~lib/util/math/log_tail - local.get $38 - local.set $38 + local.get $46 + local.set $47 global.get $~lib/util/math/log_tail - local.set $37 + local.set $48 local.get $6 i64.const -134217728 i64.and f64.reinterpret_i64 - local.set $34 + local.set $51 local.get $2 - local.get $34 + local.get $51 f64.sub - local.set $33 - local.get $38 + local.set $52 + local.get $47 i64.reinterpret_f64 i64.const -134217728 i64.and f64.reinterpret_i64 - local.set $32 - local.get $38 - local.get $32 + local.set $53 + local.get $47 + local.get $53 f64.sub - local.get $37 + local.get $48 f64.add - local.set $31 - local.get $34 - local.get $32 + local.set $54 + local.get $51 + local.get $53 f64.mul - local.set $36 - local.get $33 - local.get $32 + local.set $49 + local.get $52 + local.get $53 f64.mul local.get $2 - local.get $31 + local.get $54 f64.mul f64.add - local.set $35 + local.set $50 block $~lib/util/math/exp_inline|inlined.0 (result f64) - local.get $36 - local.set $15 - local.get $35 - local.set $10 + local.get $49 + local.set $57 + local.get $50 + local.set $56 local.get $4 - local.set $12 - local.get $15 + local.set $55 + local.get $57 i64.reinterpret_f64 - local.set $9 - local.get $9 + local.set $70 + local.get $70 i64.const 52 i64.shr_u i32.wrap_i64 i32.const 2047 i32.and - local.set $39 - local.get $39 + local.set $58 + local.get $58 i32.const 969 i32.sub i32.const 63 i32.ge_u if - local.get $39 + local.get $58 i32.const 969 i32.sub i32.const -2147483648 @@ -745,252 +785,252 @@ if f64.const -1 f64.const 1 - local.get $12 + local.get $55 select br $~lib/util/math/exp_inline|inlined.0 end - local.get $39 + local.get $58 i32.const 1033 i32.ge_u if - local.get $9 + local.get $70 i64.const 63 i64.shr_u i64.const 0 i64.ne if (result f64) - local.get $12 - local.set $41 - local.get $41 - local.set $42 + local.get $55 + local.set $71 + local.get $71 + local.set $73 i64.const 1152921504606846976 f64.reinterpret_i64 - local.set $16 - local.get $16 + local.set $72 + local.get $72 f64.neg - local.get $16 - local.get $42 + local.get $72 + local.get $73 select - local.get $16 + local.get $72 f64.mul else - local.get $12 - local.set $42 - local.get $42 - local.set $41 + local.get $55 + local.set $74 + local.get $74 + local.set $76 i64.const 8070450532247928832 f64.reinterpret_i64 - local.set $17 - local.get $17 + local.set $75 + local.get $75 f64.neg - local.get $17 - local.get $41 + local.get $75 + local.get $76 select - local.get $17 + local.get $75 f64.mul end br $~lib/util/math/exp_inline|inlined.0 end i32.const 0 - local.set $39 + local.set $58 end f64.const 184.6649652337873 - local.get $15 + local.get $57 f64.mul - local.set $29 - local.get $29 + local.set $64 + local.get $64 f64.const 6755399441055744 f64.add - local.set $30 - local.get $30 + local.set $63 + local.get $63 i64.reinterpret_f64 - local.set $14 - local.get $30 + local.set $59 + local.get $63 f64.const 6755399441055744 f64.sub - local.set $30 - local.get $15 - local.get $30 + local.set $63 + local.get $57 + local.get $63 f64.const -0.005415212348111709 f64.mul f64.add - local.get $30 + local.get $63 f64.const -1.2864023111638346e-14 f64.mul f64.add - local.set $28 - local.get $28 - local.get $10 + local.set $65 + local.get $65 + local.get $56 f64.add - local.set $28 - local.get $14 + local.set $65 + local.get $59 i64.const 127 i64.and i64.const 1 i64.shl i32.wrap_i64 - local.set $40 - local.get $14 - local.get $12 + local.set $62 + local.get $59 + local.get $55 i64.extend_i32_u i64.add i64.const 52 i64.const 7 i64.sub i64.shl - local.set $13 + local.set $60 i32.const 4104 - local.get $40 + local.get $62 i32.const 3 i32.shl i32.add i64.load f64.reinterpret_i64 - local.set $25 + local.set $68 i32.const 4104 - local.get $40 + local.get $62 i32.const 3 i32.shl i32.add i64.load offset=8 - local.get $13 + local.get $60 i64.add - local.set $11 - local.get $28 - local.get $28 + local.set $61 + local.get $65 + local.get $65 f64.mul - local.set $27 - local.get $25 - local.get $28 + local.set $66 + local.get $68 + local.get $65 f64.add - local.get $27 + local.get $66 f64.const 0.49999999999996786 - local.get $28 + local.get $65 f64.const 0.16666666666665886 f64.mul f64.add f64.mul f64.add - local.get $27 - local.get $27 + local.get $66 + local.get $66 f64.mul f64.const 0.0416666808410674 - local.get $28 + local.get $65 f64.const 0.008333335853059549 f64.mul f64.add f64.mul f64.add - local.set $24 - local.get $39 + local.set $69 + local.get $58 i32.const 0 i32.eq if block $~lib/util/math/specialcase|inlined.0 (result f64) - local.get $24 - local.set $18 - local.get $11 - local.set $44 - local.get $14 - local.set $43 - local.get $43 + local.get $69 + local.set $79 + local.get $61 + local.set $78 + local.get $59 + local.set $77 + local.get $77 i64.const 2147483648 i64.and i64.const 0 i64.ne i32.eqz if - local.get $44 + local.get $78 i64.const 1009 i64.const 52 i64.shl i64.sub - local.set $44 - local.get $44 + local.set $78 + local.get $78 f64.reinterpret_i64 - local.set $17 + local.set $80 f64.const 5486124068793688683255936e279 - local.get $17 - local.get $17 - local.get $18 + local.get $80 + local.get $80 + local.get $79 f64.mul f64.add f64.mul br $~lib/util/math/specialcase|inlined.0 end - local.get $44 + local.get $78 i64.const 1022 i64.const 52 i64.shl i64.add - local.set $44 - local.get $44 + local.set $78 + local.get $78 f64.reinterpret_i64 - local.set $17 - local.get $17 - local.get $17 - local.get $18 + local.set $80 + local.get $80 + local.get $80 + local.get $79 f64.mul f64.add - local.set $16 - local.get $16 + local.set $81 + local.get $81 f64.abs f64.const 1 f64.lt if f64.const 1 - local.get $16 + local.get $81 f64.copysign - local.set $23 - local.get $17 - local.get $16 + local.set $82 + local.get $80 + local.get $81 f64.sub - local.get $17 - local.get $18 + local.get $80 + local.get $79 f64.mul f64.add - local.set $22 - local.get $23 - local.get $16 + local.set $83 + local.get $82 + local.get $81 f64.add - local.set $21 - local.get $23 - local.get $21 + local.set $84 + local.get $82 + local.get $84 f64.sub - local.get $16 + local.get $81 f64.add - local.get $22 + local.get $83 f64.add - local.set $22 - local.get $21 - local.get $22 + local.set $83 + local.get $84 + local.get $83 f64.add - local.get $23 + local.get $82 f64.sub - local.set $16 - local.get $16 + local.set $81 + local.get $81 f64.const 0 f64.eq if - local.get $44 + local.get $78 i64.const -9223372036854775808 i64.and f64.reinterpret_i64 - local.set $16 + local.set $81 end end - local.get $16 + local.get $81 f64.const 2.2250738585072014e-308 f64.mul end br $~lib/util/math/exp_inline|inlined.0 end - local.get $11 + local.get $61 f64.reinterpret_i64 - local.set $26 - local.get $26 - local.get $26 - local.get $24 + local.set $67 + local.get $67 + local.get $67 + local.get $69 f64.mul f64.add end @@ -1253,22 +1293,44 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f32) - (local $10 i32) + (local $9 i32) + (local $10 f32) (local $11 i32) (local $12 i32) (local $13 i32) (local $14 i32) - (local $15 f64) - (local $16 f64) - (local $17 f64) - (local $18 f64) - (local $19 f64) - (local $20 f64) - (local $21 f64) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) (local $22 f64) - (local $23 i64) - (local $24 i64) + (local $23 f64) + (local $24 f64) + (local $25 f64) + (local $26 f64) + (local $27 f64) + (local $28 f64) + (local $29 f64) + (local $30 f64) + (local $31 f64) + (local $32 i32) + (local $33 f32) + (local $34 i32) + (local $35 i32) + (local $36 f32) + (local $37 i32) + (local $38 i32) + (local $39 f64) + (local $40 f64) + (local $41 i64) + (local $42 f64) + (local $43 i64) + (local $44 f64) + (local $45 f64) + (local $46 f64) local.get $1 f32.abs f32.const 2 @@ -1441,8 +1503,8 @@ br $~lib/util/math/powf_lut|inlined.0 end local.get $5 - local.set $8 - local.get $8 + local.set $9 + local.get $9 i32.const 1 i32.shl i32.const 1 @@ -1457,28 +1519,28 @@ local.get $3 local.get $3 f32.mul - local.set $9 + local.set $10 local.get $5 i32.const 31 i32.shr_u if (result i32) block $~lib/util/math/checkintf|inlined.0 (result i32) local.get $6 - local.set $8 - local.get $8 + local.set $11 + local.get $11 i32.const 23 i32.shr_u i32.const 255 i32.and - local.set $10 - local.get $10 + local.set $12 + local.get $12 i32.const 127 i32.lt_u if i32.const 0 br $~lib/util/math/checkintf|inlined.0 end - local.get $10 + local.get $12 i32.const 127 i32.const 23 i32.add @@ -1491,12 +1553,12 @@ i32.const 127 i32.const 23 i32.add - local.get $10 + local.get $12 i32.sub i32.shl - local.set $10 - local.get $8 - local.get $10 + local.set $12 + local.get $11 + local.get $12 i32.const 1 i32.sub i32.and @@ -1504,8 +1566,8 @@ i32.const 0 br $~lib/util/math/checkintf|inlined.0 end - local.get $8 - local.get $10 + local.get $11 + local.get $12 i32.and if i32.const 1 @@ -1519,19 +1581,19 @@ i32.const 0 end if - local.get $9 + local.get $10 f32.neg - local.set $9 + local.set $10 end local.get $6 i32.const 31 i32.shr_u if (result f32) f32.const 1 - local.get $9 + local.get $10 f32.div else - local.get $9 + local.get $10 end br $~lib/util/math/powf_lut|inlined.0 end @@ -1541,21 +1603,21 @@ if block $~lib/util/math/checkintf|inlined.1 (result i32) local.get $6 - local.set $8 - local.get $8 + local.set $13 + local.get $13 i32.const 23 i32.shr_u i32.const 255 i32.and - local.set $10 - local.get $10 + local.set $14 + local.get $14 i32.const 127 i32.lt_u if i32.const 0 br $~lib/util/math/checkintf|inlined.1 end - local.get $10 + local.get $14 i32.const 127 i32.const 23 i32.add @@ -1568,12 +1630,12 @@ i32.const 127 i32.const 23 i32.add - local.get $10 + local.get $14 i32.sub i32.shl - local.set $10 - local.get $8 - local.get $10 + local.set $14 + local.get $13 + local.get $14 i32.const 1 i32.sub i32.and @@ -1581,8 +1643,8 @@ i32.const 0 br $~lib/util/math/checkintf|inlined.1 end - local.get $8 - local.get $10 + local.get $13 + local.get $14 i32.and if i32.const 1 @@ -1590,8 +1652,8 @@ end i32.const 2 end - local.set $10 - local.get $10 + local.set $15 + local.get $15 i32.const 0 i32.eq if @@ -1604,7 +1666,7 @@ f32.div br $~lib/util/math/powf_lut|inlined.0 end - local.get $10 + local.get $15 i32.const 1 i32.eq if @@ -1638,108 +1700,108 @@ end end local.get $5 - local.set $8 - local.get $8 + local.set $16 + local.get $16 i32.const 1060306944 i32.sub - local.set $10 - local.get $10 + local.set $17 + local.get $17 i32.const 23 i32.const 4 i32.sub i32.shr_u i32.const 15 i32.and - local.set $11 - local.get $10 + local.set $18 + local.get $17 i32.const -8388608 i32.and - local.set $12 - local.get $8 - local.get $12 + local.set $19 + local.get $16 + local.get $19 i32.sub - local.set $13 - local.get $12 + local.set $20 + local.get $19 i32.const 23 i32.shr_s - local.set $14 + local.set $21 i32.const 6152 - local.get $11 + local.get $18 i32.const 1 i32.const 3 i32.add i32.shl i32.add f64.load - local.set $15 + local.set $22 i32.const 6152 - local.get $11 + local.get $18 i32.const 1 i32.const 3 i32.add i32.shl i32.add f64.load offset=8 - local.set $16 - local.get $13 + local.set $23 + local.get $20 f32.reinterpret_i32 f64.promote_f32 - local.set $17 - local.get $17 - local.get $15 + local.set $24 + local.get $24 + local.get $22 f64.mul f64.const 1 f64.sub - local.set $18 - local.get $16 - local.get $14 + local.set $25 + local.get $23 + local.get $21 f64.convert_i32_s f64.add - local.set $19 + local.set $26 f64.const 0.288457581109214 - local.get $18 + local.get $25 f64.mul f64.const -0.36092606229713164 f64.add - local.set $20 + local.set $27 f64.const 0.480898481472577 - local.get $18 + local.get $25 f64.mul f64.const -0.7213474675006291 f64.add - local.set $21 + local.set $28 f64.const 1.4426950408774342 - local.get $18 + local.get $25 f64.mul - local.get $19 + local.get $26 f64.add - local.set $22 - local.get $18 - local.get $18 + local.set $29 + local.get $25 + local.get $25 f64.mul - local.set $18 - local.get $22 - local.get $21 - local.get $18 + local.set $25 + local.get $29 + local.get $28 + local.get $25 f64.mul f64.add - local.set $22 - local.get $20 - local.get $18 - local.get $18 + local.set $29 + local.get $27 + local.get $25 + local.get $25 f64.mul f64.mul - local.get $22 + local.get $29 f64.add - local.set $20 - local.get $20 - local.set $22 + local.set $27 + local.get $27 + local.set $30 local.get $2 f64.promote_f32 - local.get $22 + local.get $30 f64.mul - local.set $21 - local.get $21 + local.set $31 + local.get $31 i64.reinterpret_f64 i64.const 47 i64.shr_u @@ -1748,66 +1810,66 @@ i64.const 32959 i64.ge_u if - local.get $21 + local.get $31 f64.const 127.99999995700433 f64.gt if local.get $4 - local.set $8 - local.get $8 - local.set $10 + local.set $32 + local.get $32 + local.set $34 i32.const 1879048192 f32.reinterpret_i32 - local.set $9 - local.get $9 + local.set $33 + local.get $33 f32.neg - local.get $9 - local.get $10 + local.get $33 + local.get $34 select - local.get $9 + local.get $33 f32.mul br $~lib/util/math/powf_lut|inlined.0 end - local.get $21 + local.get $31 f64.const -150 f64.le if local.get $4 - local.set $11 - local.get $11 - local.set $12 + local.set $35 + local.get $35 + local.set $37 i32.const 268435456 f32.reinterpret_i32 - local.set $9 - local.get $9 + local.set $36 + local.get $36 f32.neg - local.get $9 - local.get $12 + local.get $36 + local.get $37 select - local.get $9 + local.get $36 f32.mul br $~lib/util/math/powf_lut|inlined.0 end end - local.get $21 - local.set $15 + local.get $31 + local.set $39 local.get $4 - local.set $13 - local.get $15 + local.set $38 + local.get $39 f64.const 211106232532992 f64.add - local.set $20 - local.get $20 + local.set $40 + local.get $40 i64.reinterpret_f64 - local.set $23 - local.get $15 - local.get $20 + local.set $41 + local.get $39 + local.get $40 f64.const 211106232532992 f64.sub f64.sub - local.set $19 + local.set $42 i32.const 6408 - local.get $23 + local.get $41 i32.wrap_i64 i32.const 31 i32.and @@ -1815,10 +1877,10 @@ i32.shl i32.add i64.load - local.set $24 - local.get $24 - local.get $23 - local.get $13 + local.set $43 + local.get $43 + local.get $41 + local.get $38 i64.extend_i32_u i64.add i64.const 52 @@ -1826,35 +1888,35 @@ i64.sub i64.shl i64.add - local.set $24 - local.get $24 + local.set $43 + local.get $43 f64.reinterpret_i64 - local.set $16 + local.set $46 f64.const 0.05550361559341535 - local.get $19 + local.get $42 f64.mul f64.const 0.2402284522445722 f64.add - local.set $18 + local.set $44 f64.const 0.6931471806916203 - local.get $19 + local.get $42 f64.mul f64.const 1 f64.add - local.set $17 - local.get $17 - local.get $18 - local.get $19 - local.get $19 + local.set $45 + local.get $45 + local.get $44 + local.get $42 + local.get $42 f64.mul f64.mul f64.add - local.set $17 - local.get $17 - local.get $16 + local.set $45 + local.get $45 + local.get $46 f64.mul - local.set $17 - local.get $17 + local.set $45 + local.get $45 f32.demote_f64 end return diff --git a/tests/compiler/builtins.untouched.wat b/tests/compiler/builtins.untouched.wat index 12af226ef1..e571f16de7 100644 --- a/tests/compiler/builtins.untouched.wat +++ b/tests/compiler/builtins.untouched.wat @@ -117,6 +117,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -188,33 +191,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $10 + local.get $12 return end local.get $5 @@ -229,16 +232,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -270,44 +276,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $6 ) (func $start:builtins~anonymous|0 nop @@ -318,13 +324,53 @@ (func $start:builtins (local $0 i32) (local $1 i32) - (local $2 i64) - (local $3 i64) - (local $4 f32) - (local $5 f64) + (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 i64) + (local $14 i64) + (local $15 i64) + (local $16 i64) + (local $17 i64) + (local $18 i64) + (local $19 i64) + (local $20 f32) + (local $21 f32) + (local $22 f32) + (local $23 f32) + (local $24 f32) + (local $25 f32) + (local $26 f32) + (local $27 f32) + (local $28 f64) + (local $29 f64) + (local $30 f64) + (local $31 f64) + (local $32 f64) + (local $33 f64) + (local $34 f64) + (local $35 f64) + (local $36 f32) + (local $37 f64) + (local $38 f32) + (local $39 f32) + (local $40 f64) + (local $41 f64) + (local $42 f32) + (local $43 f64) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) i32.const 1 drop i32.const 0 @@ -445,20 +491,20 @@ i32.xor drop i32.const 1 - local.tee $0 + local.tee $2 i32.const 2 - local.tee $1 - local.get $0 - local.get $1 + local.tee $3 + local.get $2 + local.get $3 i32.gt_s select drop i32.const 1 - local.tee $0 + local.tee $4 i32.const 2 - local.tee $1 - local.get $0 - local.get $1 + local.tee $5 + local.get $4 + local.get $5 i32.lt_s select drop @@ -480,13 +526,13 @@ i32.rotr global.set $builtins/i i32.const -42 - local.tee $0 + local.tee $6 i32.const 31 i32.shr_s - local.tee $1 - local.get $0 + local.tee $7 + local.get $6 i32.add - local.get $1 + local.get $7 i32.xor global.set $builtins/i global.get $builtins/i @@ -502,11 +548,11 @@ unreachable end i32.const 1 - local.tee $0 + local.tee $8 i32.const 2 - local.tee $1 - local.get $0 - local.get $1 + local.tee $9 + local.get $8 + local.get $9 i32.gt_s select global.set $builtins/i @@ -523,11 +569,11 @@ unreachable end i32.const 1 - local.tee $0 + local.tee $10 i32.const 2 - local.tee $1 - local.get $0 - local.get $1 + local.tee $11 + local.get $10 + local.get $11 i32.lt_s select global.set $builtins/i @@ -561,13 +607,13 @@ i64.rotr drop i64.const -42 - local.tee $2 + local.tee $12 i64.const 63 i64.shr_s - local.tee $3 - local.get $2 + local.tee $13 + local.get $12 i64.add - local.get $3 + local.get $13 i64.xor drop i64.const 1 @@ -588,13 +634,13 @@ i64.rotr global.set $builtins/I i64.const -42 - local.tee $2 + local.tee $14 i64.const 63 i64.shr_s - local.tee $3 - local.get $2 + local.tee $15 + local.get $14 i64.add - local.get $3 + local.get $15 i64.xor global.set $builtins/I global.get $builtins/I @@ -610,11 +656,11 @@ unreachable end i64.const 1 - local.tee $2 + local.tee $16 i64.const 2 - local.tee $3 - local.get $2 - local.get $3 + local.tee $17 + local.get $16 + local.get $17 i64.gt_s select global.set $builtins/I @@ -631,11 +677,11 @@ unreachable end i64.const 1 - local.tee $2 + local.tee $18 i64.const 2 - local.tee $3 - local.get $2 - local.get $3 + local.tee $19 + local.get $18 + local.get $19 i64.lt_s select global.set $builtins/I @@ -686,22 +732,22 @@ f32.trunc drop f32.const 1.25 - local.tee $4 - local.get $4 + local.tee $20 + local.get $20 f32.ne i32.const 0 i32.eq drop f32.const nan:0x400000 - local.tee $4 - local.get $4 + local.tee $21 + local.get $21 f32.ne i32.const 1 i32.eq drop f32.const 1.25 - local.tee $4 - local.get $4 + local.tee $22 + local.get $22 f32.sub f32.const 0 f32.eq @@ -709,8 +755,8 @@ i32.eq drop f32.const inf - local.tee $4 - local.get $4 + local.tee $23 + local.get $23 f32.sub f32.const 0 f32.eq @@ -719,8 +765,8 @@ drop f32.const inf f32.neg - local.tee $4 - local.get $4 + local.tee $24 + local.get $24 f32.sub f32.const 0 f32.eq @@ -728,8 +774,8 @@ i32.eq drop f32.const nan:0x400000 - local.tee $4 - local.get $4 + local.tee $25 + local.get $25 f32.sub f32.const 0 f32.eq @@ -771,13 +817,13 @@ f32.trunc global.set $builtins/f f32.const 1.25 - local.tee $4 - local.get $4 + local.tee $26 + local.get $26 f32.ne global.set $builtins/b f32.const 1.25 - local.tee $4 - local.get $4 + local.tee $27 + local.get $27 f32.sub f32.const 0 f32.eq @@ -821,22 +867,22 @@ f64.trunc drop f64.const 1.25 - local.tee $5 - local.get $5 + local.tee $28 + local.get $28 f64.ne i32.const 0 i32.eq drop f64.const nan:0x8000000000000 - local.tee $5 - local.get $5 + local.tee $29 + local.get $29 f64.ne i32.const 1 i32.eq drop f64.const 1.25 - local.tee $5 - local.get $5 + local.tee $30 + local.get $30 f64.sub f64.const 0 f64.eq @@ -844,8 +890,8 @@ i32.eq drop f64.const inf - local.tee $5 - local.get $5 + local.tee $31 + local.get $31 f64.sub f64.const 0 f64.eq @@ -854,8 +900,8 @@ drop f64.const inf f64.neg - local.tee $5 - local.get $5 + local.tee $32 + local.get $32 f64.sub f64.const 0 f64.eq @@ -863,8 +909,8 @@ i32.eq drop f64.const nan:0x8000000000000 - local.tee $5 - local.get $5 + local.tee $33 + local.get $33 f64.sub f64.const 0 f64.eq @@ -906,13 +952,13 @@ f64.trunc global.set $builtins/F f64.const 1.25 - local.tee $5 - local.get $5 + local.tee $34 + local.get $34 f64.ne global.set $builtins/b f64.const 1.25 - local.tee $5 - local.get $5 + local.tee $35 + local.get $35 f64.sub f64.const 0 f64.eq @@ -1266,57 +1312,57 @@ f64.ne drop f32.const nan:0x400000 - local.tee $4 - local.get $4 + local.tee $36 + local.get $36 f32.ne drop f64.const nan:0x8000000000000 - local.tee $5 - local.get $5 + local.tee $37 + local.get $37 f64.ne drop f32.const nan:0x400000 - local.tee $4 - local.get $4 + local.tee $38 + local.get $38 f32.sub f32.const 0 f32.eq i32.eqz drop f32.const inf - local.tee $4 - local.get $4 + local.tee $39 + local.get $39 f32.sub f32.const 0 f32.eq i32.eqz drop f64.const nan:0x8000000000000 - local.tee $5 - local.get $5 + local.tee $40 + local.get $40 f64.sub f64.const 0 f64.eq i32.eqz drop f64.const inf - local.tee $5 - local.get $5 + local.tee $41 + local.get $41 f64.sub f64.const 0 f64.eq i32.eqz drop f32.const 0 - local.tee $4 - local.get $4 + local.tee $42 + local.get $42 f32.sub f32.const 0 f32.eq drop f64.const 0 - local.tee $5 - local.get $5 + local.tee $43 + local.get $43 f64.sub f64.const 0 f64.eq @@ -1724,30 +1770,30 @@ unreachable end i32.const 0 - local.set $0 + local.set $44 i32.const 0 - local.set $1 + local.set $45 i32.const 29 - local.set $6 + local.set $46 i32.const 30 - local.set $7 + local.set $47 i32.const 30 - local.set $8 + local.set $48 i32.const 128 i32.const 5 - local.get $0 + local.get $44 f64.convert_i32_u - local.get $1 + local.get $45 f64.convert_i32_u - local.get $6 + local.get $46 f64.convert_i32_u - local.get $7 + local.get $47 f64.convert_i32_u - local.get $8 + local.get $48 f64.convert_i32_u call $~lib/builtins/trace - local.get $0 - local.get $1 + local.get $44 + local.get $45 i32.eq i32.eqz if @@ -1758,8 +1804,8 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $6 + local.get $44 + local.get $46 i32.ne i32.eqz if @@ -1770,7 +1816,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $46 i32.const 29 i32.eq i32.eqz @@ -1782,8 +1828,8 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $8 + local.get $47 + local.get $48 i32.eq i32.eqz if diff --git a/tests/compiler/call-super.untouched.wat b/tests/compiler/call-super.untouched.wat index ebf78de487..2c94e1a950 100644 --- a/tests/compiler/call-super.untouched.wat +++ b/tests/compiler/call-super.untouched.wat @@ -19,6 +19,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -49,8 +50,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s diff --git a/tests/compiler/class-overloading.untouched.wat b/tests/compiler/class-overloading.untouched.wat index ff606fff0b..8a5698503f 100644 --- a/tests/compiler/class-overloading.untouched.wat +++ b/tests/compiler/class-overloading.untouched.wat @@ -35,6 +35,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -65,8 +66,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -195,6 +196,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -266,33 +270,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $10 + local.get $12 return end local.get $5 @@ -307,16 +311,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -348,44 +355,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $6 ) (func $class-overloading/A#b (param $0 i32) (param $1 i32) (local $2 i32) @@ -565,6 +572,26 @@ ) (func $start:class-overloading (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) global.get $~lib/heap/__heap_base i32.const 15 i32.add @@ -615,10 +642,10 @@ unreachable end i32.const 32 - local.set $0 + local.set $1 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $1 global.set $class-overloading/which global.get $class-overloading/a call $class-overloading/A#get:c@virtual @@ -636,10 +663,10 @@ unreachable end i32.const 32 - local.set $0 + local.set $2 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $2 global.set $class-overloading/which global.get $class-overloading/a i32.const 1 @@ -660,10 +687,10 @@ call $class-overloading/C#constructor global.set $class-overloading/c i32.const 32 - local.set $0 + local.set $3 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $3 global.set $class-overloading/which global.get $class-overloading/c i32.const 1 @@ -681,10 +708,10 @@ unreachable end i32.const 32 - local.set $0 + local.set $4 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $4 global.set $class-overloading/which global.get $class-overloading/c i32.const 1 @@ -702,10 +729,10 @@ unreachable end i32.const 32 - local.set $0 + local.set $5 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $5 global.set $class-overloading/which global.get $class-overloading/c call $class-overloading/C#get:c @@ -739,16 +766,16 @@ end i32.const 0 call $class-overloading/D#constructor - local.set $0 + local.set $6 global.get $class-overloading/a call $~lib/rt/stub/__release - local.get $0 + local.get $6 global.set $class-overloading/a i32.const 32 - local.set $0 + local.set $7 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $7 global.set $class-overloading/which global.get $class-overloading/a i32.const 1 @@ -766,10 +793,10 @@ unreachable end i32.const 32 - local.set $0 + local.set $8 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $8 global.set $class-overloading/which global.get $class-overloading/a i32.const 1 @@ -787,10 +814,10 @@ unreachable end i32.const 32 - local.set $0 + local.set $9 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $9 global.set $class-overloading/which global.get $class-overloading/a call $class-overloading/A#get:c@virtual @@ -824,16 +851,16 @@ end i32.const 0 call $class-overloading/E#constructor - local.set $0 + local.set $10 global.get $class-overloading/a call $~lib/rt/stub/__release - local.get $0 + local.get $10 global.set $class-overloading/a i32.const 32 - local.set $0 + local.set $11 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $11 global.set $class-overloading/which global.get $class-overloading/a i32.const 1 @@ -851,10 +878,10 @@ unreachable end i32.const 32 - local.set $0 + local.set $12 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $12 global.set $class-overloading/which global.get $class-overloading/a i32.const 1 @@ -872,10 +899,10 @@ unreachable end i32.const 32 - local.set $0 + local.set $13 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $13 global.set $class-overloading/which global.get $class-overloading/a call $class-overloading/A#get:c@virtual @@ -909,16 +936,16 @@ end i32.const 0 call $class-overloading/F#constructor - local.set $0 + local.set $14 global.get $class-overloading/a call $~lib/rt/stub/__release - local.get $0 + local.get $14 global.set $class-overloading/a i32.const 32 - local.set $0 + local.set $15 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $15 global.set $class-overloading/which global.get $class-overloading/a i32.const 1 @@ -936,10 +963,10 @@ unreachable end i32.const 32 - local.set $0 + local.set $16 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $16 global.set $class-overloading/which global.get $class-overloading/a i32.const 1 @@ -957,10 +984,10 @@ unreachable end i32.const 32 - local.set $0 + local.set $17 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $17 global.set $class-overloading/which global.get $class-overloading/a call $class-overloading/A#get:c@virtual @@ -978,10 +1005,10 @@ unreachable end i32.const 32 - local.set $0 + local.set $18 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $18 global.set $class-overloading/which global.get $class-overloading/a i32.const 1 @@ -1002,10 +1029,10 @@ call $class-overloading/CA#constructor global.set $class-overloading/ia i32.const 32 - local.set $0 + local.set $19 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $19 global.set $class-overloading/which global.get $class-overloading/ia call $class-overloading/IA#foo@virtual @@ -1025,10 +1052,10 @@ call $class-overloading/CC#constructor global.set $class-overloading/ic i32.const 32 - local.set $0 + local.set $20 global.get $class-overloading/which call $~lib/rt/stub/__release - local.get $0 + local.get $20 global.set $class-overloading/which global.get $class-overloading/ic call $class-overloading/IA#foo@virtual diff --git a/tests/compiler/class.untouched.wat b/tests/compiler/class.untouched.wat index 4a3d988ec1..6a6414c936 100644 --- a/tests/compiler/class.untouched.wat +++ b/tests/compiler/class.untouched.wat @@ -134,6 +134,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -164,8 +165,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s diff --git a/tests/compiler/comma.untouched.wat b/tests/compiler/comma.untouched.wat index 0e4b88da07..492d5695ab 100644 --- a/tests/compiler/comma.untouched.wat +++ b/tests/compiler/comma.untouched.wat @@ -12,6 +12,7 @@ (func $start:comma (local $0 i32) (local $1 i32) + (local $2 i32) global.get $comma/a local.tee $0 i32.const 1 @@ -147,8 +148,8 @@ local.get $1 global.get $comma/a i32.lt_s - local.set $0 - local.get $0 + local.set $2 + local.get $2 if nop global.get $comma/a diff --git a/tests/compiler/constructor.untouched.wat b/tests/compiler/constructor.untouched.wat index a733d1484f..078e4dc3c9 100644 --- a/tests/compiler/constructor.untouched.wat +++ b/tests/compiler/constructor.untouched.wat @@ -27,6 +27,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -57,8 +58,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s diff --git a/tests/compiler/do.untouched.wat b/tests/compiler/do.untouched.wat index 418a287303..949e845354 100644 --- a/tests/compiler/do.untouched.wat +++ b/tests/compiler/do.untouched.wat @@ -80,6 +80,7 @@ (func $do/testEmpty (local $0 i32) (local $1 i32) + (local $2 i32) i32.const 10 local.set $0 loop $do-continue|0 @@ -90,8 +91,8 @@ i32.sub local.set $0 local.get $1 - local.set $1 - local.get $1 + local.set $2 + local.get $2 br_if $do-continue|0 end local.get $0 @@ -114,6 +115,7 @@ (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) i32.const 10 local.set $0 i32.const 0 @@ -168,8 +170,8 @@ unreachable end local.get $0 - local.set $3 - local.get $3 + local.set $4 + local.get $4 br_if $do-continue|0 end local.get $0 @@ -451,6 +453,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -587,59 +598,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -669,6 +680,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -731,8 +756,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -743,16 +768,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -770,18 +795,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -793,7 +818,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -806,23 +831,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -836,14 +861,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -863,7 +888,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -881,24 +906,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -906,21 +931,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -936,86 +961,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -1026,6 +1051,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -1165,11 +1191,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -1189,6 +1215,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -1245,66 +1277,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -1317,11 +1349,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -1370,6 +1402,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1443,11 +1483,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1458,10 +1498,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1474,30 +1514,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1508,45 +1548,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1555,6 +1595,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1601,15 +1642,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1623,12 +1664,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1638,6 +1679,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1702,11 +1745,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1714,11 +1757,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -1961,6 +2004,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) i32.const 0 local.set $0 i32.const 0 @@ -1991,15 +2036,15 @@ else i32.const 0 call $do/Ref#constructor - local.set $3 + local.set $4 local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $4 local.set $1 end local.get $1 - local.set $3 - local.get $3 + local.set $5 + local.get $5 br_if $do-continue|0 end local.get $0 @@ -2039,6 +2084,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) i32.const 0 local.set $0 i32.const 0 @@ -2070,11 +2117,11 @@ br $do-break|0 end call $do/getRef - local.tee $2 - local.set $3 - local.get $2 + local.tee $4 + local.set $5 + local.get $4 call $~lib/rt/pure/__release - local.get $3 + local.get $5 br_if $do-continue|0 end end diff --git a/tests/compiler/exports.untouched.wat b/tests/compiler/exports.untouched.wat index 693bf3d61d..427005b62b 100644 --- a/tests/compiler/exports.untouched.wat +++ b/tests/compiler/exports.untouched.wat @@ -73,6 +73,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -103,8 +104,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index e0b0674624..284196a364 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -1811,25 +1811,25 @@ global.get $~lib/rt/pure/ROOTS local.tee $0 local.tee $4 - local.set $3 - global.get $~lib/rt/pure/CUR local.set $1 + global.get $~lib/rt/pure/CUR + local.set $2 loop $for-loop|0 - local.get $3 local.get $1 + local.get $2 i32.lt_u if - local.get $3 + local.get $1 i32.load - local.tee $2 - i32.load offset=4 local.tee $5 + i32.load offset=4 + local.tee $3 i32.const 1879048192 i32.and i32.const 805306368 i32.eq if (result i32) - local.get $5 + local.get $3 i32.const 268435455 i32.and i32.const 0 @@ -1838,10 +1838,10 @@ i32.const 0 end if - local.get $2 + local.get $5 call $~lib/rt/pure/markGray local.get $4 - local.get $2 + local.get $5 i32.store local.get $4 i32.const 4 @@ -1849,30 +1849,30 @@ local.set $4 else i32.const 0 - local.get $5 + local.get $3 i32.const 268435455 i32.and i32.eqz - local.get $5 + local.get $3 i32.const 1879048192 i32.and select if global.get $~lib/rt/tlsf/ROOT - local.get $2 + local.get $5 call $~lib/rt/tlsf/freeBlock else - local.get $2 local.get $5 + local.get $3 i32.const 2147483647 i32.and i32.store offset=4 end end - local.get $3 + local.get $1 i32.const 4 i32.add - local.set $3 + local.set $1 br $for-loop|0 end end diff --git a/tests/compiler/extends-baseaggregate.untouched.wat b/tests/compiler/extends-baseaggregate.untouched.wat index fd84213021..f0330f3e9c 100644 --- a/tests/compiler/extends-baseaggregate.untouched.wat +++ b/tests/compiler/extends-baseaggregate.untouched.wat @@ -48,6 +48,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -184,59 +193,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -266,6 +275,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -328,8 +351,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -340,16 +363,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -367,18 +390,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -390,7 +413,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -403,23 +426,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -433,14 +456,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -460,7 +483,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -478,24 +501,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -503,21 +526,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -533,86 +556,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -623,6 +646,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -762,11 +786,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -786,6 +810,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -842,66 +872,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -914,11 +944,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -967,6 +997,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1040,11 +1078,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1055,10 +1093,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1071,30 +1109,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1105,45 +1143,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1152,6 +1190,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1198,15 +1237,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1220,12 +1259,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1235,6 +1274,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1299,11 +1340,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1311,11 +1352,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -1615,6 +1656,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -1634,11 +1757,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -1658,8 +1781,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -1768,17 +1891,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -1795,16 +1918,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -1814,45 +1937,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -1863,8 +1986,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -1949,31 +2072,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -1984,8 +2107,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -2070,17 +2193,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -2091,8 +2214,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -2179,227 +2302,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -2408,115 +2531,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -2525,59 +2648,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -2586,31 +2709,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -2619,17 +2742,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -2640,6 +2763,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -2717,11 +2848,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -2731,8 +2862,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -2756,21 +2887,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -2799,8 +2930,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -2825,8 +2956,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -2846,8 +2977,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -2889,6 +3020,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) local.get $2 call $~lib/rt/tlsf/prepareSize local.set $3 @@ -2946,8 +3078,8 @@ i32.xor i32.and i32.add - local.set $5 - local.get $5 + local.set $8 + local.get $8 local.get $3 i32.ge_u if @@ -2958,7 +3090,7 @@ local.get $4 i32.const 3 i32.and - local.get $5 + local.get $8 i32.or i32.store local.get $1 @@ -2977,12 +3109,12 @@ local.get $1 i32.load offset=8 call $~lib/rt/tlsf/allocateBlock - local.set $8 - local.get $8 + local.set $9 + local.get $9 local.get $1 i32.load offset=4 i32.store offset=4 - local.get $8 + local.get $9 i32.const 16 i32.add local.get $1 @@ -3000,7 +3132,7 @@ local.get $1 call $~lib/rt/tlsf/freeBlock end - local.get $8 + local.get $9 ) (func $~lib/rt/tlsf/__realloc (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize @@ -3338,13 +3470,16 @@ (func $start:extends-baseaggregate (local $0 i32) (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) global.get $extends-baseaggregate/poolA i32.const 0 call $extends-baseaggregate/A2#constructor - local.tee $0 + local.tee $4 call $~lib/array/Array#push drop - local.get $0 + local.get $4 call $~lib/rt/pure/__release ) (func $~start @@ -3477,6 +3612,11 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) i32.const 0 drop global.get $~lib/rt/pure/ROOTS @@ -3562,50 +3702,50 @@ local.get $1 global.set $~lib/rt/pure/CUR local.get $0 - local.set $3 + local.set $7 loop $for-loop|1 - local.get $3 + local.get $7 local.get $1 i32.lt_u - local.set $2 - local.get $2 + local.set $8 + local.get $8 if - local.get $3 + local.get $7 i32.load call $~lib/rt/pure/scan - local.get $3 + local.get $7 i32.const 4 i32.add - local.set $3 + local.set $7 br $for-loop|1 end end local.get $0 - local.set $3 + local.set $9 loop $for-loop|2 - local.get $3 + local.get $9 local.get $1 i32.lt_u - local.set $2 - local.get $2 + local.set $10 + local.get $10 if - local.get $3 + local.get $9 i32.load - local.set $4 - local.get $4 - local.get $4 + local.set $11 + local.get $11 + local.get $11 i32.load offset=4 i32.const -2147483648 i32.const -1 i32.xor i32.and i32.store offset=4 - local.get $4 + local.get $11 call $~lib/rt/pure/collectWhite - local.get $3 + local.get $9 i32.const 4 i32.add - local.set $3 + local.set $9 br $for-loop|2 end end @@ -3832,6 +3972,7 @@ (func $~lib/rt/pure/__visit (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) local.get $0 global.get $~lib/heap/__heap_base i32.lt_u @@ -3912,13 +4053,13 @@ end local.get $2 i32.load offset=4 - local.set $3 - local.get $3 + local.set $4 + local.get $4 i32.const 268435455 i32.const -1 i32.xor i32.and - local.get $3 + local.get $4 i32.const 1 i32.add i32.const 268435455 @@ -3936,11 +4077,11 @@ unreachable end local.get $2 - local.get $3 + local.get $4 i32.const 1 i32.add i32.store offset=4 - local.get $3 + local.get $4 i32.const 1879048192 i32.and i32.const 0 diff --git a/tests/compiler/extends-recursive.untouched.wat b/tests/compiler/extends-recursive.untouched.wat index 06d2040bd3..7b6875e39b 100644 --- a/tests/compiler/extends-recursive.untouched.wat +++ b/tests/compiler/extends-recursive.untouched.wat @@ -21,6 +21,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -51,8 +52,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s diff --git a/tests/compiler/features/reference-types.untouched.wat b/tests/compiler/features/reference-types.untouched.wat index 34afe5fdff..ed44066bd5 100644 --- a/tests/compiler/features/reference-types.untouched.wat +++ b/tests/compiler/features/reference-types.untouched.wat @@ -28,6 +28,7 @@ (func $start:features/reference-types (local $0 anyref) (local $1 anyref) + (local $2 anyref) global.get $features/reference-types/someObject global.get $features/reference-types/someKey call $~lib/bindings/Reflect/has @@ -139,7 +140,7 @@ ref.func $features/reference-types/someFunc global.set $features/reference-types/funcGlobal ref.func $features/reference-types/someFunc - local.set $1 + local.set $2 ) (func $features/reference-types/internal (param $0 anyref) (result anyref) (local $1 anyref) diff --git a/tests/compiler/features/simd.untouched.wat b/tests/compiler/features/simd.untouched.wat index acc103cd20..d71c1cc6c0 100644 --- a/tests/compiler/features/simd.untouched.wat +++ b/tests/compiler/features/simd.untouched.wat @@ -25,6 +25,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -55,8 +56,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s diff --git a/tests/compiler/for.untouched.wat b/tests/compiler/for.untouched.wat index 78c447d516..ee2d213294 100644 --- a/tests/compiler/for.untouched.wat +++ b/tests/compiler/for.untouched.wat @@ -464,6 +464,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -600,59 +609,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -682,6 +691,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -744,8 +767,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -756,16 +779,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -783,18 +806,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -806,7 +829,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -819,23 +842,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -849,14 +872,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -876,7 +899,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -894,24 +917,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -919,21 +942,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -949,86 +972,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -1039,6 +1062,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -1178,11 +1202,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -1202,6 +1226,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -1258,66 +1288,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -1330,11 +1360,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -1383,6 +1413,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1456,11 +1494,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1471,10 +1509,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1487,30 +1525,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1521,45 +1559,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1568,6 +1606,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1614,15 +1653,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1636,12 +1675,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1651,6 +1690,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1715,11 +1756,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1727,11 +1768,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -1975,6 +2016,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) i32.const 0 local.set $0 i32.const 0 @@ -2009,10 +2051,10 @@ else i32.const 0 call $for/Ref#constructor - local.set $4 + local.set $5 local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $5 local.set $1 end br $for-loop|0 @@ -2056,6 +2098,9 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) i32.const 0 local.set $0 i32.const 0 @@ -2070,11 +2115,11 @@ block $for-break0 loop $for-loop|0 call $for/getRef - local.tee $2 - local.set $3 - local.get $2 - call $~lib/rt/pure/__release + local.tee $3 + local.set $4 local.get $3 + call $~lib/rt/pure/__release + local.get $4 if local.get $0 i32.const 1 @@ -2084,26 +2129,26 @@ i32.eq if i32.const 0 - local.tee $2 + local.tee $5 local.get $1 - local.tee $4 + local.tee $6 i32.ne if - local.get $2 + local.get $5 call $~lib/rt/pure/__retain - local.set $2 - local.get $4 + local.set $5 + local.get $6 call $~lib/rt/pure/__release end - local.get $2 + local.get $5 local.set $1 br $for-break0 end call $for/getRef - local.set $4 + local.set $7 local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $7 local.set $1 br $for-loop|0 end diff --git a/tests/compiler/getter-call.untouched.wat b/tests/compiler/getter-call.untouched.wat index db459a3102..60d3b2543e 100644 --- a/tests/compiler/getter-call.untouched.wat +++ b/tests/compiler/getter-call.untouched.wat @@ -21,6 +21,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -51,8 +52,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s diff --git a/tests/compiler/implicit-getter-setter.untouched.wat b/tests/compiler/implicit-getter-setter.untouched.wat index e046c665dc..1b108ce4bc 100644 --- a/tests/compiler/implicit-getter-setter.untouched.wat +++ b/tests/compiler/implicit-getter-setter.untouched.wat @@ -52,6 +52,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -188,59 +197,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -270,6 +279,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -332,8 +355,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -344,16 +367,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -371,18 +394,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -394,7 +417,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -407,23 +430,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -437,14 +460,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -464,7 +487,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -482,24 +505,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -507,21 +530,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -537,86 +560,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -627,6 +650,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -766,11 +790,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -790,6 +814,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -846,66 +876,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -918,11 +948,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -971,6 +1001,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1044,11 +1082,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1059,10 +1097,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1075,30 +1113,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1109,45 +1147,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1156,6 +1194,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1202,15 +1241,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1224,12 +1263,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1239,6 +1278,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1303,11 +1344,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1315,11 +1356,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 diff --git a/tests/compiler/infer-array.untouched.wat b/tests/compiler/infer-array.untouched.wat index f2381fc6ae..e817c8e977 100644 --- a/tests/compiler/infer-array.untouched.wat +++ b/tests/compiler/infer-array.untouched.wat @@ -41,6 +41,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -71,8 +72,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -149,6 +150,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -168,11 +251,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -192,8 +275,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -302,17 +385,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -329,16 +412,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -348,45 +431,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -397,8 +480,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -483,31 +566,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -518,8 +601,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -604,17 +687,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -625,8 +708,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -713,227 +796,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -942,115 +1025,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -1059,59 +1142,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -1120,31 +1203,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -1153,17 +1236,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -1174,6 +1257,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -1251,11 +1342,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -1265,8 +1356,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -1290,21 +1381,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -1333,8 +1424,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -1359,8 +1450,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -1380,8 +1471,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -1740,9 +1831,61 @@ (func $start:infer-array (local $0 i32) (local $1 i32) - (local $2 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) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 f32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) global.get $~lib/heap/__heap_base i32.const 15 i32.add @@ -1759,12 +1902,12 @@ i32.const 32 call $~lib/rt/__allocArray call $~lib/rt/stub/__retain - local.set $1 + local.set $2 i32.const 1 drop i32.const 1 drop - local.get $1 + local.get $2 call $~lib/rt/stub/__release i32.const 3 i32.const 3 @@ -1772,10 +1915,10 @@ i32.const 176 call $~lib/rt/__allocArray call $~lib/rt/stub/__retain - local.set $0 + local.set $5 i32.const 1 drop - local.get $0 + local.get $5 call $~lib/rt/stub/__release i32.const 2 i32.const 2 @@ -1783,13 +1926,13 @@ i32.const 224 call $~lib/rt/__allocArray call $~lib/rt/stub/__retain - local.set $1 + local.set $8 i32.const 1 drop i32.const 0 i32.eqz drop - local.get $1 + local.get $8 i32.const 1 call $~lib/array/Array#__get i32.const -1 @@ -1803,7 +1946,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $8 call $~lib/rt/stub/__release i32.const 3 i32.const 3 @@ -1811,10 +1954,10 @@ i32.const 304 call $~lib/rt/__allocArray call $~lib/rt/stub/__retain - local.set $0 + local.set $11 i32.const 1 drop - local.get $0 + local.get $11 call $~lib/rt/stub/__release i32.const 3 i32.const 2 @@ -1822,117 +1965,117 @@ i32.const 352 call $~lib/rt/__allocArray call $~lib/rt/stub/__retain - local.set $1 + local.set $14 i32.const 1 drop - local.get $1 + local.get $14 i32.const 1 call $~lib/array/Array#__get - local.set $2 - local.get $1 + local.set $15 + local.get $14 call $~lib/rt/stub/__release i32.const 0 call $infer-array/Ref#constructor - local.set $1 + local.set $16 i32.const 0 call $infer-array/Ref#constructor - local.set $0 + local.set $17 i32.const 2 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/stub/__retain - local.set $3 - local.get $3 + local.set $18 + local.get $18 i32.load offset=4 - local.set $4 - local.get $4 - local.get $1 + local.set $19 + local.get $19 + local.get $16 call $~lib/rt/stub/__retain i32.store - local.get $4 - local.get $0 + local.get $19 + local.get $17 call $~lib/rt/stub/__retain i32.store offset=4 - local.get $3 - local.set $4 + local.get $18 + local.set $20 i32.const 1 drop - local.get $1 + local.get $16 call $~lib/rt/stub/__release - local.get $0 + local.get $17 call $~lib/rt/stub/__release - local.get $4 + local.get $20 call $~lib/rt/stub/__release - local.get $3 + local.get $21 call $~lib/rt/stub/__release i32.const 0 call $infer-array/Ref#constructor - local.set $3 + local.set $22 i32.const 0 call $infer-array/Ref#constructor - local.set $4 + local.set $23 i32.const 2 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/stub/__retain - local.set $0 - local.get $0 + local.set $24 + local.get $24 i32.load offset=4 - local.set $1 - local.get $1 - local.get $3 + local.set $25 + local.get $25 + local.get $22 call $~lib/rt/stub/__retain i32.store - local.get $1 - local.get $4 + local.get $25 + local.get $23 call $~lib/rt/stub/__retain i32.store offset=4 - local.get $0 - local.set $1 + local.get $24 + local.set $26 i32.const 1 drop - local.get $3 + local.get $22 call $~lib/rt/stub/__release - local.get $4 + local.get $23 call $~lib/rt/stub/__release - local.get $1 + local.get $26 call $~lib/rt/stub/__release - local.get $0 + local.get $27 call $~lib/rt/stub/__release i32.const 0 call $infer-array/Ref#constructor - local.set $0 + local.set $28 i32.const 2 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/stub/__retain - local.set $1 - local.get $1 + local.set $29 + local.get $29 i32.load offset=4 - local.set $4 - local.get $4 - local.get $0 + local.set $30 + local.get $30 + local.get $28 call $~lib/rt/stub/__retain i32.store - local.get $4 + local.get $30 i32.const 0 call $~lib/rt/stub/__retain i32.store offset=4 - local.get $1 - local.set $4 + local.get $29 + local.set $31 i32.const 1 drop - local.get $0 + local.get $28 call $~lib/rt/stub/__release - local.get $4 + local.get $31 call $~lib/rt/stub/__release - local.get $1 + local.get $32 call $~lib/rt/stub/__release i32.const 2 i32.const 2 @@ -1940,12 +2083,12 @@ i32.const 416 call $~lib/rt/__allocArray call $~lib/rt/stub/__retain - local.set $4 + local.set $35 i32.const 1 drop - local.get $4 + local.get $35 call $~lib/rt/stub/__release - local.get $1 + local.get $36 call $~lib/rt/stub/__release i32.const 1 i32.const 2 @@ -1953,7 +2096,7 @@ i32.const 448 call $~lib/rt/__allocArray call $~lib/rt/stub/__retain - local.set $4 + local.set $39 i32.const 1 drop i32.const 0 @@ -1965,15 +2108,15 @@ i32.const 480 call $~lib/rt/__allocArray call $~lib/rt/stub/__retain - local.set $0 + local.set $42 i32.const 1 drop i32.const 0 i32.eqz drop - local.get $4 + local.get $39 call $~lib/rt/stub/__release - local.get $0 + local.get $42 call $~lib/rt/stub/__release i32.const 2 i32.const 2 @@ -1981,7 +2124,7 @@ i32.const 512 call $~lib/rt/__allocArray call $~lib/rt/stub/__retain - local.set $4 + local.set $45 i32.const 1 drop i32.const 0 @@ -1993,15 +2136,15 @@ i32.const 544 call $~lib/rt/__allocArray call $~lib/rt/stub/__retain - local.set $1 + local.set $48 i32.const 1 drop i32.const 0 i32.eqz drop - local.get $4 + local.get $45 call $~lib/rt/stub/__release - local.get $1 + local.get $48 call $~lib/rt/stub/__release i32.const 2 i32.const 2 @@ -2009,11 +2152,11 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/stub/__retain - local.set $1 - local.get $1 + local.set $49 + local.get $49 i32.load offset=4 - local.set $4 - local.get $4 + local.set $50 + local.get $50 i32.const 1 i32.const 2 i32.const 3 @@ -2021,7 +2164,7 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain i32.store - local.get $4 + local.get $50 i32.const 1 i32.const 2 i32.const 3 @@ -2029,16 +2172,16 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain i32.store offset=4 - local.get $1 - local.set $4 + local.get $49 + local.set $55 i32.const 1 drop i32.const 0 i32.eqz drop - local.get $4 + local.get $55 call $~lib/rt/stub/__release - local.get $1 + local.get $56 call $~lib/rt/stub/__release ) (func $~start diff --git a/tests/compiler/infer-generic.untouched.wat b/tests/compiler/infer-generic.untouched.wat index bcd554ce9b..0d3986f925 100644 --- a/tests/compiler/infer-generic.untouched.wat +++ b/tests/compiler/infer-generic.untouched.wat @@ -62,6 +62,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) local.get $2 local.set $3 i32.const 0 @@ -81,8 +82,8 @@ i32.lt_s select i32.lt_s - local.set $6 - local.get $6 + local.set $8 + local.get $8 if local.get $3 local.get $0 diff --git a/tests/compiler/inlining-blocklocals.untouched.wat b/tests/compiler/inlining-blocklocals.untouched.wat index 7431ad7d83..58d22f7716 100644 --- a/tests/compiler/inlining-blocklocals.untouched.wat +++ b/tests/compiler/inlining-blocklocals.untouched.wat @@ -16,6 +16,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) i32.const 1 local.set $0 local.get $0 @@ -24,24 +26,24 @@ i32.add local.set $0 local.get $1 - local.set $3 + local.set $5 global.get $inlining-blocklocals/b - local.tee $1 + local.tee $2 i32.const 1 i32.add global.set $inlining-blocklocals/b - local.get $1 - local.set $2 + local.get $2 + local.set $4 local.get $0 i32.const 1 i32.add local.tee $0 - local.set $1 - local.get $3 + local.set $3 + local.get $5 global.set $inlining-blocklocals/theCall_a - local.get $2 + local.get $4 global.set $inlining-blocklocals/theCall_b - local.get $1 + local.get $3 global.set $inlining-blocklocals/theCall_c global.get $inlining-blocklocals/theCall_a i32.const 1 diff --git a/tests/compiler/inlining.untouched.wat b/tests/compiler/inlining.untouched.wat index 43c7f9dad0..25c5515244 100644 --- a/tests/compiler/inlining.untouched.wat +++ b/tests/compiler/inlining.untouched.wat @@ -46,6 +46,23 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) f32.const -1 local.set $0 f64.const -2 @@ -74,15 +91,15 @@ drop block $inlining/func_ii|inlined.1 (result i32) i32.const 41 - local.set $2 - local.get $2 + local.set $3 + local.get $3 i32.const 42 i32.eq if i32.const 1 br $inlining/func_ii|inlined.1 end - local.get $2 + local.get $3 i32.const 42 i32.lt_s if (result i32) @@ -96,15 +113,15 @@ drop block $inlining/func_ii|inlined.2 (result i32) i32.const 43 - local.set $2 - local.get $2 + local.set $4 + local.get $4 i32.const 42 i32.eq if i32.const 1 br $inlining/func_ii|inlined.2 end - local.get $2 + local.get $4 i32.const 42 i32.lt_s if (result i32) @@ -117,55 +134,55 @@ i32.eq drop i32.const 0 - local.set $2 - local.get $2 + local.set $5 + local.get $5 i32.const 0 i32.eq drop i32.const 1 - local.set $2 - local.get $2 + local.set $6 + local.get $6 i32.const 1 i32.eq drop i32.const 2 - local.set $2 - local.get $2 - local.set $3 + local.set $7 + local.get $7 + local.set $8 i32.const 1 drop - local.get $3 - local.set $5 - local.get $5 - local.set $6 - local.get $6 + local.get $8 + local.set $10 + local.get $10 + local.set $11 + local.get $11 i32.const 1 i32.add - local.set $4 - local.get $4 + local.set $9 + local.get $9 i32.const 3 i32.eq drop i32.const 3 - local.set $5 - local.get $5 - local.set $4 + local.set $12 + local.get $12 + local.set $13 i32.const 1 drop - local.get $4 - local.set $2 - local.get $2 - local.set $6 - local.get $6 + local.get $13 + local.set $15 + local.get $15 + local.set $16 + local.get $16 i32.const 1 i32.add - local.set $3 - local.get $3 + local.set $14 + local.get $14 i32.const 4 i32.eq drop i32.const 0 - local.set $2 + local.set $17 i32.const 2 i32.const 1 global.set $~argumentsLength @@ -183,27 +200,27 @@ unreachable end i32.const 42 - local.set $6 + local.set $18 i32.const 2 - local.set $2 - local.get $6 - local.get $2 + local.set $19 + local.get $18 + local.get $19 i32.add i32.const 44 i32.eq drop i32.const 123 call $~lib/rt/stub/__retain - local.set $7 - local.get $7 - local.set $4 + local.set $20 + local.get $20 + local.set $22 i32.const 43 - local.set $5 + local.set $21 i32.const 3 - local.set $2 - local.get $4 + local.set $23 + local.get $22 call $~lib/rt/stub/__retain - local.tee $2 + local.tee $24 i32.const 123 i32.eq i32.eqz @@ -215,9 +232,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $24 call $~lib/rt/stub/__release - local.get $7 + local.get $20 call $~lib/rt/stub/__release ) (func $~lib/rt/stub/maybeGrowMemory (param $0 i32) @@ -226,6 +243,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -256,8 +274,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s diff --git a/tests/compiler/instanceof-class.untouched.wat b/tests/compiler/instanceof-class.untouched.wat index 67f434a05b..537635d2a6 100644 --- a/tests/compiler/instanceof-class.untouched.wat +++ b/tests/compiler/instanceof-class.untouched.wat @@ -23,6 +23,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -53,8 +54,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s diff --git a/tests/compiler/issues/1095.untouched.wat b/tests/compiler/issues/1095.untouched.wat index ababb570f7..d5472e08b8 100644 --- a/tests/compiler/issues/1095.untouched.wat +++ b/tests/compiler/issues/1095.untouched.wat @@ -38,6 +38,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -174,59 +183,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -256,6 +265,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -318,8 +341,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -330,16 +353,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -357,18 +380,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -380,7 +403,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -393,23 +416,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -423,14 +446,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -450,7 +473,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -468,24 +491,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -493,21 +516,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -523,86 +546,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -613,6 +636,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -752,11 +776,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -776,6 +800,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -832,66 +862,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -904,11 +934,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -957,6 +987,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1030,11 +1068,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1045,10 +1083,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1061,30 +1099,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1095,45 +1133,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1142,6 +1180,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1188,15 +1227,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1210,12 +1249,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1225,6 +1264,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1289,11 +1330,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1301,11 +1342,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -1550,6 +1591,7 @@ (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -1568,19 +1610,19 @@ call $~lib/builtins/abort unreachable end - local.tee $1 + local.tee $3 local.get $2 i32.load - local.tee $3 + local.tee $4 i32.ne if - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $4 call $~lib/rt/pure/__release end - local.get $1 + local.get $3 i32.store local.get $0 call $~lib/rt/pure/__release diff --git a/tests/compiler/issues/1225.untouched.wat b/tests/compiler/issues/1225.untouched.wat index 110b340240..c7f7446f2c 100644 --- a/tests/compiler/issues/1225.untouched.wat +++ b/tests/compiler/issues/1225.untouched.wat @@ -40,6 +40,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -176,59 +185,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -258,6 +267,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -320,8 +343,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -332,16 +355,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -359,18 +382,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -382,7 +405,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -395,23 +418,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -425,14 +448,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -452,7 +475,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -470,24 +493,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -495,21 +518,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -525,86 +548,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -615,6 +638,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -754,11 +778,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -778,6 +802,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -834,66 +864,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -906,11 +936,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -959,6 +989,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1032,11 +1070,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1047,10 +1085,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1063,30 +1101,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1097,45 +1135,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1144,6 +1182,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1190,15 +1229,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1212,12 +1251,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1227,6 +1266,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1291,11 +1332,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1303,11 +1344,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 diff --git a/tests/compiler/logical.untouched.wat b/tests/compiler/logical.untouched.wat index 83cb8b7074..d11642018c 100644 --- a/tests/compiler/logical.untouched.wat +++ b/tests/compiler/logical.untouched.wat @@ -40,7 +40,28 @@ ) (func $start:logical (local $0 f64) - (local $1 f32) + (local $1 f64) + (local $2 f64) + (local $3 f64) + (local $4 f64) + (local $5 f64) + (local $6 f64) + (local $7 f32) + (local $8 f32) + (local $9 f64) + (local $10 f64) + (local $11 f32) + (local $12 f32) + (local $13 f64) + (local $14 f64) + (local $15 f32) + (local $16 f32) + (local $17 f32) + (local $18 f32) + (local $19 f64) + (local $20 f64) + (local $21 f64) + (local $22 f64) i32.const 0 if (result i32) unreachable @@ -70,11 +91,11 @@ end drop f64.const 1 - local.tee $0 + local.tee $2 f64.const 0 f64.ne - local.get $0 - local.get $0 + local.get $2 + local.get $2 f64.eq i32.and if (result i32) @@ -96,11 +117,11 @@ end drop f64.const 1 - local.tee $0 + local.tee $4 f64.const 0 f64.ne - local.get $0 - local.get $0 + local.get $4 + local.get $4 f64.eq i32.and if (result f64) @@ -108,11 +129,11 @@ else f64.const 1 end - local.tee $0 + local.tee $5 f64.const 0 f64.ne - local.get $0 - local.get $0 + local.get $5 + local.get $5 f64.eq i32.and if (result i32) @@ -202,11 +223,11 @@ unreachable end f32.const 1 - local.tee $1 + local.tee $7 f32.const 0 f32.ne - local.get $1 - local.get $1 + local.get $7 + local.get $7 f32.eq i32.and if (result f32) @@ -228,11 +249,11 @@ unreachable end f32.const 0 - local.tee $1 + local.tee $8 f32.const 0 f32.ne - local.get $1 - local.get $1 + local.get $8 + local.get $8 f32.eq i32.and if (result f32) @@ -254,11 +275,11 @@ unreachable end f64.const 1 - local.tee $0 + local.tee $9 f64.const 0 f64.ne - local.get $0 - local.get $0 + local.get $9 + local.get $9 f64.eq i32.and if (result f64) @@ -280,11 +301,11 @@ unreachable end f64.const 0 - local.tee $0 + local.tee $10 f64.const 0 f64.ne - local.get $0 - local.get $0 + local.get $10 + local.get $10 f64.eq i32.and if (result f64) @@ -306,11 +327,11 @@ unreachable end f32.const nan:0x400000 - local.tee $1 + local.tee $11 f32.const 0 f32.ne - local.get $1 - local.get $1 + local.get $11 + local.get $11 f32.eq i32.and if (result f32) @@ -332,11 +353,11 @@ unreachable end f32.const 1 - local.tee $1 + local.tee $12 f32.const 0 f32.ne - local.get $1 - local.get $1 + local.get $12 + local.get $12 f32.eq i32.and if (result f32) @@ -358,11 +379,11 @@ unreachable end f64.const nan:0x8000000000000 - local.tee $0 + local.tee $13 f64.const 0 f64.ne - local.get $0 - local.get $0 + local.get $13 + local.get $13 f64.eq i32.and if (result f64) @@ -384,11 +405,11 @@ unreachable end f64.const 1 - local.tee $0 + local.tee $14 f64.const 0 f64.ne - local.get $0 - local.get $0 + local.get $14 + local.get $14 f64.eq i32.and if (result f64) @@ -410,11 +431,11 @@ unreachable end f32.const 1 - local.tee $1 + local.tee $15 f32.const 0 f32.ne - local.get $1 - local.get $1 + local.get $15 + local.get $15 f32.eq i32.and if (result f32) @@ -424,8 +445,8 @@ end global.set $logical/f global.get $logical/f - local.tee $1 - local.get $1 + local.tee $16 + local.get $16 f32.ne i32.eqz if @@ -437,11 +458,11 @@ unreachable end f32.const nan:0x400000 - local.tee $1 + local.tee $17 f32.const 0 f32.ne - local.get $1 - local.get $1 + local.get $17 + local.get $17 f32.eq i32.and if (result f32) @@ -451,8 +472,8 @@ end global.set $logical/f global.get $logical/f - local.tee $1 - local.get $1 + local.tee $18 + local.get $18 f32.ne i32.eqz if @@ -464,11 +485,11 @@ unreachable end f64.const 1 - local.tee $0 + local.tee $19 f64.const 0 f64.ne - local.get $0 - local.get $0 + local.get $19 + local.get $19 f64.eq i32.and if (result f64) @@ -478,8 +499,8 @@ end global.set $logical/F global.get $logical/F - local.tee $0 - local.get $0 + local.tee $20 + local.get $20 f64.ne i32.eqz if @@ -491,11 +512,11 @@ unreachable end f64.const nan:0x8000000000000 - local.tee $0 + local.tee $21 f64.const 0 f64.ne - local.get $0 - local.get $0 + local.get $21 + local.get $21 f64.eq i32.and if (result f64) @@ -505,8 +526,8 @@ end global.set $logical/F global.get $logical/F - local.tee $0 - local.get $0 + local.tee $22 + local.get $22 f64.ne i32.eqz if diff --git a/tests/compiler/loop-wrap.untouched.wat b/tests/compiler/loop-wrap.untouched.wat index b5c4d03b09..a777f061a0 100644 --- a/tests/compiler/loop-wrap.untouched.wat +++ b/tests/compiler/loop-wrap.untouched.wat @@ -35,6 +35,7 @@ (func $loop-wrap/testFirstWrapped (local $0 i32) (local $1 i32) + (local $2 i32) i32.const 0 local.set $0 block $do-break|1 @@ -53,8 +54,8 @@ local.tee $0 i32.const 255 i32.and - local.set $1 - local.get $1 + local.set $2 + local.get $2 br_if $do-continue|1 end end diff --git a/tests/compiler/managed-cast.untouched.wat b/tests/compiler/managed-cast.untouched.wat index 1c3c6de678..073552c196 100644 --- a/tests/compiler/managed-cast.untouched.wat +++ b/tests/compiler/managed-cast.untouched.wat @@ -40,6 +40,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -176,59 +185,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -258,6 +267,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -320,8 +343,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -332,16 +355,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -359,18 +382,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -382,7 +405,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -395,23 +418,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -425,14 +448,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -452,7 +475,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -470,24 +493,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -495,21 +518,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -525,86 +548,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -615,6 +638,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -754,11 +778,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -778,6 +802,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -834,66 +864,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -906,11 +936,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -959,6 +989,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1032,11 +1070,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1047,10 +1085,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1063,30 +1101,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1097,45 +1135,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1144,6 +1182,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1190,15 +1229,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1212,12 +1251,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1227,6 +1266,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1291,11 +1332,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1303,11 +1344,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -1697,6 +1738,7 @@ ) (func $managed-cast/testUpcastFromNullable (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -1712,11 +1754,11 @@ call $~lib/builtins/abort unreachable end - local.tee $1 + local.tee $2 i32.const 3 call $~lib/rt/__instanceof if (result i32) - local.get $1 + local.get $2 else i32.const 0 i32.const 192 diff --git a/tests/compiler/memcpy.untouched.wat b/tests/compiler/memcpy.untouched.wat index 73835e9b4b..f206aa5569 100644 --- a/tests/compiler/memcpy.untouched.wat +++ b/tests/compiler/memcpy.untouched.wat @@ -17,6 +17,88 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) + (local $89 i32) local.get $0 local.set $3 loop $while-continue|0 @@ -38,11 +120,11 @@ local.set $0 local.get $7 local.get $1 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $1 - local.get $7 + local.get $8 i32.load8_u i32.store8 local.get $2 @@ -62,8 +144,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $0 local.get $1 @@ -172,17 +254,17 @@ i32.and if local.get $0 - local.tee $6 + local.tee $10 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $10 local.get $1 - local.tee $6 + local.tee $11 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $11 i32.load8_u i32.store8 end @@ -200,16 +282,16 @@ local.get $0 i32.const 4 i32.rem_u - local.set $6 - local.get $6 + local.set $12 + local.get $12 i32.const 1 i32.eq br_if $case0|2 - local.get $6 + local.get $12 i32.const 2 i32.eq br_if $case1|2 - local.get $6 + local.get $12 i32.const 3 i32.eq br_if $case2|2 @@ -219,45 +301,45 @@ i32.load local.set $4 local.get $0 - local.tee $6 + local.tee $13 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $13 local.get $1 - local.tee $6 + local.tee $14 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $14 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $15 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $15 local.get $1 - local.tee $6 + local.tee $16 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $16 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $17 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $17 local.get $1 - local.tee $6 + local.tee $18 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $18 i32.load8_u i32.store8 local.get $2 @@ -268,8 +350,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $6 - local.get $6 + local.set $19 + local.get $19 if local.get $1 i32.const 1 @@ -354,31 +436,31 @@ i32.load local.set $4 local.get $0 - local.tee $6 + local.tee $20 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $20 local.get $1 - local.tee $6 + local.tee $21 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $21 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $22 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $22 local.get $1 - local.tee $6 + local.tee $23 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $23 i32.load8_u i32.store8 local.get $2 @@ -389,8 +471,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $6 - local.get $6 + local.set $24 + local.get $24 if local.get $1 i32.const 2 @@ -475,17 +557,17 @@ i32.load local.set $4 local.get $0 - local.tee $6 + local.tee $25 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $25 local.get $1 - local.tee $6 + local.tee $26 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $26 i32.load8_u i32.store8 local.get $2 @@ -496,8 +578,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $6 - local.get $6 + local.set $27 + local.get $27 if local.get $1 i32.const 3 @@ -584,227 +666,227 @@ i32.and if local.get $0 - local.tee $6 + local.tee $28 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $28 local.get $1 - local.tee $6 + local.tee $29 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $29 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $30 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $30 local.get $1 - local.tee $6 + local.tee $31 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $31 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $32 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $32 local.get $1 - local.tee $6 + local.tee $33 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $33 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $34 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $34 local.get $1 - local.tee $6 + local.tee $35 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $35 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $36 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $36 local.get $1 - local.tee $6 + local.tee $37 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $37 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $38 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $38 local.get $1 - local.tee $6 + local.tee $39 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $39 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $40 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $40 local.get $1 - local.tee $6 + local.tee $41 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $41 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $42 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $42 local.get $1 - local.tee $6 + local.tee $43 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $43 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $44 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $44 local.get $1 - local.tee $6 + local.tee $45 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $45 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $46 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $46 local.get $1 - local.tee $6 + local.tee $47 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $47 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $48 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $48 local.get $1 - local.tee $6 + local.tee $49 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $49 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $50 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $50 local.get $1 - local.tee $6 + local.tee $51 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $51 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $52 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $52 local.get $1 - local.tee $6 + local.tee $53 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $53 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $54 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $54 local.get $1 - local.tee $6 + local.tee $55 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $55 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $56 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $56 local.get $1 - local.tee $6 + local.tee $57 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $57 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $58 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $58 local.get $1 - local.tee $6 + local.tee $59 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $59 i32.load8_u i32.store8 end @@ -813,115 +895,115 @@ i32.and if local.get $0 - local.tee $6 + local.tee $60 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $60 local.get $1 - local.tee $6 + local.tee $61 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $61 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $62 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $62 local.get $1 - local.tee $6 + local.tee $63 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $63 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $64 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $64 local.get $1 - local.tee $6 + local.tee $65 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $65 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $66 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $66 local.get $1 - local.tee $6 + local.tee $67 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $67 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $68 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $68 local.get $1 - local.tee $6 + local.tee $69 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $69 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $70 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $70 local.get $1 - local.tee $6 + local.tee $71 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $71 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $72 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $72 local.get $1 - local.tee $6 + local.tee $73 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $73 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $74 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $74 local.get $1 - local.tee $6 + local.tee $75 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $75 i32.load8_u i32.store8 end @@ -930,59 +1012,59 @@ i32.and if local.get $0 - local.tee $6 + local.tee $76 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $76 local.get $1 - local.tee $6 + local.tee $77 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $77 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $78 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $78 local.get $1 - local.tee $6 + local.tee $79 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $79 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $80 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $80 local.get $1 - local.tee $6 + local.tee $81 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $81 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $82 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $82 local.get $1 - local.tee $6 + local.tee $83 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $83 i32.load8_u i32.store8 end @@ -991,31 +1073,31 @@ i32.and if local.get $0 - local.tee $6 + local.tee $84 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $84 local.get $1 - local.tee $6 + local.tee $85 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $85 i32.load8_u i32.store8 local.get $0 - local.tee $6 + local.tee $86 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $86 local.get $1 - local.tee $6 + local.tee $87 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $87 i32.load8_u i32.store8 end @@ -1024,17 +1106,17 @@ i32.and if local.get $0 - local.tee $6 + local.tee $88 i32.const 1 i32.add local.set $0 - local.get $6 + local.get $88 local.get $1 - local.tee $6 + local.tee $89 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $89 i32.load8_u i32.store8 end diff --git a/tests/compiler/memmove.untouched.wat b/tests/compiler/memmove.untouched.wat index 80fd6c4623..a9bcd4849d 100644 --- a/tests/compiler/memmove.untouched.wat +++ b/tests/compiler/memmove.untouched.wat @@ -14,6 +14,14 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 local.set $3 local.get $0 @@ -59,11 +67,11 @@ local.set $0 local.get $5 local.get $1 - local.tee $5 + local.tee $6 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $6 i32.load8_u i32.store8 br $while-continue|0 @@ -73,8 +81,8 @@ local.get $2 i32.const 8 i32.ge_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 local.get $1 @@ -98,21 +106,21 @@ end loop $while-continue|2 local.get $2 - local.set $4 - local.get $4 + local.set $8 + local.get $8 if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 local.get $2 @@ -137,8 +145,8 @@ i32.add i32.const 8 i32.rem_u - local.set $4 - local.get $4 + local.set $11 + local.get $11 if local.get $2 i32.eqz @@ -164,8 +172,8 @@ local.get $2 i32.const 8 i32.ge_u - local.set $4 - local.get $4 + local.set $12 + local.get $12 if local.get $2 i32.const 8 @@ -185,8 +193,8 @@ end loop $while-continue|5 local.get $2 - local.set $4 - local.get $4 + local.set $13 + local.get $13 if local.get $0 local.get $2 diff --git a/tests/compiler/new.untouched.wat b/tests/compiler/new.untouched.wat index a43342cf59..921ce9ffde 100644 --- a/tests/compiler/new.untouched.wat +++ b/tests/compiler/new.untouched.wat @@ -19,6 +19,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -49,8 +50,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -185,6 +186,15 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) global.get $~lib/heap/__heap_base i32.const 15 i32.add @@ -204,97 +214,97 @@ global.set $new/ref i32.const 0 call $new/Ref#constructor - local.set $0 + local.set $1 global.get $new/ref call $~lib/rt/stub/__release - local.get $0 + local.get $1 global.set $new/ref i32.const 0 call $new/Ref#constructor - local.tee $0 - call $new/Ref#get:ref - local.tee $1 local.tee $2 - global.get $new/ref + call $new/Ref#get:ref local.tee $3 + local.tee $4 + global.get $new/ref + local.tee $5 i32.ne if - local.get $2 + local.get $4 call $~lib/rt/stub/__retain - local.set $2 - local.get $3 + local.set $4 + local.get $5 call $~lib/rt/stub/__release end - local.get $2 + local.get $4 global.set $new/ref i32.const 0 call $new/Gen#constructor - local.set $3 + local.set $6 global.get $new/gen call $~lib/rt/stub/__release - local.get $3 + local.get $6 global.set $new/gen i32.const 0 call $new/Gen#constructor - local.tee $3 + local.tee $7 call $new/Gen#get:gen - local.tee $2 - local.tee $4 + local.tee $8 + local.tee $9 global.get $new/gen - local.tee $5 + local.tee $10 i32.ne if - local.get $4 + local.get $9 call $~lib/rt/stub/__retain - local.set $4 - local.get $5 + local.set $9 + local.get $10 call $~lib/rt/stub/__release end - local.get $4 + local.get $9 global.set $new/gen i32.const 0 call $new/ns.Ref#constructor - local.set $5 + local.set $11 global.get $new/ref2 call $~lib/rt/stub/__release - local.get $5 + local.get $11 global.set $new/ref2 i32.const 0 call $new/ns.Ref#constructor - local.set $4 + local.set $12 global.get $new/ref2 call $~lib/rt/stub/__release - local.get $4 + local.get $12 global.set $new/ref2 i32.const 0 call $new/ns.Ref#constructor - local.tee $4 + local.tee $13 call $new/ns.Ref#get:ref - local.tee $5 - local.tee $6 + local.tee $14 + local.tee $15 global.get $new/ref2 - local.tee $7 + local.tee $16 i32.ne if - local.get $6 + local.get $15 call $~lib/rt/stub/__retain - local.set $6 - local.get $7 + local.set $15 + local.get $16 call $~lib/rt/stub/__release end - local.get $6 + local.get $15 global.set $new/ref2 - local.get $0 - call $~lib/rt/stub/__release - local.get $1 - call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release local.get $3 call $~lib/rt/stub/__release - local.get $4 + local.get $7 call $~lib/rt/stub/__release - local.get $5 + local.get $8 + call $~lib/rt/stub/__release + local.get $13 + call $~lib/rt/stub/__release + local.get $14 call $~lib/rt/stub/__release ) (func $~start diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index fd3da8cab3..13c4835377 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -346,8 +346,8 @@ ) (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (result i32) (local $6 i32) - (local $7 i64) - (local $8 i32) + (local $7 i32) + (local $8 i64) (local $9 i64) (local $10 i32) (local $11 i64) @@ -369,7 +369,7 @@ i64.sub local.tee $12 i64.and - local.set $7 + local.set $8 local.get $3 local.get $10 i64.extend_i32_s @@ -503,11 +503,11 @@ local.set $2 end local.get $2 - local.get $8 + local.get $7 i32.or if local.get $0 - local.get $8 + local.get $7 i32.const 1 i32.shl i32.add @@ -517,16 +517,16 @@ i32.const 48 i32.add i32.store16 - local.get $8 + local.get $7 i32.const 1 i32.add - local.set $8 + local.set $7 end local.get $4 i32.const 1 i32.sub local.set $4 - local.get $7 + local.get $8 local.get $6 i64.extend_i32_u local.get $10 @@ -552,7 +552,7 @@ i64.shl local.set $3 local.get $0 - local.get $8 + local.get $7 i32.const 1 i32.sub i32.const 1 @@ -569,11 +569,11 @@ local.get $1 local.get $3 i64.add - local.tee $7 + local.tee $8 local.get $9 i64.sub i64.gt_u - local.get $7 + local.get $8 local.get $9 i64.lt_u select @@ -604,7 +604,7 @@ local.get $0 local.get $4 i32.store16 - local.get $8 + local.get $7 return end br $while-continue|0 @@ -618,35 +618,35 @@ i64.const 10 i64.mul local.set $5 - local.get $7 + local.get $8 i64.const 10 i64.mul local.tee $3 local.get $1 i64.shr_u - local.tee $7 - local.get $8 + local.tee $8 + local.get $7 i64.extend_i32_s i64.or i64.const 0 i64.ne if local.get $0 - local.get $8 + local.get $7 i32.const 1 i32.shl i32.add - local.get $7 + local.get $8 i32.wrap_i64 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $8 + local.get $7 i32.const 1 i32.add - local.set $8 + local.set $7 end local.get $4 i32.const 1 @@ -655,7 +655,7 @@ local.get $3 local.get $12 i64.and - local.tee $7 + local.tee $8 local.get $5 i64.ge_u br_if $while-continue|4 @@ -664,8 +664,6 @@ global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $7 - local.set $1 local.get $9 i32.const 0 local.get $4 @@ -676,9 +674,9 @@ i32.add i64.load32_u i64.mul - local.set $3 + local.set $1 local.get $0 - local.get $8 + local.get $7 i32.const 1 i32.sub i32.const 1 @@ -689,29 +687,29 @@ local.set $4 loop $while-continue|6 i32.const 1 - local.get $3 local.get $1 + local.get $8 i64.sub - local.get $1 + local.get $8 local.get $11 i64.add - local.tee $7 - local.get $3 + local.tee $3 + local.get $1 i64.sub i64.gt_u - local.get $7 local.get $3 + local.get $1 i64.lt_u select i32.const 0 local.get $5 - local.get $1 + local.get $8 i64.sub local.get $11 i64.ge_u i32.const 0 + local.get $8 local.get $1 - local.get $3 i64.lt_u select select @@ -720,17 +718,17 @@ i32.const 1 i32.sub local.set $4 - local.get $1 + local.get $8 local.get $11 i64.add - local.set $1 + local.set $8 br $while-continue|6 end end local.get $0 local.get $4 i32.store16 - local.get $8 + local.get $7 ) (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) diff --git a/tests/compiler/number.untouched.wat b/tests/compiler/number.untouched.wat index 5f8f7c3b6c..1c58e77526 100644 --- a/tests/compiler/number.untouched.wat +++ b/tests/compiler/number.untouched.wat @@ -117,6 +117,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -147,8 +148,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -230,6 +231,9 @@ (local $9 i64) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) loop $while-continue|0 local.get $1 i32.const 10000 @@ -294,30 +298,30 @@ local.get $1 i32.const 100 i32.div_u - local.set $3 + local.set $10 local.get $1 i32.const 100 i32.rem_u - local.set $10 - local.get $3 + local.set $11 + local.get $10 local.set $1 local.get $2 i32.const 2 i32.sub local.set $2 i32.const 36 - local.get $10 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $12 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $12 i32.store end local.get $1 @@ -334,13 +338,13 @@ i32.shl i32.add i32.load - local.set $11 + local.set $13 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $13 i32.store else local.get $2 @@ -350,13 +354,13 @@ i32.const 48 local.get $1 i32.add - local.set $11 + local.set $14 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $14 i32.store16 end ) @@ -457,6 +461,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -528,33 +535,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $10 + local.get $12 return end local.get $5 @@ -569,16 +576,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -610,44 +620,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $6 ) (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) (local $7 i32) @@ -662,16 +672,31 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (local $19 i64) + (local $19 i32) (local $20 i64) (local $21 i64) (local $22 i64) (local $23 i64) - (local $24 i32) + (local $24 i64) (local $25 i32) (local $26 i32) (local $27 i32) - (local $28 i64) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i64) + (local $33 i32) + (local $34 i64) + (local $35 i64) + (local $36 i64) + (local $37 i64) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) i32.const 0 local.get $4 i32.sub @@ -875,11 +900,11 @@ if local.get $0 local.get $15 - local.tee $18 + local.tee $19 i32.const 1 i32.add local.set $15 - local.get $18 + local.get $19 i32.const 1 i32.shl i32.add @@ -901,8 +926,8 @@ i64.shl local.get $13 i64.add - local.set $19 - local.get $19 + local.set $20 + local.get $20 local.get $5 i64.le_u if @@ -911,13 +936,13 @@ i32.add global.set $~lib/util/number/_K local.get $0 - local.set $24 + local.set $26 local.get $15 - local.set $18 + local.set $25 local.get $5 + local.set $24 + local.get $20 local.set $23 - local.get $19 - local.set $22 i32.const 1544 local.get $14 i32.const 2 @@ -927,71 +952,71 @@ local.get $7 i64.extend_i32_s i64.shl - local.set $21 + local.set $22 local.get $10 - local.set $20 - local.get $24 - local.get $18 + local.set $21 + local.get $26 + local.get $25 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $25 - local.get $25 + local.set $27 + local.get $27 i32.load16_u - local.set $26 + local.set $28 loop $while-continue|3 - local.get $22 - local.get $20 + local.get $23 + local.get $21 i64.lt_u if (result i32) + local.get $24 local.get $23 - local.get $22 i64.sub - local.get $21 + local.get $22 i64.ge_u else i32.const 0 end if (result i32) + local.get $23 local.get $22 - local.get $21 i64.add - local.get $20 + local.get $21 i64.lt_u if (result i32) i32.const 1 else - local.get $20 - local.get $22 + local.get $21 + local.get $23 i64.sub + local.get $23 local.get $22 - local.get $21 i64.add - local.get $20 + local.get $21 i64.sub i64.gt_u end else i32.const 0 end - local.set $27 - local.get $27 + local.set $30 + local.get $30 if - local.get $26 + local.get $28 i32.const 1 i32.sub - local.set $26 + local.set $28 + local.get $23 local.get $22 - local.get $21 i64.add - local.set $22 + local.set $23 br $while-continue|3 end end - local.get $25 - local.get $26 + local.get $27 + local.get $28 i32.store16 local.get $15 return @@ -1001,8 +1026,8 @@ end loop $while-continue|4 i32.const 1 - local.set $16 - local.get $16 + local.set $31 + local.get $31 if local.get $13 i64.const 10 @@ -1016,8 +1041,8 @@ local.get $7 i64.extend_i32_s i64.shr_u - local.set $23 - local.get $23 + local.set $32 + local.get $32 local.get $15 i64.extend_i32_s i64.or @@ -1026,16 +1051,16 @@ if local.get $0 local.get $15 - local.tee $26 + local.tee $33 i32.const 1 i32.add local.set $15 - local.get $26 + local.get $33 i32.const 1 i32.shl i32.add i32.const 48 - local.get $23 + local.get $32 i32.wrap_i64 i32.const 65535 i32.and @@ -1070,79 +1095,79 @@ i64.mul local.set $10 local.get $0 - local.set $18 + local.set $39 local.get $15 - local.set $27 + local.set $38 local.get $5 - local.set $28 + local.set $37 local.get $13 - local.set $22 + local.set $36 local.get $8 - local.set $21 + local.set $35 local.get $10 - local.set $20 - local.get $18 - local.get $27 + local.set $34 + local.get $39 + local.get $38 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $26 - local.get $26 + local.set $40 + local.get $40 i32.load16_u - local.set $25 + local.set $41 loop $while-continue|6 - local.get $22 - local.get $20 + local.get $36 + local.get $34 i64.lt_u if (result i32) - local.get $28 - local.get $22 + local.get $37 + local.get $36 i64.sub - local.get $21 + local.get $35 i64.ge_u else i32.const 0 end if (result i32) - local.get $22 - local.get $21 + local.get $36 + local.get $35 i64.add - local.get $20 + local.get $34 i64.lt_u if (result i32) i32.const 1 else - local.get $20 - local.get $22 + local.get $34 + local.get $36 i64.sub - local.get $22 - local.get $21 + local.get $36 + local.get $35 i64.add - local.get $20 + local.get $34 i64.sub i64.gt_u end else i32.const 0 end - local.set $24 - local.get $24 + local.set $43 + local.get $43 if - local.get $25 + local.get $41 i32.const 1 i32.sub - local.set $25 - local.get $22 - local.get $21 + local.set $41 + local.get $36 + local.get $35 i64.add - local.set $22 + local.set $36 br $while-continue|6 end end - local.get $26 - local.get $25 + local.get $40 + local.get $41 i32.store16 local.get $15 return @@ -1157,6 +1182,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -1176,11 +1283,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -1200,8 +1307,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -1310,17 +1417,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -1337,16 +1444,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -1356,45 +1463,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -1405,8 +1512,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -1491,31 +1598,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -1526,8 +1633,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -1612,17 +1719,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -1633,8 +1740,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -1721,227 +1828,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -1950,115 +2057,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -2067,59 +2174,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -2128,31 +2235,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -2161,17 +2268,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -2182,6 +2289,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -2259,11 +2374,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -2273,8 +2388,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -2298,21 +2413,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -2341,8 +2456,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -2367,8 +2482,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -2388,8 +2503,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -2418,6 +2533,19 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) local.get $2 i32.eqz if @@ -2507,11 +2635,11 @@ i32.const 1 i32.shl i32.add - local.set $4 - local.get $4 + local.set $6 + local.get $6 i32.const 2 i32.add - local.get $4 + local.get $6 i32.const 0 local.get $2 i32.sub @@ -2544,9 +2672,9 @@ i32.const 2 local.get $3 i32.sub - local.set $4 + local.set $7 local.get $0 - local.get $4 + local.get $7 i32.const 1 i32.shl i32.add @@ -2563,30 +2691,30 @@ i32.or i32.store i32.const 2 - local.set $5 + local.set $8 loop $for-loop|1 - local.get $5 - local.get $4 + local.get $8 + local.get $7 i32.lt_s - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $0 - local.get $5 + local.get $8 i32.const 1 i32.shl i32.add i32.const 48 i32.store16 - local.get $5 + local.get $8 i32.const 1 i32.add - local.set $5 + local.set $8 br $for-loop|1 end end local.get $1 - local.get $4 + local.get $7 i32.add return else @@ -2600,48 +2728,48 @@ local.get $0 i32.const 4 i32.add - local.set $5 + local.set $11 local.get $3 i32.const 1 i32.sub - local.set $6 - local.get $6 + local.set $10 + local.get $10 i32.const 0 i32.lt_s - local.set $4 - local.get $4 + local.set $12 + local.get $12 if i32.const 0 - local.get $6 + local.get $10 i32.sub - local.set $6 + local.set $10 end - local.get $6 + local.get $10 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $7 - local.get $5 - local.set $10 - local.get $6 - local.set $9 - local.get $7 - local.set $8 + local.set $13 + local.get $11 + local.set $16 + local.get $10 + local.set $15 + local.get $13 + local.set $14 i32.const 0 i32.const 1 i32.ge_s drop - local.get $10 - local.get $9 - local.get $8 + local.get $16 + local.get $15 + local.get $14 call $~lib/util/number/utoa32_lut - local.get $5 + local.get $11 i32.const 45 i32.const 43 - local.get $4 + local.get $12 select i32.store16 - local.get $7 + local.get $13 local.set $1 local.get $1 i32.const 2 @@ -2651,14 +2779,14 @@ local.get $1 i32.const 1 i32.shl - local.set $7 + local.set $17 local.get $0 i32.const 4 i32.add local.get $0 i32.const 2 i32.add - local.get $7 + local.get $17 i32.const 2 i32.sub call $~lib/memory/memory.copy @@ -2666,58 +2794,58 @@ i32.const 46 i32.store16 offset=2 local.get $0 - local.get $7 + local.get $17 i32.add i32.const 101 i32.store16 offset=2 local.get $1 local.get $0 - local.get $7 + local.get $17 i32.add i32.const 4 i32.add - local.set $9 + local.set $19 local.get $3 i32.const 1 i32.sub - local.set $8 - local.get $8 + local.set $18 + local.get $18 i32.const 0 i32.lt_s - local.set $4 - local.get $4 + local.set $20 + local.get $20 if i32.const 0 - local.get $8 + local.get $18 i32.sub - local.set $8 + local.set $18 end - local.get $8 + local.get $18 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $5 - local.get $9 - local.set $11 - local.get $8 - local.set $6 - local.get $5 - local.set $10 + local.set $21 + local.get $19 + local.set $24 + local.get $18 + local.set $23 + local.get $21 + local.set $22 i32.const 0 i32.const 1 i32.ge_s drop - local.get $11 - local.get $6 - local.get $10 + local.get $24 + local.get $23 + local.get $22 call $~lib/util/number/utoa32_lut - local.get $9 + local.get $19 i32.const 45 i32.const 43 - local.get $4 + local.get $20 select i32.store16 - local.get $5 + local.get $21 i32.add local.set $1 local.get $1 @@ -2748,19 +2876,51 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 f64) - (local $17 i64) - (local $18 i64) - (local $19 i64) - (local $20 i64) + (local $16 i32) + (local $17 f64) + (local $18 i32) + (local $19 i32) + (local $20 i32) (local $21 i64) - (local $22 i64) + (local $22 i32) (local $23 i64) (local $24 i64) (local $25 i64) - (local $26 i32) + (local $26 i64) (local $27 i64) - (local $28 i32) + (local $28 i64) + (local $29 i64) + (local $30 i64) + (local $31 i64) + (local $32 i64) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i64) + (local $37 i64) + (local $38 i64) + (local $39 i64) + (local $40 i64) + (local $41 i64) + (local $42 i64) + (local $43 i64) + (local $44 i64) + (local $45 i64) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i64) + (local $50 i64) + (local $51 i64) + (local $52 i64) + (local $53 i64) + (local $54 i64) + (local $55 i64) + (local $56 i64) + (local $57 i64) + (local $58 i64) + (local $59 i64) + (local $60 i32) local.get $1 f64.const 0 f64.lt @@ -2864,47 +3024,47 @@ local.get $13 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp - local.set $10 + local.set $16 i32.const -61 - local.get $10 + local.get $16 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 f64.mul f64.const 347 f64.add - local.set $16 - local.get $16 + local.set $17 + local.get $17 i32.trunc_f64_s - local.set $15 - local.get $15 - local.get $15 + local.set $18 + local.get $18 + local.get $18 f64.convert_i32_s - local.get $16 + local.get $17 f64.ne i32.add - local.set $15 - local.get $15 + local.set $18 + local.get $18 i32.const 3 i32.shr_s i32.const 1 i32.add - local.set $14 + local.set $19 i32.const 348 - local.get $14 + local.get $19 i32.const 3 i32.shl i32.sub global.set $~lib/util/number/_K i32.const 672 - local.get $14 + local.get $19 i32.const 3 i32.shl i32.add i64.load global.set $~lib/util/number/_frc_pow i32.const 1368 - local.get $14 + local.get $19 i32.const 1 i32.shl i32.add @@ -2913,249 +3073,249 @@ local.get $9 i64.clz i32.wrap_i64 - local.set $14 + local.set $20 local.get $9 - local.get $14 + local.get $20 i64.extend_i32_s i64.shl local.set $9 local.get $7 - local.get $14 + local.get $20 i32.sub local.set $7 global.get $~lib/util/number/_frc_pow - local.set $12 + local.set $21 global.get $~lib/util/number/_exp_pow - local.set $15 + local.set $22 local.get $9 - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $24 + local.get $21 + local.set $23 + local.get $24 i64.const 4294967295 i64.and - local.set $18 - local.get $11 + local.set $25 + local.get $23 i64.const 4294967295 i64.and - local.set $19 - local.get $17 + local.set $26 + local.get $24 i64.const 32 i64.shr_u - local.set $20 - local.get $11 + local.set $27 + local.get $23 i64.const 32 i64.shr_u - local.set $21 - local.get $18 - local.get $19 + local.set $28 + local.get $25 + local.get $26 i64.mul - local.set $22 - local.get $20 - local.get $19 + local.set $29 + local.get $27 + local.get $26 i64.mul - local.get $22 + local.get $29 i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $18 - local.get $21 + local.set $30 + local.get $25 + local.get $28 i64.mul - local.get $23 + local.get $30 i64.const 4294967295 i64.and i64.add - local.set $24 - local.get $24 + local.set $31 + local.get $31 i64.const 2147483647 i64.add - local.set $24 - local.get $23 + local.set $31 + local.get $30 i64.const 32 i64.shr_u - local.set $23 - local.get $24 + local.set $30 + local.get $31 i64.const 32 i64.shr_u - local.set $24 - local.get $20 - local.get $21 + local.set $31 + local.get $27 + local.get $28 i64.mul - local.get $23 + local.get $30 i64.add - local.get $24 + local.get $31 i64.add - local.set $24 + local.set $32 local.get $7 - local.set $10 - local.get $15 - local.set $13 - local.get $10 - local.get $13 + local.set $34 + local.get $22 + local.set $33 + local.get $34 + local.get $33 i32.add i32.const 64 i32.add - local.set $10 + local.set $35 global.get $~lib/util/number/_frc_plus - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $37 + local.get $21 + local.set $36 + local.get $37 i64.const 4294967295 i64.and - local.set $23 - local.get $11 + local.set $38 + local.get $36 i64.const 4294967295 i64.and - local.set $22 - local.get $17 + local.set $39 + local.get $37 i64.const 32 i64.shr_u - local.set $21 - local.get $11 + local.set $40 + local.get $36 i64.const 32 i64.shr_u - local.set $20 - local.get $23 - local.get $22 + local.set $41 + local.get $38 + local.get $39 i64.mul - local.set $19 - local.get $21 - local.get $22 + local.set $42 + local.get $40 + local.get $39 i64.mul - local.get $19 + local.get $42 i64.const 32 i64.shr_u i64.add - local.set $18 - local.get $23 - local.get $20 + local.set $43 + local.get $38 + local.get $41 i64.mul - local.get $18 + local.get $43 i64.const 4294967295 i64.and i64.add - local.set $25 - local.get $25 + local.set $44 + local.get $44 i64.const 2147483647 i64.add - local.set $25 - local.get $18 + local.set $44 + local.get $43 i64.const 32 i64.shr_u - local.set $18 - local.get $25 + local.set $43 + local.get $44 i64.const 32 i64.shr_u - local.set $25 - local.get $21 - local.get $20 + local.set $44 + local.get $40 + local.get $41 i64.mul - local.get $18 + local.get $43 i64.add - local.get $25 + local.get $44 i64.add i64.const 1 i64.sub - local.set $25 + local.set $45 global.get $~lib/util/number/_exp - local.set $26 - local.get $15 - local.set $13 - local.get $26 - local.get $13 + local.set $47 + local.get $22 + local.set $46 + local.get $47 + local.get $46 i32.add i32.const 64 i32.add - local.set $26 + local.set $48 global.get $~lib/util/number/_frc_minus - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $50 + local.get $21 + local.set $49 + local.get $50 i64.const 4294967295 i64.and - local.set $18 - local.get $11 + local.set $51 + local.get $49 i64.const 4294967295 i64.and - local.set $19 - local.get $17 + local.set $52 + local.get $50 i64.const 32 i64.shr_u - local.set $20 - local.get $11 + local.set $53 + local.get $49 i64.const 32 i64.shr_u - local.set $21 - local.get $18 - local.get $19 + local.set $54 + local.get $51 + local.get $52 i64.mul - local.set $22 - local.get $20 - local.get $19 + local.set $55 + local.get $53 + local.get $52 i64.mul - local.get $22 + local.get $55 i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $18 - local.get $21 + local.set $56 + local.get $51 + local.get $54 i64.mul - local.get $23 + local.get $56 i64.const 4294967295 i64.and i64.add - local.set $27 - local.get $27 + local.set $57 + local.get $57 i64.const 2147483647 i64.add - local.set $27 - local.get $23 + local.set $57 + local.get $56 i64.const 32 i64.shr_u - local.set $23 - local.get $27 + local.set $56 + local.get $57 i64.const 32 i64.shr_u - local.set $27 - local.get $20 - local.get $21 + local.set $57 + local.get $53 + local.get $54 i64.mul - local.get $23 + local.get $56 i64.add - local.get $27 + local.get $57 i64.add i64.const 1 i64.add - local.set $27 - local.get $25 - local.get $27 + local.set $58 + local.get $45 + local.get $58 i64.sub - local.set $23 + local.set $59 local.get $4 - local.get $24 - local.get $10 - local.get $25 - local.get $26 - local.get $23 + local.get $32 + local.get $35 + local.get $45 + local.get $48 + local.get $59 local.get $3 call $~lib/util/number/genDigits - local.set $28 + local.set $60 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $28 + local.get $60 local.get $2 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.set $28 - local.get $28 + local.set $60 + local.get $60 local.get $2 i32.add ) @@ -3169,6 +3329,16 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) local.get $0 call $~lib/string/String#get:length local.set $3 @@ -3180,67 +3350,67 @@ local.get $5 i32.gt_s select - local.tee $4 + local.tee $6 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $7 + local.get $6 + local.get $7 i32.lt_s select - local.set $6 + local.set $8 local.get $2 - local.tee $4 + local.tee $9 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 + local.tee $10 + local.get $9 + local.get $10 i32.gt_s select - local.tee $4 + local.tee $11 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $12 + local.get $11 + local.get $12 i32.lt_s select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 + local.set $13 + local.get $8 + local.tee $14 + local.get $13 + local.tee $15 + local.get $14 + local.get $15 i32.lt_s select i32.const 1 i32.shl - local.set $8 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 + local.set $16 + local.get $8 + local.tee $17 + local.get $13 + local.tee $18 + local.get $17 + local.get $18 i32.gt_s select i32.const 1 i32.shl - local.set $9 - local.get $9 - local.get $8 + local.set $19 + local.get $19 + local.get $16 i32.sub - local.set $10 - local.get $10 + local.set $20 + local.get $20 i32.eqz if i32.const 1600 call $~lib/rt/stub/__retain return end - local.get $8 + local.get $16 i32.eqz if (result i32) - local.get $9 + local.get $19 local.get $3 i32.const 1 i32.shl @@ -3253,17 +3423,17 @@ call $~lib/rt/stub/__retain return end - local.get $10 + local.get $20 i32.const 1 call $~lib/rt/stub/__alloc - local.set $11 - local.get $11 + local.set $21 + local.get $21 local.get $0 - local.get $8 + local.get $16 i32.add - local.get $10 + local.get $20 call $~lib/memory/memory.copy - local.get $11 + local.get $21 call $~lib/rt/stub/__retain ) (func $~lib/rt/stub/__free (param $0 i32) @@ -3461,8 +3631,10 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f32) - (local $12 f64) + (local $11 i32) + (local $12 i32) + (local $13 f32) + (local $14 f64) global.get $~lib/heap/__heap_base i32.const 15 i32.add @@ -3617,7 +3789,7 @@ global.set $number/a local.get $9 call $~lib/number/I32#toString - local.tee $9 + local.tee $10 i32.const 464 call $~lib/string/String.__eq i32.eqz @@ -3630,13 +3802,13 @@ unreachable end global.get $number/a - local.tee $10 + local.tee $11 i32.const 1 i32.sub global.set $number/a - local.get $10 + local.get $11 call $~lib/number/I32#toString - local.tee $10 + local.tee $12 i32.const 1792 call $~lib/string/String.__eq i32.eqz @@ -3649,8 +3821,8 @@ unreachable end global.get $~lib/number/F32.NaN - local.tee $11 - local.get $11 + local.tee $13 + local.get $13 f32.ne drop global.get $~lib/builtins/f32.MIN_SAFE_INTEGER @@ -3918,8 +4090,8 @@ unreachable end global.get $~lib/number/F64.NaN - local.tee $12 - local.get $12 + local.tee $14 + local.get $14 f64.ne drop global.get $~lib/builtins/f64.MIN_SAFE_INTEGER @@ -4204,10 +4376,10 @@ call $~lib/rt/stub/__release local.get $8 call $~lib/rt/stub/__release - local.get $9 - call $~lib/rt/stub/__release local.get $10 call $~lib/rt/stub/__release + local.get $12 + call $~lib/rt/stub/__release ) (func $~start call $start:number diff --git a/tests/compiler/object-literal.untouched.wat b/tests/compiler/object-literal.untouched.wat index 98f6656a59..61b12f88b9 100644 --- a/tests/compiler/object-literal.untouched.wat +++ b/tests/compiler/object-literal.untouched.wat @@ -46,6 +46,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -182,59 +191,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -264,6 +273,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -326,8 +349,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -338,16 +361,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -365,18 +388,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -388,7 +411,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -401,23 +424,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -431,14 +454,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -458,7 +481,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -476,24 +499,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -501,21 +524,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -531,86 +554,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -621,6 +644,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -760,11 +784,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -784,6 +808,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -840,66 +870,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -912,11 +942,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -965,6 +995,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1038,11 +1076,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1053,10 +1091,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1069,30 +1107,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1103,45 +1141,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1150,6 +1188,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1196,15 +1235,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1218,12 +1257,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1233,6 +1272,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1297,11 +1338,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1309,11 +1350,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -1572,6 +1613,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -1643,33 +1687,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $10 + local.get $12 return end local.get $5 @@ -1684,16 +1728,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -1725,44 +1772,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $6 ) (func $object-literal/testManaged (param $0 i32) local.get $0 @@ -1802,6 +1849,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -1821,11 +1950,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -1845,8 +1974,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -1955,17 +2084,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -1982,16 +2111,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -2001,45 +2130,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -2050,8 +2179,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -2136,31 +2265,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -2171,8 +2300,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -2257,17 +2386,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -2278,8 +2407,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -2366,227 +2495,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -2595,115 +2724,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -2712,59 +2841,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -2773,31 +2902,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -2806,17 +2935,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -2827,6 +2956,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -2904,11 +3041,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -2918,8 +3055,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -2943,21 +3080,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -2986,8 +3123,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -3012,8 +3149,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -3033,8 +3170,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -3063,6 +3200,16 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) local.get $0 call $~lib/string/String#get:length local.set $3 @@ -3074,67 +3221,67 @@ local.get $5 i32.gt_s select - local.tee $4 + local.tee $6 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $7 + local.get $6 + local.get $7 i32.lt_s select - local.set $6 + local.set $8 local.get $2 - local.tee $4 + local.tee $9 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 + local.tee $10 + local.get $9 + local.get $10 i32.gt_s select - local.tee $4 + local.tee $11 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $12 + local.get $11 + local.get $12 i32.lt_s select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 + local.set $13 + local.get $8 + local.tee $14 + local.get $13 + local.tee $15 + local.get $14 + local.get $15 i32.lt_s select i32.const 1 i32.shl - local.set $8 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 + local.set $16 + local.get $8 + local.tee $17 + local.get $13 + local.tee $18 + local.get $17 + local.get $18 i32.gt_s select i32.const 1 i32.shl - local.set $9 - local.get $9 - local.get $8 + local.set $19 + local.get $19 + local.get $16 i32.sub - local.set $10 - local.get $10 + local.set $20 + local.get $20 i32.eqz if i32.const 304 call $~lib/rt/pure/__retain return end - local.get $8 + local.get $16 i32.eqz if (result i32) - local.get $9 + local.get $19 local.get $3 i32.const 1 i32.shl @@ -3147,17 +3294,17 @@ call $~lib/rt/pure/__retain return end - local.get $10 + local.get $20 i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $11 - local.get $11 + local.set $21 + local.get $21 local.get $0 - local.get $8 + local.get $16 i32.add - local.get $10 + local.get $20 call $~lib/memory/memory.copy - local.get $11 + local.get $21 call $~lib/rt/pure/__retain ) (func $object-literal/Unmanaged#constructor (param $0 i32) (result i32) @@ -3778,6 +3925,7 @@ (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) i32.const 0 call $object-literal/Managed#constructor local.set $0 @@ -3805,99 +3953,99 @@ call $object-literal/testUnmanaged i32.const 0 call $object-literal/OmittedTypes#constructor - local.set $1 - local.get $1 + local.set $2 + local.get $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=4 - local.get $1 + local.get $2 i64.const 0 i64.store offset=8 - local.get $1 + local.get $2 i64.const 0 i64.store offset=16 - local.get $1 + local.get $2 f32.const 0 f32.store offset=24 - local.get $1 + local.get $2 f64.const 0 f64.store offset=32 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=40 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=41 - local.get $1 + local.get $2 i32.const 0 i32.store16 offset=42 - local.get $1 + local.get $2 i32.const 0 i32.store16 offset=44 - local.get $1 + local.get $2 i32.const 0 i32.store offset=48 - local.get $1 + local.get $2 i32.const 0 i32.store offset=52 - local.get $1 + local.get $2 f64.const 0 f64.store offset=56 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=64 - local.get $1 + local.get $2 call $object-literal/testOmittedTypes i32.const 0 call $object-literal/MixedOmitted#constructor - local.set $2 - local.get $2 + local.set $3 + local.get $3 i32.const 0 i32.store - local.get $2 + local.get $3 i32.const 352 i32.store offset=4 - local.get $2 + local.get $3 f64.const 0 f64.store offset=8 - local.get $2 + local.get $3 call $object-literal/testMixedOmitted i32.const 0 call $object-literal/OmittedFoo#constructor - local.set $3 - local.get $3 + local.set $4 + local.get $4 i32.const 0 i32.store offset=8 - local.get $3 + local.get $4 i32.const 0 i32.store offset=12 - local.get $3 + local.get $4 i32.const 0 i32.store offset=16 - local.get $3 + local.get $4 i32.const 0 i32.store offset=20 - local.get $3 + local.get $4 i32.const 0 i32.store offset=24 - local.get $3 + local.get $4 i32.const 0 i32.store offset=28 - local.get $3 + local.get $4 i32.const 0 i32.store offset=32 - local.get $3 + local.get $4 call $object-literal/testOmittedFoo local.get $0 call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release ) (func $~start global.get $~started diff --git a/tests/compiler/optional-typeparameters.untouched.wat b/tests/compiler/optional-typeparameters.untouched.wat index 0e4f058695..060ddba488 100644 --- a/tests/compiler/optional-typeparameters.untouched.wat +++ b/tests/compiler/optional-typeparameters.untouched.wat @@ -26,6 +26,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -56,8 +57,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s diff --git a/tests/compiler/overflow.untouched.wat b/tests/compiler/overflow.untouched.wat index 4b9a74b4cb..4308562a34 100644 --- a/tests/compiler/overflow.untouched.wat +++ b/tests/compiler/overflow.untouched.wat @@ -11,6 +11,19 @@ (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) i32.const 127 local.set $0 local.get $0 @@ -77,11 +90,11 @@ unreachable end local.get $0 - local.tee $2 + local.tee $3 i32.const 1 i32.sub local.set $0 - local.get $2 + local.get $3 local.set $1 local.get $0 i32.const 24 @@ -200,12 +213,12 @@ unreachable end i32.const 32767 - local.set $1 - local.get $1 + local.set $4 + local.get $4 i32.const 1 i32.add - local.set $1 - local.get $1 + local.set $4 + local.get $4 i32.const 16 i32.shl i32.const 16 @@ -221,11 +234,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.sub - local.set $1 - local.get $1 + local.set $4 + local.get $4 i32.const 16 i32.shl i32.const 16 @@ -241,14 +254,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.tee $2 + local.get $4 + local.tee $6 i32.const 1 i32.add - local.set $1 - local.get $2 - local.set $0 - local.get $1 + local.set $4 + local.get $6 + local.set $5 + local.get $4 i32.const 16 i32.shl i32.const 16 @@ -264,14 +277,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.tee $2 + local.get $4 + local.tee $7 i32.const 1 i32.sub - local.set $1 - local.get $2 - local.set $0 - local.get $1 + local.set $4 + local.get $7 + local.set $5 + local.get $4 i32.const 16 i32.shl i32.const 16 @@ -287,11 +300,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 - local.get $1 + local.set $4 + local.get $4 i32.const 16 i32.shl i32.const 16 @@ -307,11 +320,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.sub - local.set $1 - local.get $1 + local.set $4 + local.get $4 i32.const 16 i32.shl i32.const 16 @@ -327,12 +340,12 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.tee $1 - local.set $0 - local.get $1 + local.tee $4 + local.set $5 + local.get $4 i32.const 16 i32.shl i32.const 16 @@ -348,12 +361,12 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.sub - local.tee $1 - local.set $0 - local.get $1 + local.tee $4 + local.set $5 + local.get $4 i32.const 16 i32.shl i32.const 16 @@ -369,7 +382,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add i32.const 16 @@ -388,12 +401,12 @@ unreachable end i32.const 0 - local.set $0 - local.get $0 + local.set $8 + local.get $8 i32.const 1 i32.sub - local.set $0 - local.get $0 + local.set $8 + local.get $8 i32.const 255 i32.and i32.const 255 @@ -407,11 +420,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 - local.get $0 + local.set $8 + local.get $8 i32.const 255 i32.and i32.const 0 @@ -425,14 +438,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.tee $2 + local.get $8 + local.tee $10 i32.const 1 i32.sub - local.set $0 - local.get $2 - local.set $1 - local.get $0 + local.set $8 + local.get $10 + local.set $9 + local.get $8 i32.const 255 i32.and i32.const 255 @@ -446,14 +459,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.tee $2 + local.get $8 + local.tee $11 i32.const 1 i32.add - local.set $0 - local.get $2 - local.set $1 - local.get $0 + local.set $8 + local.get $11 + local.set $9 + local.get $8 i32.const 255 i32.and i32.const 0 @@ -467,11 +480,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $8 i32.const 1 i32.sub - local.set $0 - local.get $0 + local.set $8 + local.get $8 i32.const 255 i32.and i32.const 255 @@ -485,11 +498,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 - local.get $0 + local.set $8 + local.get $8 i32.const 255 i32.and i32.const 0 @@ -503,12 +516,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $8 i32.const 1 i32.sub - local.tee $0 - local.set $1 - local.get $0 + local.tee $8 + local.set $9 + local.get $8 i32.const 255 i32.and i32.const 255 @@ -522,12 +535,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $8 i32.const 1 i32.add - local.tee $0 - local.set $1 - local.get $0 + local.tee $8 + local.set $9 + local.get $8 i32.const 255 i32.and i32.const 0 @@ -541,7 +554,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $8 i32.const 1 i32.sub i32.const 255 @@ -558,12 +571,12 @@ unreachable end i32.const 0 - local.set $1 - local.get $1 + local.set $12 + local.get $12 i32.const 1 i32.sub - local.set $1 - local.get $1 + local.set $12 + local.get $12 i32.const 65535 i32.and i32.const 65535 @@ -577,11 +590,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $12 i32.const 1 i32.add - local.set $1 - local.get $1 + local.set $12 + local.get $12 i32.const 65535 i32.and i32.const 0 @@ -595,14 +608,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.tee $2 + local.get $12 + local.tee $14 i32.const 1 i32.sub - local.set $1 - local.get $2 - local.set $0 - local.get $1 + local.set $12 + local.get $14 + local.set $13 + local.get $12 i32.const 65535 i32.and i32.const 65535 @@ -616,14 +629,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.tee $2 + local.get $12 + local.tee $15 i32.const 1 i32.add - local.set $1 - local.get $2 - local.set $0 - local.get $1 + local.set $12 + local.get $15 + local.set $13 + local.get $12 i32.const 65535 i32.and i32.const 0 @@ -637,11 +650,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $12 i32.const 1 i32.sub - local.set $1 - local.get $1 + local.set $12 + local.get $12 i32.const 65535 i32.and i32.const 65535 @@ -655,11 +668,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $12 i32.const 1 i32.add - local.set $1 - local.get $1 + local.set $12 + local.get $12 i32.const 65535 i32.and i32.const 0 @@ -673,12 +686,12 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $12 i32.const 1 i32.sub - local.tee $1 - local.set $0 - local.get $1 + local.tee $12 + local.set $13 + local.get $12 i32.const 65535 i32.and i32.const 65535 @@ -692,12 +705,12 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $12 i32.const 1 i32.add - local.tee $1 - local.set $0 - local.get $1 + local.tee $12 + local.set $13 + local.get $12 i32.const 65535 i32.and i32.const 0 @@ -711,7 +724,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $12 i32.const 1 i32.sub i32.const 65535 diff --git a/tests/compiler/rc/global-init.untouched.wat b/tests/compiler/rc/global-init.untouched.wat index 5e52828faa..4d1350412f 100644 --- a/tests/compiler/rc/global-init.untouched.wat +++ b/tests/compiler/rc/global-init.untouched.wat @@ -102,6 +102,8 @@ (func $start:rc/global-init (local $0 i32) (local $1 i32) + (local $2 i32) + (local $3 i32) call $rc/global-init/getRef global.set $rc/global-init/a call $rc/global-init/getRef @@ -121,18 +123,18 @@ local.get $0 global.set $rc/global-init/a i32.const 0 - local.tee $1 + local.tee $2 global.get $rc/global-init/b - local.tee $0 + local.tee $3 i32.ne if - local.get $1 + local.get $2 call $~lib/rt/pure/__retain - local.set $1 - local.get $0 + local.set $2 + local.get $3 call $~lib/rt/pure/__release end - local.get $1 + local.get $2 global.set $rc/global-init/b ) (func $~start @@ -149,6 +151,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -285,59 +296,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -367,6 +378,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -429,8 +454,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -441,16 +466,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -468,18 +493,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -491,7 +516,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -504,23 +529,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -534,14 +559,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -561,7 +586,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -579,24 +604,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -604,21 +629,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -634,86 +659,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) diff --git a/tests/compiler/rc/local-init.untouched.wat b/tests/compiler/rc/local-init.untouched.wat index 3f346a5bc7..fcdebfaf2b 100644 --- a/tests/compiler/rc/local-init.untouched.wat +++ b/tests/compiler/rc/local-init.untouched.wat @@ -51,6 +51,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -187,59 +196,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -269,6 +278,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -331,8 +354,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -343,16 +366,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -370,18 +393,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -393,7 +416,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -406,23 +429,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -436,14 +459,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -463,7 +486,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -481,24 +504,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -506,21 +529,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -536,86 +559,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -626,6 +649,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -765,11 +789,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -789,6 +813,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -845,66 +875,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -917,11 +947,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -970,6 +1000,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1043,11 +1081,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1058,10 +1096,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1074,30 +1112,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1108,45 +1146,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1155,6 +1193,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1201,15 +1240,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1223,12 +1262,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1238,6 +1277,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1302,11 +1343,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1314,11 +1355,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -1547,18 +1588,20 @@ ) (func $start:rc/local-init (local $0 i32) + (local $1 i32) + (local $2 i32) i32.const 32 local.set $0 local.get $0 call $~lib/rt/pure/__release call $rc/local-init/getRef - local.set $0 - local.get $0 + local.set $1 + local.get $1 call $~lib/rt/pure/__release i32.const 0 call $rc/local-init/Ref#constructor - local.set $0 - local.get $0 + local.set $2 + local.get $2 call $~lib/rt/pure/__release ) (func $~start diff --git a/tests/compiler/rc/logical-and-mismatch.untouched.wat b/tests/compiler/rc/logical-and-mismatch.untouched.wat index 75a31a6e5d..2402cd164c 100644 --- a/tests/compiler/rc/logical-and-mismatch.untouched.wat +++ b/tests/compiler/rc/logical-and-mismatch.untouched.wat @@ -37,6 +37,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -173,59 +182,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -255,6 +264,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -317,8 +340,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -329,16 +352,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -356,18 +379,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -379,7 +402,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -392,23 +415,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -422,14 +445,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -449,7 +472,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -467,24 +490,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -492,21 +515,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -522,86 +545,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -612,6 +635,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -751,11 +775,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -775,6 +799,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -831,66 +861,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -903,11 +933,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -956,6 +986,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1029,11 +1067,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1044,10 +1082,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1060,30 +1098,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1094,45 +1132,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1141,6 +1179,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1187,15 +1226,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1209,12 +1248,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1224,6 +1263,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1288,11 +1329,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1300,11 +1341,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -1548,6 +1589,13 @@ ) (func $start:rc/logical-and-mismatch (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) i32.const 0 call $rc/logical-and-mismatch/Ref#constructor global.set $rc/logical-and-mismatch/gloRef @@ -1561,42 +1609,42 @@ else local.get $0 end - local.set $0 - local.get $0 + local.set $1 + local.get $1 call $~lib/rt/pure/__release global.get $rc/logical-and-mismatch/gloRef - local.tee $0 + local.tee $2 if (result i32) call $rc/logical-and-mismatch/getRef else - local.get $0 + local.get $2 call $~lib/rt/pure/__retain end - local.set $0 - local.get $0 + local.set $3 + local.get $3 call $~lib/rt/pure/__release call $rc/logical-and-mismatch/getRef - local.tee $0 + local.tee $4 if (result i32) - local.get $0 + local.get $4 call $~lib/rt/pure/__release call $rc/logical-and-mismatch/getRef else - local.get $0 + local.get $4 end - local.set $0 - local.get $0 + local.set $5 + local.get $5 call $~lib/rt/pure/__release global.get $rc/logical-and-mismatch/gloRef - local.tee $0 + local.tee $6 if (result i32) global.get $rc/logical-and-mismatch/gloRef else - local.get $0 + local.get $6 end call $~lib/rt/pure/__retain - local.set $0 - local.get $0 + local.set $7 + local.get $7 call $~lib/rt/pure/__release global.get $rc/logical-and-mismatch/gloRef call $~lib/rt/pure/__release diff --git a/tests/compiler/rc/logical-or-mismatch.untouched.wat b/tests/compiler/rc/logical-or-mismatch.untouched.wat index 05b2addd50..e6c442c239 100644 --- a/tests/compiler/rc/logical-or-mismatch.untouched.wat +++ b/tests/compiler/rc/logical-or-mismatch.untouched.wat @@ -37,6 +37,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -173,59 +182,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -255,6 +264,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -317,8 +340,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -329,16 +352,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -356,18 +379,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -379,7 +402,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -392,23 +415,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -422,14 +445,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -449,7 +472,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -467,24 +490,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -492,21 +515,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -522,86 +545,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -612,6 +635,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -751,11 +775,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -775,6 +799,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -831,66 +861,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -903,11 +933,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -956,6 +986,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1029,11 +1067,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1044,10 +1082,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1060,30 +1098,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1094,45 +1132,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1141,6 +1179,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1187,15 +1226,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1209,12 +1248,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1224,6 +1263,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1288,11 +1329,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1300,11 +1341,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -1548,6 +1589,13 @@ ) (func $start:rc/logical-or-mismatch (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) i32.const 0 call $rc/logical-or-mismatch/Ref#constructor global.set $rc/logical-or-mismatch/gloRef @@ -1561,42 +1609,42 @@ global.get $rc/logical-or-mismatch/gloRef call $~lib/rt/pure/__retain end - local.set $0 - local.get $0 + local.set $1 + local.get $1 call $~lib/rt/pure/__release global.get $rc/logical-or-mismatch/gloRef - local.tee $0 + local.tee $2 if (result i32) - local.get $0 + local.get $2 call $~lib/rt/pure/__retain else call $rc/logical-or-mismatch/getRef end - local.set $0 - local.get $0 + local.set $3 + local.get $3 call $~lib/rt/pure/__release call $rc/logical-or-mismatch/getRef - local.tee $0 + local.tee $4 if (result i32) - local.get $0 + local.get $4 else - local.get $0 + local.get $4 call $~lib/rt/pure/__release call $rc/logical-or-mismatch/getRef end - local.set $0 - local.get $0 + local.set $5 + local.get $5 call $~lib/rt/pure/__release global.get $rc/logical-or-mismatch/gloRef - local.tee $0 + local.tee $6 if (result i32) - local.get $0 + local.get $6 else global.get $rc/logical-or-mismatch/gloRef end call $~lib/rt/pure/__retain - local.set $0 - local.get $0 + local.set $7 + local.get $7 call $~lib/rt/pure/__release global.get $rc/logical-or-mismatch/gloRef call $~lib/rt/pure/__release diff --git a/tests/compiler/rc/optimize.untouched.wat b/tests/compiler/rc/optimize.untouched.wat index 2504b02101..64c026076d 100644 --- a/tests/compiler/rc/optimize.untouched.wat +++ b/tests/compiler/rc/optimize.untouched.wat @@ -140,6 +140,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -276,59 +285,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -358,6 +367,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -420,8 +443,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -432,16 +455,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -459,18 +482,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -482,7 +505,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -495,23 +518,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -525,14 +548,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -552,7 +575,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -570,24 +593,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -595,21 +618,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -625,86 +648,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -715,6 +738,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -854,11 +878,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -878,6 +902,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -934,66 +964,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -1006,11 +1036,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -1059,6 +1089,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1132,11 +1170,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1147,10 +1185,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1163,30 +1201,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1197,45 +1235,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1244,6 +1282,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1290,15 +1329,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1312,12 +1351,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1327,6 +1366,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1391,11 +1432,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1403,11 +1444,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 diff --git a/tests/compiler/rc/rereturn.untouched.wat b/tests/compiler/rc/rereturn.untouched.wat index 86eaab64c7..edc17eeee1 100644 --- a/tests/compiler/rc/rereturn.untouched.wat +++ b/tests/compiler/rc/rereturn.untouched.wat @@ -39,6 +39,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -175,59 +184,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -257,6 +266,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -319,8 +342,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -331,16 +354,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -358,18 +381,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -381,7 +404,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -394,23 +417,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -424,14 +447,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -451,7 +474,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -469,24 +492,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -494,21 +517,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -524,86 +547,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -614,6 +637,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -753,11 +777,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -777,6 +801,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -833,66 +863,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -905,11 +935,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -958,6 +988,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1031,11 +1069,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1046,10 +1084,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1062,30 +1100,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1096,45 +1134,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1143,6 +1181,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1189,15 +1228,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1211,12 +1250,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1226,6 +1265,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1290,11 +1331,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1302,11 +1343,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 diff --git a/tests/compiler/rc/ternary-mismatch.untouched.wat b/tests/compiler/rc/ternary-mismatch.untouched.wat index f502716e41..2c15ef5309 100644 --- a/tests/compiler/rc/ternary-mismatch.untouched.wat +++ b/tests/compiler/rc/ternary-mismatch.untouched.wat @@ -39,6 +39,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -175,59 +184,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -257,6 +266,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -319,8 +342,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -331,16 +354,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -358,18 +381,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -381,7 +404,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -394,23 +417,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -424,14 +447,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -451,7 +474,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -469,24 +492,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -494,21 +517,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -524,86 +547,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -614,6 +637,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -753,11 +777,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -777,6 +801,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -833,66 +863,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -905,11 +935,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -958,6 +988,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1031,11 +1069,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1046,10 +1084,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1062,30 +1100,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1096,45 +1134,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1143,6 +1181,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1189,15 +1228,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1211,12 +1250,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1226,6 +1265,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1290,11 +1331,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1302,11 +1343,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 diff --git a/tests/compiler/resolve-access.untouched.wat b/tests/compiler/resolve-access.untouched.wat index 2cae5daf52..d9c3552219 100644 --- a/tests/compiler/resolve-access.untouched.wat +++ b/tests/compiler/resolve-access.untouched.wat @@ -35,6 +35,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -65,8 +66,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -143,6 +144,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -162,11 +245,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -186,8 +269,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -296,17 +379,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -323,16 +406,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -342,45 +425,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -391,8 +474,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -477,31 +560,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -512,8 +595,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -598,17 +681,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -619,8 +702,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -707,227 +790,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -936,115 +1019,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -1053,59 +1136,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -1114,31 +1197,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -1147,17 +1230,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -1168,6 +1251,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -1245,11 +1336,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -1259,8 +1350,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -1284,21 +1375,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -1327,8 +1418,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -1353,8 +1444,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -1374,8 +1465,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -1540,6 +1631,9 @@ (local $9 i64) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) loop $while-continue|0 local.get $1 i32.const 10000 @@ -1604,30 +1698,30 @@ local.get $1 i32.const 100 i32.div_u - local.set $3 + local.set $10 local.get $1 i32.const 100 i32.rem_u - local.set $10 - local.get $3 + local.set $11 + local.get $10 local.set $1 local.get $2 i32.const 2 i32.sub local.set $2 i32.const 180 - local.get $10 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $12 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $12 i32.store end local.get $1 @@ -1644,13 +1738,13 @@ i32.shl i32.add i32.load - local.set $11 + local.set $13 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $13 i32.store else local.get $2 @@ -1660,13 +1754,13 @@ i32.const 48 local.get $1 i32.add - local.set $11 + local.set $14 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $14 i32.store16 end ) @@ -1859,7 +1953,10 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i64) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) local.get $0 i64.const 0 i64.ne @@ -1902,26 +1999,26 @@ else local.get $0 call $~lib/util/number/decimalCount64High - local.set $3 - local.get $3 + local.set $7 + local.get $7 i32.const 1 i32.shl i32.const 1 call $~lib/rt/stub/__alloc local.set $1 local.get $1 - local.set $5 + local.set $10 local.get $0 - local.set $7 - local.get $3 - local.set $4 + local.set $9 + local.get $7 + local.set $8 i32.const 0 i32.const 1 i32.ge_s drop - local.get $5 - local.get $7 - local.get $4 + local.get $10 + local.get $9 + local.get $8 call $~lib/util/number/utoa64_lut end local.get $1 @@ -1951,21 +2048,23 @@ (func $resolve-access/arrayAccess (result i32) (local $0 i32) (local $1 i32) + (local $2 i32) + (local $3 i32) i32.const 1 i32.const 3 i32.const 3 i32.const 32 call $~lib/rt/__allocArray call $~lib/rt/stub/__retain - local.set $1 - local.get $1 + local.set $2 + local.get $2 i32.const 0 call $~lib/array/Array#__get call $~lib/number/U64#toString - local.set $0 - local.get $1 + local.set $3 + local.get $2 call $~lib/rt/stub/__release - local.get $0 + local.get $3 ) (func $resolve-access/Container#constructor (param $0 i32) (result i32) local.get $0 diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index bbc14781d5..295f84cb01 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -361,8 +361,8 @@ ) (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (result i32) (local $6 i32) - (local $7 i64) - (local $8 i32) + (local $7 i32) + (local $8 i64) (local $9 i64) (local $10 i32) (local $11 i64) @@ -384,7 +384,7 @@ i64.sub local.tee $12 i64.and - local.set $7 + local.set $8 local.get $3 local.get $10 i64.extend_i32_s @@ -518,11 +518,11 @@ local.set $2 end local.get $2 - local.get $8 + local.get $7 i32.or if local.get $0 - local.get $8 + local.get $7 i32.const 1 i32.shl i32.add @@ -532,16 +532,16 @@ i32.const 48 i32.add i32.store16 - local.get $8 + local.get $7 i32.const 1 i32.add - local.set $8 + local.set $7 end local.get $4 i32.const 1 i32.sub local.set $4 - local.get $7 + local.get $8 local.get $6 i64.extend_i32_u local.get $10 @@ -567,7 +567,7 @@ i64.shl local.set $3 local.get $0 - local.get $8 + local.get $7 i32.const 1 i32.sub i32.const 1 @@ -584,11 +584,11 @@ local.get $1 local.get $3 i64.add - local.tee $7 + local.tee $8 local.get $9 i64.sub i64.gt_u - local.get $7 + local.get $8 local.get $9 i64.lt_u select @@ -619,7 +619,7 @@ local.get $0 local.get $4 i32.store16 - local.get $8 + local.get $7 return end br $while-continue|0 @@ -633,35 +633,35 @@ i64.const 10 i64.mul local.set $5 - local.get $7 + local.get $8 i64.const 10 i64.mul local.tee $3 local.get $1 i64.shr_u - local.tee $7 - local.get $8 + local.tee $8 + local.get $7 i64.extend_i32_s i64.or i64.const 0 i64.ne if local.get $0 - local.get $8 + local.get $7 i32.const 1 i32.shl i32.add - local.get $7 + local.get $8 i32.wrap_i64 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $8 + local.get $7 i32.const 1 i32.add - local.set $8 + local.set $7 end local.get $4 i32.const 1 @@ -670,7 +670,7 @@ local.get $3 local.get $12 i64.and - local.tee $7 + local.tee $8 local.get $5 i64.ge_u br_if $while-continue|4 @@ -679,8 +679,6 @@ global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $7 - local.set $1 local.get $9 i32.const 0 local.get $4 @@ -691,9 +689,9 @@ i32.add i64.load32_u i64.mul - local.set $3 + local.set $1 local.get $0 - local.get $8 + local.get $7 i32.const 1 i32.sub i32.const 1 @@ -704,29 +702,29 @@ local.set $4 loop $while-continue|6 i32.const 1 - local.get $3 local.get $1 + local.get $8 i64.sub - local.get $1 + local.get $8 local.get $11 i64.add - local.tee $7 - local.get $3 + local.tee $3 + local.get $1 i64.sub i64.gt_u - local.get $7 local.get $3 + local.get $1 i64.lt_u select i32.const 0 local.get $5 - local.get $1 + local.get $8 i64.sub local.get $11 i64.ge_u i32.const 0 + local.get $8 local.get $1 - local.get $3 i64.lt_u select select @@ -735,17 +733,17 @@ i32.const 1 i32.sub local.set $4 - local.get $1 + local.get $8 local.get $11 i64.add - local.set $1 + local.set $8 br $while-continue|6 end end local.get $0 local.get $4 i32.store16 - local.get $8 + local.get $7 ) (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) diff --git a/tests/compiler/resolve-binary.untouched.wat b/tests/compiler/resolve-binary.untouched.wat index 9e716591e0..7dc12c6853 100644 --- a/tests/compiler/resolve-binary.untouched.wat +++ b/tests/compiler/resolve-binary.untouched.wat @@ -97,6 +97,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -168,33 +171,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $10 + local.get $12 return end local.get $5 @@ -209,16 +212,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -250,44 +256,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $6 ) (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) local.get $0 @@ -350,6 +356,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -380,8 +387,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -463,6 +470,9 @@ (local $9 i64) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) loop $while-continue|0 local.get $1 i32.const 10000 @@ -527,30 +537,30 @@ local.get $1 i32.const 100 i32.div_u - local.set $3 + local.set $10 local.get $1 i32.const 100 i32.rem_u - local.set $10 - local.get $3 + local.set $11 + local.get $10 local.set $1 local.get $2 i32.const 2 i32.sub local.set $2 i32.const 196 - local.get $10 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $12 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $12 i32.store end local.get $1 @@ -567,13 +577,13 @@ i32.shl i32.add i32.load - local.set $11 + local.set $13 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $13 i32.store else local.get $2 @@ -583,13 +593,13 @@ i32.const 48 local.get $1 i32.add - local.set $11 + local.set $14 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $14 i32.store16 end ) @@ -678,18 +688,18 @@ (local $7 i64) (local $8 i64) (local $9 i64) - (local $10 f64) - (local $11 i64) - (local $12 i32) + (local $10 i64) + (local $11 f64) + (local $12 i64) (local $13 i64) (local $14 i64) - (local $15 f64) - (local $16 f64) - (local $17 f64) - (local $18 f64) - (local $19 f64) - (local $20 f64) - (local $21 f64) + (local $15 i64) + (local $16 i32) + (local $17 i64) + (local $18 i64) + (local $19 i32) + (local $20 i64) + (local $21 i64) (local $22 f64) (local $23 f64) (local $24 f64) @@ -707,12 +717,52 @@ (local $36 f64) (local $37 f64) (local $38 f64) - (local $39 i32) - (local $40 i32) - (local $41 i32) - (local $42 i32) - (local $43 i64) - (local $44 i64) + (local $39 f64) + (local $40 f64) + (local $41 f64) + (local $42 f64) + (local $43 f64) + (local $44 f64) + (local $45 f64) + (local $46 f64) + (local $47 f64) + (local $48 f64) + (local $49 f64) + (local $50 f64) + (local $51 f64) + (local $52 f64) + (local $53 f64) + (local $54 f64) + (local $55 i32) + (local $56 f64) + (local $57 f64) + (local $58 i32) + (local $59 i64) + (local $60 i64) + (local $61 i64) + (local $62 i32) + (local $63 f64) + (local $64 f64) + (local $65 f64) + (local $66 f64) + (local $67 f64) + (local $68 f64) + (local $69 f64) + (local $70 i64) + (local $71 i32) + (local $72 f64) + (local $73 i32) + (local $74 i32) + (local $75 f64) + (local $76 i32) + (local $77 i64) + (local $78 i64) + (local $79 f64) + (local $80 f64) + (local $81 f64) + (local $82 f64) + (local $83 f64) + (local $84 f64) local.get $1 f64.abs f64.const 2 @@ -891,8 +941,8 @@ br $~lib/util/math/pow_lut|inlined.0 end local.get $5 - local.set $9 - local.get $9 + local.set $10 + local.get $10 i64.const 1 i64.shl i64.const 1 @@ -905,7 +955,7 @@ local.get $3 local.get $3 f64.mul - local.set $10 + local.set $11 local.get $5 i64.const 63 i64.shr_u @@ -913,21 +963,21 @@ if (result i32) block $~lib/util/math/checkint|inlined.0 (result i32) local.get $6 - local.set $9 - local.get $9 + local.set $12 + local.get $12 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.set $11 - local.get $11 + local.set $13 + local.get $13 i64.const 1023 i64.lt_u if i32.const 0 br $~lib/util/math/checkint|inlined.0 end - local.get $11 + local.get $13 i64.const 1023 i64.const 52 i64.add @@ -940,12 +990,12 @@ i64.const 1023 i64.const 52 i64.add - local.get $11 + local.get $13 i64.sub i64.shl - local.set $11 - local.get $9 - local.get $11 + local.set $13 + local.get $12 + local.get $13 i64.const 1 i64.sub i64.and @@ -955,8 +1005,8 @@ i32.const 0 br $~lib/util/math/checkint|inlined.0 end - local.get $9 - local.get $11 + local.get $12 + local.get $13 i64.and i64.const 0 i64.ne @@ -972,9 +1022,9 @@ i32.const 0 end if - local.get $10 + local.get $11 f64.neg - local.set $10 + local.set $11 end local.get $6 i64.const 63 @@ -983,10 +1033,10 @@ i64.ne if (result f64) f64.const 1 - local.get $10 + local.get $11 f64.div else - local.get $10 + local.get $11 end br $~lib/util/math/pow_lut|inlined.0 end @@ -998,21 +1048,21 @@ if block $~lib/util/math/checkint|inlined.1 (result i32) local.get $6 - local.set $9 - local.get $9 + local.set $14 + local.get $14 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.set $11 - local.get $11 + local.set $15 + local.get $15 i64.const 1023 i64.lt_u if i32.const 0 br $~lib/util/math/checkint|inlined.1 end - local.get $11 + local.get $15 i64.const 1023 i64.const 52 i64.add @@ -1025,12 +1075,12 @@ i64.const 1023 i64.const 52 i64.add - local.get $11 + local.get $15 i64.sub i64.shl - local.set $11 - local.get $9 - local.get $11 + local.set $15 + local.get $14 + local.get $15 i64.const 1 i64.sub i64.and @@ -1040,8 +1090,8 @@ i32.const 0 br $~lib/util/math/checkint|inlined.1 end - local.get $9 - local.get $11 + local.get $14 + local.get $15 i64.and i64.const 0 i64.ne @@ -1051,8 +1101,8 @@ end i32.const 2 end - local.set $12 - local.get $12 + local.set $16 + local.get $16 i32.const 0 i32.eq if @@ -1065,7 +1115,7 @@ f64.div br $~lib/util/math/pow_lut|inlined.0 end - local.get $12 + local.get $16 i32.const 1 i32.eq if @@ -1143,12 +1193,12 @@ end end local.get $5 - local.set $9 - local.get $9 + local.set $17 + local.get $17 i64.const 4604531861337669632 i64.sub - local.set $11 - local.get $11 + local.set $18 + local.get $18 i64.const 52 i64.const 7 i64.sub @@ -1156,150 +1206,150 @@ i64.const 127 i64.and i32.wrap_i64 - local.set $12 - local.get $11 + local.set $19 + local.get $18 i64.const 52 i64.shr_s - local.set $13 - local.get $9 - local.get $11 + local.set $20 + local.get $17 + local.get $18 i64.const 4095 i64.const 52 i64.shl i64.and i64.sub - local.set $14 - local.get $14 + local.set $21 + local.get $21 f64.reinterpret_i64 - local.set $10 - local.get $13 + local.set $22 + local.get $20 f64.convert_i64_s - local.set $15 + local.set $23 i32.const 664 - local.get $12 + local.get $19 i32.const 2 i32.const 3 i32.add i32.shl i32.add f64.load - local.set $16 + local.set $24 i32.const 664 - local.get $12 + local.get $19 i32.const 2 i32.const 3 i32.add i32.shl i32.add f64.load offset=16 - local.set $17 + local.set $25 i32.const 664 - local.get $12 + local.get $19 i32.const 2 i32.const 3 i32.add i32.shl i32.add f64.load offset=24 - local.set $18 - local.get $14 + local.set $26 + local.get $21 i64.const 2147483648 i64.add i64.const -4294967296 i64.and f64.reinterpret_i64 - local.set $19 - local.get $10 - local.get $19 + local.set $27 + local.get $22 + local.get $27 f64.sub - local.set $20 - local.get $19 - local.get $16 + local.set $28 + local.get $27 + local.get $24 f64.mul f64.const 1 f64.sub - local.set $21 - local.get $20 - local.get $16 + local.set $29 + local.get $28 + local.get $24 f64.mul - local.set $22 - local.get $21 - local.get $22 + local.set $30 + local.get $29 + local.get $30 f64.add - local.set $23 - local.get $15 + local.set $31 + local.get $23 f64.const 0.6931471805598903 f64.mul - local.get $17 + local.get $25 f64.add - local.set $24 - local.get $24 - local.get $23 + local.set $32 + local.get $32 + local.get $31 f64.add - local.set $25 - local.get $15 + local.set $33 + local.get $23 f64.const 5.497923018708371e-14 f64.mul - local.get $18 + local.get $26 f64.add - local.set $26 - local.get $24 - local.get $25 + local.set $34 + local.get $32 + local.get $33 f64.sub - local.get $23 + local.get $31 f64.add - local.set $27 + local.set $35 f64.const -0.5 - local.get $23 + local.get $31 f64.mul - local.set $28 - local.get $23 - local.get $28 + local.set $36 + local.get $31 + local.get $36 f64.mul - local.set $29 - local.get $23 - local.get $29 + local.set $37 + local.get $31 + local.get $37 f64.mul - local.set $30 + local.set $38 f64.const -0.5 - local.get $21 + local.get $29 f64.mul - local.set $31 - local.get $21 - local.get $31 + local.set $39 + local.get $29 + local.get $39 f64.mul - local.set $32 - local.get $25 - local.get $32 + local.set $40 + local.get $33 + local.get $40 f64.add - local.set $33 - local.get $22 - local.get $28 - local.get $31 + local.set $41 + local.get $30 + local.get $36 + local.get $39 f64.add f64.mul - local.set $34 - local.get $25 + local.set $42 local.get $33 + local.get $41 f64.sub - local.get $32 + local.get $40 f64.add - local.set $35 - local.get $30 + local.set $43 + local.get $38 f64.const -0.6666666666666679 - local.get $23 + local.get $31 f64.const 0.5000000000000007 f64.mul f64.add - local.get $29 + local.get $37 f64.const 0.7999999995323976 - local.get $23 + local.get $31 f64.const -0.6666666663487739 f64.mul f64.add - local.get $29 + local.get $37 f64.const -1.142909628459501 - local.get $23 + local.get $31 f64.const 1.0000415263675542 f64.mul f64.add @@ -1308,88 +1358,88 @@ f64.mul f64.add f64.mul - local.set $36 - local.get $26 - local.get $27 - f64.add + local.set $44 local.get $34 - f64.add local.get $35 f64.add - local.get $36 + local.get $42 f64.add - local.set $37 - local.get $33 - local.get $37 + local.get $43 f64.add - local.set $38 - local.get $33 - local.get $38 + local.get $44 + f64.add + local.set $45 + local.get $41 + local.get $45 + f64.add + local.set $46 + local.get $41 + local.get $46 f64.sub - local.get $37 + local.get $45 f64.add global.set $~lib/util/math/log_tail - local.get $38 - local.set $38 + local.get $46 + local.set $47 global.get $~lib/util/math/log_tail - local.set $37 + local.set $48 local.get $6 i64.const -134217728 i64.and f64.reinterpret_i64 - local.set $34 + local.set $51 local.get $2 - local.get $34 + local.get $51 f64.sub - local.set $33 - local.get $38 + local.set $52 + local.get $47 i64.reinterpret_f64 i64.const -134217728 i64.and f64.reinterpret_i64 - local.set $32 - local.get $38 - local.get $32 + local.set $53 + local.get $47 + local.get $53 f64.sub - local.get $37 + local.get $48 f64.add - local.set $31 - local.get $34 - local.get $32 + local.set $54 + local.get $51 + local.get $53 f64.mul - local.set $36 - local.get $33 - local.get $32 + local.set $49 + local.get $52 + local.get $53 f64.mul local.get $2 - local.get $31 + local.get $54 f64.mul f64.add - local.set $35 + local.set $50 block $~lib/util/math/exp_inline|inlined.0 (result f64) - local.get $36 - local.set $15 - local.get $35 - local.set $10 + local.get $49 + local.set $57 + local.get $50 + local.set $56 local.get $4 - local.set $12 - local.get $15 + local.set $55 + local.get $57 i64.reinterpret_f64 - local.set $9 - local.get $9 + local.set $70 + local.get $70 i64.const 52 i64.shr_u i32.wrap_i64 i32.const 2047 i32.and - local.set $39 - local.get $39 + local.set $58 + local.get $58 i32.const 969 i32.sub i32.const 63 i32.ge_u if - local.get $39 + local.get $58 i32.const 969 i32.sub i32.const -2147483648 @@ -1397,252 +1447,252 @@ if f64.const -1 f64.const 1 - local.get $12 + local.get $55 select br $~lib/util/math/exp_inline|inlined.0 end - local.get $39 + local.get $58 i32.const 1033 i32.ge_u if - local.get $9 + local.get $70 i64.const 63 i64.shr_u i64.const 0 i64.ne if (result f64) - local.get $12 - local.set $41 - local.get $41 - local.set $42 + local.get $55 + local.set $71 + local.get $71 + local.set $73 i64.const 1152921504606846976 f64.reinterpret_i64 - local.set $16 - local.get $16 + local.set $72 + local.get $72 f64.neg - local.get $16 - local.get $42 + local.get $72 + local.get $73 select - local.get $16 + local.get $72 f64.mul else - local.get $12 - local.set $42 - local.get $42 - local.set $41 + local.get $55 + local.set $74 + local.get $74 + local.set $76 i64.const 8070450532247928832 f64.reinterpret_i64 - local.set $17 - local.get $17 + local.set $75 + local.get $75 f64.neg - local.get $17 - local.get $41 + local.get $75 + local.get $76 select - local.get $17 + local.get $75 f64.mul end br $~lib/util/math/exp_inline|inlined.0 end i32.const 0 - local.set $39 + local.set $58 end f64.const 184.6649652337873 - local.get $15 + local.get $57 f64.mul - local.set $29 - local.get $29 + local.set $64 + local.get $64 f64.const 6755399441055744 f64.add - local.set $30 - local.get $30 + local.set $63 + local.get $63 i64.reinterpret_f64 - local.set $14 - local.get $30 + local.set $59 + local.get $63 f64.const 6755399441055744 f64.sub - local.set $30 - local.get $15 - local.get $30 + local.set $63 + local.get $57 + local.get $63 f64.const -0.005415212348111709 f64.mul f64.add - local.get $30 + local.get $63 f64.const -1.2864023111638346e-14 f64.mul f64.add - local.set $28 - local.get $28 - local.get $10 + local.set $65 + local.get $65 + local.get $56 f64.add - local.set $28 - local.get $14 + local.set $65 + local.get $59 i64.const 127 i64.and i64.const 1 i64.shl i32.wrap_i64 - local.set $40 - local.get $14 - local.get $12 + local.set $62 + local.get $59 + local.get $55 i64.extend_i32_u i64.add i64.const 52 i64.const 7 i64.sub i64.shl - local.set $13 + local.set $60 i32.const 4760 - local.get $40 + local.get $62 i32.const 3 i32.shl i32.add i64.load f64.reinterpret_i64 - local.set $25 + local.set $68 i32.const 4760 - local.get $40 + local.get $62 i32.const 3 i32.shl i32.add i64.load offset=8 - local.get $13 + local.get $60 i64.add - local.set $11 - local.get $28 - local.get $28 + local.set $61 + local.get $65 + local.get $65 f64.mul - local.set $27 - local.get $25 - local.get $28 + local.set $66 + local.get $68 + local.get $65 f64.add - local.get $27 + local.get $66 f64.const 0.49999999999996786 - local.get $28 + local.get $65 f64.const 0.16666666666665886 f64.mul f64.add f64.mul f64.add - local.get $27 - local.get $27 + local.get $66 + local.get $66 f64.mul f64.const 0.0416666808410674 - local.get $28 + local.get $65 f64.const 0.008333335853059549 f64.mul f64.add f64.mul f64.add - local.set $24 - local.get $39 + local.set $69 + local.get $58 i32.const 0 i32.eq if block $~lib/util/math/specialcase|inlined.0 (result f64) - local.get $24 - local.set $18 - local.get $11 - local.set $44 - local.get $14 - local.set $43 - local.get $43 + local.get $69 + local.set $79 + local.get $61 + local.set $78 + local.get $59 + local.set $77 + local.get $77 i64.const 2147483648 i64.and i64.const 0 i64.ne i32.eqz if - local.get $44 + local.get $78 i64.const 1009 i64.const 52 i64.shl i64.sub - local.set $44 - local.get $44 + local.set $78 + local.get $78 f64.reinterpret_i64 - local.set $17 + local.set $80 f64.const 5486124068793688683255936e279 - local.get $17 - local.get $17 - local.get $18 + local.get $80 + local.get $80 + local.get $79 f64.mul f64.add f64.mul br $~lib/util/math/specialcase|inlined.0 end - local.get $44 + local.get $78 i64.const 1022 i64.const 52 i64.shl i64.add - local.set $44 - local.get $44 + local.set $78 + local.get $78 f64.reinterpret_i64 - local.set $17 - local.get $17 - local.get $17 - local.get $18 + local.set $80 + local.get $80 + local.get $80 + local.get $79 f64.mul f64.add - local.set $16 - local.get $16 + local.set $81 + local.get $81 f64.abs f64.const 1 f64.lt if f64.const 1 - local.get $16 + local.get $81 f64.copysign - local.set $23 - local.get $17 - local.get $16 + local.set $82 + local.get $80 + local.get $81 f64.sub - local.get $17 - local.get $18 + local.get $80 + local.get $79 f64.mul f64.add - local.set $22 - local.get $23 - local.get $16 + local.set $83 + local.get $82 + local.get $81 f64.add - local.set $21 - local.get $23 - local.get $21 + local.set $84 + local.get $82 + local.get $84 f64.sub - local.get $16 + local.get $81 f64.add - local.get $22 + local.get $83 f64.add - local.set $22 - local.get $21 - local.get $22 + local.set $83 + local.get $84 + local.get $83 f64.add - local.get $23 + local.get $82 f64.sub - local.set $16 - local.get $16 + local.set $81 + local.get $81 f64.const 0 f64.eq if - local.get $44 + local.get $78 i64.const -9223372036854775808 i64.and f64.reinterpret_i64 - local.set $16 + local.set $81 end end - local.get $16 + local.get $81 f64.const 2.2250738585072014e-308 f64.mul end br $~lib/util/math/exp_inline|inlined.0 end - local.get $11 + local.get $61 f64.reinterpret_i64 - local.set $26 - local.get $26 - local.get $26 - local.get $24 + local.set $67 + local.get $67 + local.get $67 + local.get $69 f64.mul f64.add end @@ -1662,16 +1712,31 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (local $19 i64) + (local $19 i32) (local $20 i64) (local $21 i64) (local $22 i64) (local $23 i64) - (local $24 i32) + (local $24 i64) (local $25 i32) (local $26 i32) (local $27 i32) - (local $28 i64) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i64) + (local $33 i32) + (local $34 i64) + (local $35 i64) + (local $36 i64) + (local $37 i64) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) i32.const 0 local.get $4 i32.sub @@ -1875,11 +1940,11 @@ if local.get $0 local.get $15 - local.tee $18 + local.tee $19 i32.const 1 i32.add local.set $15 - local.get $18 + local.get $19 i32.const 1 i32.shl i32.add @@ -1901,8 +1966,8 @@ i64.shl local.get $13 i64.add - local.set $19 - local.get $19 + local.set $20 + local.get $20 local.get $5 i64.le_u if @@ -1911,13 +1976,13 @@ i32.add global.set $~lib/util/number/_K local.get $0 - local.set $24 + local.set $26 local.get $15 - local.set $18 + local.set $25 local.get $5 + local.set $24 + local.get $20 local.set $23 - local.get $19 - local.set $22 i32.const 7832 local.get $14 i32.const 2 @@ -1927,71 +1992,71 @@ local.get $7 i64.extend_i32_s i64.shl - local.set $21 + local.set $22 local.get $10 - local.set $20 - local.get $24 - local.get $18 + local.set $21 + local.get $26 + local.get $25 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $25 - local.get $25 + local.set $27 + local.get $27 i32.load16_u - local.set $26 + local.set $28 loop $while-continue|3 - local.get $22 - local.get $20 + local.get $23 + local.get $21 i64.lt_u if (result i32) + local.get $24 local.get $23 - local.get $22 i64.sub - local.get $21 + local.get $22 i64.ge_u else i32.const 0 end if (result i32) + local.get $23 local.get $22 - local.get $21 i64.add - local.get $20 + local.get $21 i64.lt_u if (result i32) i32.const 1 else - local.get $20 - local.get $22 + local.get $21 + local.get $23 i64.sub + local.get $23 local.get $22 - local.get $21 i64.add - local.get $20 + local.get $21 i64.sub i64.gt_u end else i32.const 0 end - local.set $27 - local.get $27 + local.set $30 + local.get $30 if - local.get $26 + local.get $28 i32.const 1 i32.sub - local.set $26 + local.set $28 + local.get $23 local.get $22 - local.get $21 i64.add - local.set $22 + local.set $23 br $while-continue|3 end end - local.get $25 - local.get $26 + local.get $27 + local.get $28 i32.store16 local.get $15 return @@ -2001,8 +2066,8 @@ end loop $while-continue|4 i32.const 1 - local.set $16 - local.get $16 + local.set $31 + local.get $31 if local.get $13 i64.const 10 @@ -2016,8 +2081,8 @@ local.get $7 i64.extend_i32_s i64.shr_u - local.set $23 - local.get $23 + local.set $32 + local.get $32 local.get $15 i64.extend_i32_s i64.or @@ -2026,16 +2091,16 @@ if local.get $0 local.get $15 - local.tee $26 + local.tee $33 i32.const 1 i32.add local.set $15 - local.get $26 + local.get $33 i32.const 1 i32.shl i32.add i32.const 48 - local.get $23 + local.get $32 i32.wrap_i64 i32.const 65535 i32.and @@ -2070,79 +2135,79 @@ i64.mul local.set $10 local.get $0 - local.set $18 + local.set $39 local.get $15 - local.set $27 + local.set $38 local.get $5 - local.set $28 + local.set $37 local.get $13 - local.set $22 + local.set $36 local.get $8 - local.set $21 + local.set $35 local.get $10 - local.set $20 - local.get $18 - local.get $27 + local.set $34 + local.get $39 + local.get $38 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $26 - local.get $26 + local.set $40 + local.get $40 i32.load16_u - local.set $25 + local.set $41 loop $while-continue|6 - local.get $22 - local.get $20 + local.get $36 + local.get $34 i64.lt_u if (result i32) - local.get $28 - local.get $22 + local.get $37 + local.get $36 i64.sub - local.get $21 + local.get $35 i64.ge_u else i32.const 0 end if (result i32) - local.get $22 - local.get $21 + local.get $36 + local.get $35 i64.add - local.get $20 + local.get $34 i64.lt_u if (result i32) i32.const 1 else - local.get $20 - local.get $22 + local.get $34 + local.get $36 i64.sub - local.get $22 - local.get $21 + local.get $36 + local.get $35 i64.add - local.get $20 + local.get $34 i64.sub i64.gt_u end else i32.const 0 end - local.set $24 - local.get $24 + local.set $43 + local.get $43 if - local.get $25 + local.get $41 i32.const 1 i32.sub - local.set $25 - local.get $22 - local.get $21 + local.set $41 + local.get $36 + local.get $35 i64.add - local.set $22 + local.set $36 br $while-continue|6 end end - local.get $26 - local.get $25 + local.get $40 + local.get $41 i32.store16 local.get $15 return @@ -2157,6 +2222,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -2176,11 +2323,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -2200,8 +2347,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -2310,17 +2457,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -2337,16 +2484,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -2356,45 +2503,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -2405,8 +2552,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -2491,31 +2638,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -2526,8 +2673,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -2612,17 +2759,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -2633,8 +2780,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -2721,227 +2868,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -2950,115 +3097,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -3067,59 +3214,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -3128,31 +3275,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -3161,17 +3308,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -3182,6 +3329,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -3259,11 +3414,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -3273,8 +3428,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -3298,21 +3453,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -3341,8 +3496,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -3367,8 +3522,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -3388,8 +3543,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -3418,6 +3573,19 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) local.get $2 i32.eqz if @@ -3507,11 +3675,11 @@ i32.const 1 i32.shl i32.add - local.set $4 - local.get $4 + local.set $6 + local.get $6 i32.const 2 i32.add - local.get $4 + local.get $6 i32.const 0 local.get $2 i32.sub @@ -3544,9 +3712,9 @@ i32.const 2 local.get $3 i32.sub - local.set $4 + local.set $7 local.get $0 - local.get $4 + local.get $7 i32.const 1 i32.shl i32.add @@ -3563,30 +3731,30 @@ i32.or i32.store i32.const 2 - local.set $5 + local.set $8 loop $for-loop|1 - local.get $5 - local.get $4 + local.get $8 + local.get $7 i32.lt_s - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $0 - local.get $5 + local.get $8 i32.const 1 i32.shl i32.add i32.const 48 i32.store16 - local.get $5 + local.get $8 i32.const 1 i32.add - local.set $5 + local.set $8 br $for-loop|1 end end local.get $1 - local.get $4 + local.get $7 i32.add return else @@ -3600,48 +3768,48 @@ local.get $0 i32.const 4 i32.add - local.set $5 + local.set $11 local.get $3 i32.const 1 i32.sub - local.set $6 - local.get $6 + local.set $10 + local.get $10 i32.const 0 i32.lt_s - local.set $4 - local.get $4 + local.set $12 + local.get $12 if i32.const 0 - local.get $6 + local.get $10 i32.sub - local.set $6 + local.set $10 end - local.get $6 + local.get $10 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $7 - local.get $5 - local.set $10 - local.get $6 - local.set $9 - local.get $7 - local.set $8 + local.set $13 + local.get $11 + local.set $16 + local.get $10 + local.set $15 + local.get $13 + local.set $14 i32.const 0 i32.const 1 i32.ge_s drop - local.get $10 - local.get $9 - local.get $8 + local.get $16 + local.get $15 + local.get $14 call $~lib/util/number/utoa32_lut - local.get $5 + local.get $11 i32.const 45 i32.const 43 - local.get $4 + local.get $12 select i32.store16 - local.get $7 + local.get $13 local.set $1 local.get $1 i32.const 2 @@ -3651,14 +3819,14 @@ local.get $1 i32.const 1 i32.shl - local.set $7 + local.set $17 local.get $0 i32.const 4 i32.add local.get $0 i32.const 2 i32.add - local.get $7 + local.get $17 i32.const 2 i32.sub call $~lib/memory/memory.copy @@ -3666,58 +3834,58 @@ i32.const 46 i32.store16 offset=2 local.get $0 - local.get $7 + local.get $17 i32.add i32.const 101 i32.store16 offset=2 local.get $1 local.get $0 - local.get $7 + local.get $17 i32.add i32.const 4 i32.add - local.set $9 + local.set $19 local.get $3 i32.const 1 i32.sub - local.set $8 - local.get $8 + local.set $18 + local.get $18 i32.const 0 i32.lt_s - local.set $4 - local.get $4 + local.set $20 + local.get $20 if i32.const 0 - local.get $8 + local.get $18 i32.sub - local.set $8 + local.set $18 end - local.get $8 + local.get $18 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $5 - local.get $9 - local.set $11 - local.get $8 - local.set $6 - local.get $5 - local.set $10 + local.set $21 + local.get $19 + local.set $24 + local.get $18 + local.set $23 + local.get $21 + local.set $22 i32.const 0 i32.const 1 i32.ge_s drop - local.get $11 - local.get $6 - local.get $10 + local.get $24 + local.get $23 + local.get $22 call $~lib/util/number/utoa32_lut - local.get $9 + local.get $19 i32.const 45 i32.const 43 - local.get $4 + local.get $20 select i32.store16 - local.get $5 + local.get $21 i32.add local.set $1 local.get $1 @@ -3748,19 +3916,51 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 f64) - (local $17 i64) - (local $18 i64) - (local $19 i64) - (local $20 i64) + (local $16 i32) + (local $17 f64) + (local $18 i32) + (local $19 i32) + (local $20 i32) (local $21 i64) - (local $22 i64) + (local $22 i32) (local $23 i64) (local $24 i64) (local $25 i64) - (local $26 i32) + (local $26 i64) (local $27 i64) - (local $28 i32) + (local $28 i64) + (local $29 i64) + (local $30 i64) + (local $31 i64) + (local $32 i64) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i64) + (local $37 i64) + (local $38 i64) + (local $39 i64) + (local $40 i64) + (local $41 i64) + (local $42 i64) + (local $43 i64) + (local $44 i64) + (local $45 i64) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i64) + (local $50 i64) + (local $51 i64) + (local $52 i64) + (local $53 i64) + (local $54 i64) + (local $55 i64) + (local $56 i64) + (local $57 i64) + (local $58 i64) + (local $59 i64) + (local $60 i32) local.get $1 f64.const 0 f64.lt @@ -3864,47 +4064,47 @@ local.get $13 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp - local.set $10 + local.set $16 i32.const -61 - local.get $10 + local.get $16 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 f64.mul f64.const 347 f64.add - local.set $16 - local.get $16 + local.set $17 + local.get $17 i32.trunc_f64_s - local.set $15 - local.get $15 - local.get $15 + local.set $18 + local.get $18 + local.get $18 f64.convert_i32_s - local.get $16 + local.get $17 f64.ne i32.add - local.set $15 - local.get $15 + local.set $18 + local.get $18 i32.const 3 i32.shr_s i32.const 1 i32.add - local.set $14 + local.set $19 i32.const 348 - local.get $14 + local.get $19 i32.const 3 i32.shl i32.sub global.set $~lib/util/number/_K i32.const 6960 - local.get $14 + local.get $19 i32.const 3 i32.shl i32.add i64.load global.set $~lib/util/number/_frc_pow i32.const 7656 - local.get $14 + local.get $19 i32.const 1 i32.shl i32.add @@ -3913,249 +4113,249 @@ local.get $9 i64.clz i32.wrap_i64 - local.set $14 + local.set $20 local.get $9 - local.get $14 + local.get $20 i64.extend_i32_s i64.shl local.set $9 local.get $7 - local.get $14 + local.get $20 i32.sub local.set $7 global.get $~lib/util/number/_frc_pow - local.set $12 + local.set $21 global.get $~lib/util/number/_exp_pow - local.set $15 + local.set $22 local.get $9 - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $24 + local.get $21 + local.set $23 + local.get $24 i64.const 4294967295 i64.and - local.set $18 - local.get $11 + local.set $25 + local.get $23 i64.const 4294967295 i64.and - local.set $19 - local.get $17 + local.set $26 + local.get $24 i64.const 32 i64.shr_u - local.set $20 - local.get $11 + local.set $27 + local.get $23 i64.const 32 i64.shr_u - local.set $21 - local.get $18 - local.get $19 + local.set $28 + local.get $25 + local.get $26 i64.mul - local.set $22 - local.get $20 - local.get $19 + local.set $29 + local.get $27 + local.get $26 i64.mul - local.get $22 + local.get $29 i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $18 - local.get $21 + local.set $30 + local.get $25 + local.get $28 i64.mul - local.get $23 + local.get $30 i64.const 4294967295 i64.and i64.add - local.set $24 - local.get $24 + local.set $31 + local.get $31 i64.const 2147483647 i64.add - local.set $24 - local.get $23 + local.set $31 + local.get $30 i64.const 32 i64.shr_u - local.set $23 - local.get $24 + local.set $30 + local.get $31 i64.const 32 i64.shr_u - local.set $24 - local.get $20 - local.get $21 + local.set $31 + local.get $27 + local.get $28 i64.mul - local.get $23 + local.get $30 i64.add - local.get $24 + local.get $31 i64.add - local.set $24 + local.set $32 local.get $7 - local.set $10 - local.get $15 - local.set $13 - local.get $10 - local.get $13 + local.set $34 + local.get $22 + local.set $33 + local.get $34 + local.get $33 i32.add i32.const 64 i32.add - local.set $10 + local.set $35 global.get $~lib/util/number/_frc_plus - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $37 + local.get $21 + local.set $36 + local.get $37 i64.const 4294967295 i64.and - local.set $23 - local.get $11 + local.set $38 + local.get $36 i64.const 4294967295 i64.and - local.set $22 - local.get $17 + local.set $39 + local.get $37 i64.const 32 i64.shr_u - local.set $21 - local.get $11 + local.set $40 + local.get $36 i64.const 32 i64.shr_u - local.set $20 - local.get $23 - local.get $22 + local.set $41 + local.get $38 + local.get $39 i64.mul - local.set $19 - local.get $21 - local.get $22 + local.set $42 + local.get $40 + local.get $39 i64.mul - local.get $19 + local.get $42 i64.const 32 i64.shr_u i64.add - local.set $18 - local.get $23 - local.get $20 + local.set $43 + local.get $38 + local.get $41 i64.mul - local.get $18 + local.get $43 i64.const 4294967295 i64.and i64.add - local.set $25 - local.get $25 + local.set $44 + local.get $44 i64.const 2147483647 i64.add - local.set $25 - local.get $18 + local.set $44 + local.get $43 i64.const 32 i64.shr_u - local.set $18 - local.get $25 + local.set $43 + local.get $44 i64.const 32 i64.shr_u - local.set $25 - local.get $21 - local.get $20 + local.set $44 + local.get $40 + local.get $41 i64.mul - local.get $18 + local.get $43 i64.add - local.get $25 + local.get $44 i64.add i64.const 1 i64.sub - local.set $25 + local.set $45 global.get $~lib/util/number/_exp - local.set $26 - local.get $15 - local.set $13 - local.get $26 - local.get $13 + local.set $47 + local.get $22 + local.set $46 + local.get $47 + local.get $46 i32.add i32.const 64 i32.add - local.set $26 + local.set $48 global.get $~lib/util/number/_frc_minus - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $50 + local.get $21 + local.set $49 + local.get $50 i64.const 4294967295 i64.and - local.set $18 - local.get $11 + local.set $51 + local.get $49 i64.const 4294967295 i64.and - local.set $19 - local.get $17 + local.set $52 + local.get $50 i64.const 32 i64.shr_u - local.set $20 - local.get $11 + local.set $53 + local.get $49 i64.const 32 i64.shr_u - local.set $21 - local.get $18 - local.get $19 + local.set $54 + local.get $51 + local.get $52 i64.mul - local.set $22 - local.get $20 - local.get $19 + local.set $55 + local.get $53 + local.get $52 i64.mul - local.get $22 + local.get $55 i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $18 - local.get $21 + local.set $56 + local.get $51 + local.get $54 i64.mul - local.get $23 + local.get $56 i64.const 4294967295 i64.and i64.add - local.set $27 - local.get $27 + local.set $57 + local.get $57 i64.const 2147483647 i64.add - local.set $27 - local.get $23 + local.set $57 + local.get $56 i64.const 32 i64.shr_u - local.set $23 - local.get $27 + local.set $56 + local.get $57 i64.const 32 i64.shr_u - local.set $27 - local.get $20 - local.get $21 + local.set $57 + local.get $53 + local.get $54 i64.mul - local.get $23 + local.get $56 i64.add - local.get $27 + local.get $57 i64.add i64.const 1 i64.add - local.set $27 - local.get $25 - local.get $27 + local.set $58 + local.get $45 + local.get $58 i64.sub - local.set $23 + local.set $59 local.get $4 - local.get $24 - local.get $10 - local.get $25 - local.get $26 - local.get $23 + local.get $32 + local.get $35 + local.get $45 + local.get $48 + local.get $59 local.get $3 call $~lib/util/number/genDigits - local.set $28 + local.set $60 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $28 + local.get $60 local.get $2 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.set $28 - local.get $28 + local.set $60 + local.get $60 local.get $2 i32.add ) @@ -4169,6 +4369,16 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) local.get $0 call $~lib/string/String#get:length local.set $3 @@ -4180,67 +4390,67 @@ local.get $5 i32.gt_s select - local.tee $4 + local.tee $6 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $7 + local.get $6 + local.get $7 i32.lt_s select - local.set $6 + local.set $8 local.get $2 - local.tee $4 + local.tee $9 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 + local.tee $10 + local.get $9 + local.get $10 i32.gt_s select - local.tee $4 + local.tee $11 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $12 + local.get $11 + local.get $12 i32.lt_s select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 + local.set $13 + local.get $8 + local.tee $14 + local.get $13 + local.tee $15 + local.get $14 + local.get $15 i32.lt_s select i32.const 1 i32.shl - local.set $8 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 + local.set $16 + local.get $8 + local.tee $17 + local.get $13 + local.tee $18 + local.get $17 + local.get $18 i32.gt_s select i32.const 1 i32.shl - local.set $9 - local.get $9 - local.get $8 + local.set $19 + local.get $19 + local.get $16 i32.sub - local.set $10 - local.get $10 + local.set $20 + local.get $20 i32.eqz if i32.const 7888 call $~lib/rt/stub/__retain return end - local.get $8 + local.get $16 i32.eqz if (result i32) - local.get $9 + local.get $19 local.get $3 i32.const 1 i32.shl @@ -4253,17 +4463,17 @@ call $~lib/rt/stub/__retain return end - local.get $10 + local.get $20 i32.const 1 call $~lib/rt/stub/__alloc - local.set $11 - local.get $11 + local.set $21 + local.get $21 local.get $0 - local.get $8 + local.get $16 i32.add - local.get $10 + local.get $20 call $~lib/memory/memory.copy - local.get $11 + local.get $21 call $~lib/rt/stub/__retain ) (func $~lib/rt/stub/__free (param $0 i32) @@ -4623,6 +4833,7 @@ (local $61 i32) (local $62 i32) (local $63 i32) + (local $64 i32) i32.const 1 i32.const 2 i32.lt_u @@ -5500,7 +5711,7 @@ global.set $resolve-binary/bar global.get $resolve-binary/bar call $resolve-binary/Bar#self - local.tee $62 + local.tee $64 global.get $resolve-binary/bar2 i32.eq i32.eqz @@ -5648,7 +5859,7 @@ call $~lib/rt/stub/__release local.get $61 call $~lib/rt/stub/__release - local.get $62 + local.get $64 call $~lib/rt/stub/__release ) (func $~start diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index 3d5b963be5..f42b059d22 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -752,8 +752,6 @@ global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $8 - local.set $1 local.get $9 i32.const 0 local.get $4 @@ -764,7 +762,7 @@ i32.add i64.load32_u i64.mul - local.set $3 + local.set $1 local.get $0 local.get $6 i32.const 1 @@ -777,30 +775,30 @@ local.set $4 loop $while-continue|6 i32.const 1 - local.get $3 local.get $1 + local.get $8 i64.sub - local.get $1 + local.get $8 local.get $11 i64.add - local.get $3 + local.get $1 i64.sub i64.gt_u - local.get $1 + local.get $8 local.get $11 i64.add - local.get $3 + local.get $1 i64.lt_u select i32.const 0 local.get $5 - local.get $1 + local.get $8 i64.sub local.get $11 i64.ge_u i32.const 0 + local.get $8 local.get $1 - local.get $3 i64.lt_u select select @@ -809,10 +807,10 @@ i32.const 1 i32.sub local.set $4 - local.get $1 + local.get $8 local.get $11 i64.add - local.set $1 + local.set $8 br $while-continue|6 end end diff --git a/tests/compiler/resolve-elementaccess.untouched.wat b/tests/compiler/resolve-elementaccess.untouched.wat index 53963f9d4e..54dfd19866 100644 --- a/tests/compiler/resolve-elementaccess.untouched.wat +++ b/tests/compiler/resolve-elementaccess.untouched.wat @@ -61,6 +61,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -91,8 +92,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -586,16 +587,31 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (local $19 i64) + (local $19 i32) (local $20 i64) (local $21 i64) (local $22 i64) (local $23 i64) - (local $24 i32) + (local $24 i64) (local $25 i32) (local $26 i32) (local $27 i32) - (local $28 i64) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i64) + (local $33 i32) + (local $34 i64) + (local $35 i64) + (local $36 i64) + (local $37 i64) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) i32.const 0 local.get $4 i32.sub @@ -799,11 +815,11 @@ if local.get $0 local.get $15 - local.tee $18 + local.tee $19 i32.const 1 i32.add local.set $15 - local.get $18 + local.get $19 i32.const 1 i32.shl i32.add @@ -825,8 +841,8 @@ i64.shl local.get $13 i64.add - local.set $19 - local.get $19 + local.set $20 + local.get $20 local.get $5 i64.le_u if @@ -835,13 +851,13 @@ i32.add global.set $~lib/util/number/_K local.get $0 - local.set $24 + local.set $26 local.get $15 - local.set $18 + local.set $25 local.get $5 + local.set $24 + local.get $20 local.set $23 - local.get $19 - local.set $22 i32.const 1272 local.get $14 i32.const 2 @@ -851,71 +867,71 @@ local.get $7 i64.extend_i32_s i64.shl - local.set $21 + local.set $22 local.get $10 - local.set $20 - local.get $24 - local.get $18 + local.set $21 + local.get $26 + local.get $25 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $25 - local.get $25 + local.set $27 + local.get $27 i32.load16_u - local.set $26 + local.set $28 loop $while-continue|3 - local.get $22 - local.get $20 + local.get $23 + local.get $21 i64.lt_u if (result i32) + local.get $24 local.get $23 - local.get $22 i64.sub - local.get $21 + local.get $22 i64.ge_u else i32.const 0 end if (result i32) + local.get $23 local.get $22 - local.get $21 i64.add - local.get $20 + local.get $21 i64.lt_u if (result i32) i32.const 1 else - local.get $20 - local.get $22 + local.get $21 + local.get $23 i64.sub + local.get $23 local.get $22 - local.get $21 i64.add - local.get $20 + local.get $21 i64.sub i64.gt_u end else i32.const 0 end - local.set $27 - local.get $27 + local.set $30 + local.get $30 if - local.get $26 + local.get $28 i32.const 1 i32.sub - local.set $26 + local.set $28 + local.get $23 local.get $22 - local.get $21 i64.add - local.set $22 + local.set $23 br $while-continue|3 end end - local.get $25 - local.get $26 + local.get $27 + local.get $28 i32.store16 local.get $15 return @@ -925,8 +941,8 @@ end loop $while-continue|4 i32.const 1 - local.set $16 - local.get $16 + local.set $31 + local.get $31 if local.get $13 i64.const 10 @@ -940,8 +956,8 @@ local.get $7 i64.extend_i32_s i64.shr_u - local.set $23 - local.get $23 + local.set $32 + local.get $32 local.get $15 i64.extend_i32_s i64.or @@ -950,16 +966,16 @@ if local.get $0 local.get $15 - local.tee $26 + local.tee $33 i32.const 1 i32.add local.set $15 - local.get $26 + local.get $33 i32.const 1 i32.shl i32.add i32.const 48 - local.get $23 + local.get $32 i32.wrap_i64 i32.const 65535 i32.and @@ -994,79 +1010,79 @@ i64.mul local.set $10 local.get $0 - local.set $18 + local.set $39 local.get $15 - local.set $27 + local.set $38 local.get $5 - local.set $28 + local.set $37 local.get $13 - local.set $22 + local.set $36 local.get $8 - local.set $21 + local.set $35 local.get $10 - local.set $20 - local.get $18 - local.get $27 + local.set $34 + local.get $39 + local.get $38 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $26 - local.get $26 + local.set $40 + local.get $40 i32.load16_u - local.set $25 + local.set $41 loop $while-continue|6 - local.get $22 - local.get $20 + local.get $36 + local.get $34 i64.lt_u if (result i32) - local.get $28 - local.get $22 + local.get $37 + local.get $36 i64.sub - local.get $21 + local.get $35 i64.ge_u else i32.const 0 end if (result i32) - local.get $22 - local.get $21 + local.get $36 + local.get $35 i64.add - local.get $20 + local.get $34 i64.lt_u if (result i32) i32.const 1 else - local.get $20 - local.get $22 + local.get $34 + local.get $36 i64.sub - local.get $22 - local.get $21 + local.get $36 + local.get $35 i64.add - local.get $20 + local.get $34 i64.sub i64.gt_u end else i32.const 0 end - local.set $24 - local.get $24 + local.set $43 + local.get $43 if - local.get $25 + local.get $41 i32.const 1 i32.sub - local.set $25 - local.get $22 - local.get $21 + local.set $41 + local.get $36 + local.get $35 i64.add - local.set $22 + local.set $36 br $while-continue|6 end end - local.get $26 - local.get $25 + local.get $40 + local.get $41 i32.store16 local.get $15 return @@ -1081,6 +1097,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -1100,11 +1198,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -1124,8 +1222,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -1234,17 +1332,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -1261,16 +1359,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -1280,45 +1378,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -1329,8 +1427,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -1415,31 +1513,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -1450,8 +1548,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -1536,17 +1634,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -1557,8 +1655,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -1645,227 +1743,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -1874,115 +1972,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -1991,59 +2089,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -2052,31 +2150,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -2085,17 +2183,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -2106,12 +2204,20 @@ (local $5 i32) (local $6 i32) (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 local.get $5 local.get $4 @@ -2183,11 +2289,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -2197,8 +2303,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -2222,21 +2328,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -2265,8 +2371,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -2291,8 +2397,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -2312,8 +2418,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -2342,6 +2448,9 @@ (local $9 i64) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) loop $while-continue|0 local.get $1 i32.const 10000 @@ -2406,30 +2515,30 @@ local.get $1 i32.const 100 i32.div_u - local.set $3 + local.set $10 local.get $1 i32.const 100 i32.rem_u - local.set $10 - local.get $3 + local.set $11 + local.get $10 local.set $1 local.get $2 i32.const 2 i32.sub local.set $2 i32.const 1312 - local.get $10 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $12 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $12 i32.store end local.get $1 @@ -2446,13 +2555,13 @@ i32.shl i32.add i32.load - local.set $11 + local.set $13 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $13 i32.store else local.get $2 @@ -2462,13 +2571,13 @@ i32.const 48 local.get $1 i32.add - local.set $11 + local.set $14 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $14 i32.store16 end ) @@ -2482,6 +2591,19 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) local.get $2 i32.eqz if @@ -2571,11 +2693,11 @@ i32.const 1 i32.shl i32.add - local.set $4 - local.get $4 + local.set $6 + local.get $6 i32.const 2 i32.add - local.get $4 + local.get $6 i32.const 0 local.get $2 i32.sub @@ -2608,9 +2730,9 @@ i32.const 2 local.get $3 i32.sub - local.set $4 + local.set $7 local.get $0 - local.get $4 + local.get $7 i32.const 1 i32.shl i32.add @@ -2627,30 +2749,30 @@ i32.or i32.store i32.const 2 - local.set $5 + local.set $8 loop $for-loop|1 - local.get $5 - local.get $4 + local.get $8 + local.get $7 i32.lt_s - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $0 - local.get $5 + local.get $8 i32.const 1 i32.shl i32.add i32.const 48 i32.store16 - local.get $5 + local.get $8 i32.const 1 i32.add - local.set $5 + local.set $8 br $for-loop|1 end end local.get $1 - local.get $4 + local.get $7 i32.add return else @@ -2664,48 +2786,48 @@ local.get $0 i32.const 4 i32.add - local.set $5 + local.set $11 local.get $3 i32.const 1 i32.sub - local.set $6 - local.get $6 + local.set $10 + local.get $10 i32.const 0 i32.lt_s - local.set $4 - local.get $4 + local.set $12 + local.get $12 if i32.const 0 - local.get $6 + local.get $10 i32.sub - local.set $6 + local.set $10 end - local.get $6 + local.get $10 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $7 - local.get $5 - local.set $10 - local.get $6 - local.set $9 - local.get $7 - local.set $8 + local.set $13 + local.get $11 + local.set $16 + local.get $10 + local.set $15 + local.get $13 + local.set $14 i32.const 0 i32.const 1 i32.ge_s drop - local.get $10 - local.get $9 - local.get $8 + local.get $16 + local.get $15 + local.get $14 call $~lib/util/number/utoa32_lut - local.get $5 + local.get $11 i32.const 45 i32.const 43 - local.get $4 + local.get $12 select i32.store16 - local.get $7 + local.get $13 local.set $1 local.get $1 i32.const 2 @@ -2715,14 +2837,14 @@ local.get $1 i32.const 1 i32.shl - local.set $7 + local.set $17 local.get $0 i32.const 4 i32.add local.get $0 i32.const 2 i32.add - local.get $7 + local.get $17 i32.const 2 i32.sub call $~lib/memory/memory.copy @@ -2730,58 +2852,58 @@ i32.const 46 i32.store16 offset=2 local.get $0 - local.get $7 + local.get $17 i32.add i32.const 101 i32.store16 offset=2 local.get $1 local.get $0 - local.get $7 + local.get $17 i32.add i32.const 4 i32.add - local.set $9 + local.set $19 local.get $3 i32.const 1 i32.sub - local.set $8 - local.get $8 + local.set $18 + local.get $18 i32.const 0 i32.lt_s - local.set $4 - local.get $4 + local.set $20 + local.get $20 if i32.const 0 - local.get $8 + local.get $18 i32.sub - local.set $8 + local.set $18 end - local.get $8 + local.get $18 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $5 - local.get $9 - local.set $11 - local.get $8 - local.set $6 - local.get $5 - local.set $10 + local.set $21 + local.get $19 + local.set $24 + local.get $18 + local.set $23 + local.get $21 + local.set $22 i32.const 0 i32.const 1 i32.ge_s drop - local.get $11 - local.get $6 - local.get $10 + local.get $24 + local.get $23 + local.get $22 call $~lib/util/number/utoa32_lut - local.get $9 + local.get $19 i32.const 45 i32.const 43 - local.get $4 + local.get $20 select i32.store16 - local.get $5 + local.get $21 i32.add local.set $1 local.get $1 @@ -2812,19 +2934,51 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 f64) - (local $17 i64) - (local $18 i64) - (local $19 i64) - (local $20 i64) + (local $16 i32) + (local $17 f64) + (local $18 i32) + (local $19 i32) + (local $20 i32) (local $21 i64) - (local $22 i64) + (local $22 i32) (local $23 i64) (local $24 i64) (local $25 i64) - (local $26 i32) + (local $26 i64) (local $27 i64) - (local $28 i32) + (local $28 i64) + (local $29 i64) + (local $30 i64) + (local $31 i64) + (local $32 i64) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i64) + (local $37 i64) + (local $38 i64) + (local $39 i64) + (local $40 i64) + (local $41 i64) + (local $42 i64) + (local $43 i64) + (local $44 i64) + (local $45 i64) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i64) + (local $50 i64) + (local $51 i64) + (local $52 i64) + (local $53 i64) + (local $54 i64) + (local $55 i64) + (local $56 i64) + (local $57 i64) + (local $58 i64) + (local $59 i64) + (local $60 i32) local.get $1 f64.const 0 f64.lt @@ -2928,47 +3082,47 @@ local.get $13 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp - local.set $10 + local.set $16 i32.const -61 - local.get $10 + local.get $16 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 f64.mul f64.const 347 f64.add - local.set $16 - local.get $16 + local.set $17 + local.get $17 i32.trunc_f64_s - local.set $15 - local.get $15 - local.get $15 + local.set $18 + local.get $18 + local.get $18 f64.convert_i32_s - local.get $16 + local.get $17 f64.ne i32.add - local.set $15 - local.get $15 + local.set $18 + local.get $18 i32.const 3 i32.shr_s i32.const 1 i32.add - local.set $14 + local.set $19 i32.const 348 - local.get $14 + local.get $19 i32.const 3 i32.shl i32.sub global.set $~lib/util/number/_K i32.const 400 - local.get $14 + local.get $19 i32.const 3 i32.shl i32.add i64.load global.set $~lib/util/number/_frc_pow i32.const 1096 - local.get $14 + local.get $19 i32.const 1 i32.shl i32.add @@ -2977,249 +3131,249 @@ local.get $9 i64.clz i32.wrap_i64 - local.set $14 + local.set $20 local.get $9 - local.get $14 + local.get $20 i64.extend_i32_s i64.shl local.set $9 local.get $7 - local.get $14 + local.get $20 i32.sub local.set $7 global.get $~lib/util/number/_frc_pow - local.set $12 + local.set $21 global.get $~lib/util/number/_exp_pow - local.set $15 + local.set $22 local.get $9 - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $24 + local.get $21 + local.set $23 + local.get $24 i64.const 4294967295 i64.and - local.set $18 - local.get $11 + local.set $25 + local.get $23 i64.const 4294967295 i64.and - local.set $19 - local.get $17 + local.set $26 + local.get $24 i64.const 32 i64.shr_u - local.set $20 - local.get $11 + local.set $27 + local.get $23 i64.const 32 i64.shr_u - local.set $21 - local.get $18 - local.get $19 + local.set $28 + local.get $25 + local.get $26 i64.mul - local.set $22 - local.get $20 - local.get $19 + local.set $29 + local.get $27 + local.get $26 i64.mul - local.get $22 + local.get $29 i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $18 - local.get $21 + local.set $30 + local.get $25 + local.get $28 i64.mul - local.get $23 + local.get $30 i64.const 4294967295 i64.and i64.add - local.set $24 - local.get $24 + local.set $31 + local.get $31 i64.const 2147483647 i64.add - local.set $24 - local.get $23 + local.set $31 + local.get $30 i64.const 32 i64.shr_u - local.set $23 - local.get $24 + local.set $30 + local.get $31 i64.const 32 i64.shr_u - local.set $24 - local.get $20 - local.get $21 + local.set $31 + local.get $27 + local.get $28 i64.mul - local.get $23 + local.get $30 i64.add - local.get $24 + local.get $31 i64.add - local.set $24 + local.set $32 local.get $7 - local.set $10 - local.get $15 - local.set $13 - local.get $10 - local.get $13 + local.set $34 + local.get $22 + local.set $33 + local.get $34 + local.get $33 i32.add i32.const 64 i32.add - local.set $10 + local.set $35 global.get $~lib/util/number/_frc_plus - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $37 + local.get $21 + local.set $36 + local.get $37 i64.const 4294967295 i64.and - local.set $23 - local.get $11 + local.set $38 + local.get $36 i64.const 4294967295 i64.and - local.set $22 - local.get $17 + local.set $39 + local.get $37 i64.const 32 i64.shr_u - local.set $21 - local.get $11 + local.set $40 + local.get $36 i64.const 32 i64.shr_u - local.set $20 - local.get $23 - local.get $22 + local.set $41 + local.get $38 + local.get $39 i64.mul - local.set $19 - local.get $21 - local.get $22 + local.set $42 + local.get $40 + local.get $39 i64.mul - local.get $19 + local.get $42 i64.const 32 i64.shr_u i64.add - local.set $18 - local.get $23 - local.get $20 + local.set $43 + local.get $38 + local.get $41 i64.mul - local.get $18 + local.get $43 i64.const 4294967295 i64.and i64.add - local.set $25 - local.get $25 + local.set $44 + local.get $44 i64.const 2147483647 i64.add - local.set $25 - local.get $18 + local.set $44 + local.get $43 i64.const 32 i64.shr_u - local.set $18 - local.get $25 + local.set $43 + local.get $44 i64.const 32 i64.shr_u - local.set $25 - local.get $21 - local.get $20 + local.set $44 + local.get $40 + local.get $41 i64.mul - local.get $18 + local.get $43 i64.add - local.get $25 + local.get $44 i64.add i64.const 1 i64.sub - local.set $25 + local.set $45 global.get $~lib/util/number/_exp - local.set $26 - local.get $15 - local.set $13 - local.get $26 - local.get $13 + local.set $47 + local.get $22 + local.set $46 + local.get $47 + local.get $46 i32.add i32.const 64 i32.add - local.set $26 + local.set $48 global.get $~lib/util/number/_frc_minus - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $50 + local.get $21 + local.set $49 + local.get $50 i64.const 4294967295 i64.and - local.set $18 - local.get $11 + local.set $51 + local.get $49 i64.const 4294967295 i64.and - local.set $19 - local.get $17 + local.set $52 + local.get $50 i64.const 32 i64.shr_u - local.set $20 - local.get $11 + local.set $53 + local.get $49 i64.const 32 i64.shr_u - local.set $21 - local.get $18 - local.get $19 + local.set $54 + local.get $51 + local.get $52 i64.mul - local.set $22 - local.get $20 - local.get $19 + local.set $55 + local.get $53 + local.get $52 i64.mul - local.get $22 + local.get $55 i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $18 - local.get $21 + local.set $56 + local.get $51 + local.get $54 i64.mul - local.get $23 + local.get $56 i64.const 4294967295 i64.and i64.add - local.set $27 - local.get $27 + local.set $57 + local.get $57 i64.const 2147483647 i64.add - local.set $27 - local.get $23 + local.set $57 + local.get $56 i64.const 32 i64.shr_u - local.set $23 - local.get $27 + local.set $56 + local.get $57 i64.const 32 i64.shr_u - local.set $27 - local.get $20 - local.get $21 + local.set $57 + local.get $53 + local.get $54 i64.mul - local.get $23 + local.get $56 i64.add - local.get $27 + local.get $57 i64.add i64.const 1 i64.add - local.set $27 - local.get $25 - local.get $27 + local.set $58 + local.get $45 + local.get $58 i64.sub - local.set $23 + local.set $59 local.get $4 - local.get $24 - local.get $10 - local.get $25 - local.get $26 - local.get $23 + local.get $32 + local.get $35 + local.get $45 + local.get $48 + local.get $59 local.get $3 call $~lib/util/number/genDigits - local.set $28 + local.set $60 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $28 + local.get $60 local.get $2 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.set $28 - local.get $28 + local.set $60 + local.get $60 local.get $2 i32.add ) @@ -3241,6 +3395,16 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) local.get $0 call $~lib/string/String#get:length local.set $3 @@ -3252,67 +3416,67 @@ local.get $5 i32.gt_s select - local.tee $4 + local.tee $6 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $7 + local.get $6 + local.get $7 i32.lt_s select - local.set $6 + local.set $8 local.get $2 - local.tee $4 + local.tee $9 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 + local.tee $10 + local.get $9 + local.get $10 i32.gt_s select - local.tee $4 + local.tee $11 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $12 + local.get $11 + local.get $12 i32.lt_s select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 + local.set $13 + local.get $8 + local.tee $14 + local.get $13 + local.tee $15 + local.get $14 + local.get $15 i32.lt_s select i32.const 1 i32.shl - local.set $8 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 + local.set $16 + local.get $8 + local.tee $17 + local.get $13 + local.tee $18 + local.get $17 + local.get $18 i32.gt_s select i32.const 1 i32.shl - local.set $9 - local.get $9 - local.get $8 + local.set $19 + local.get $19 + local.get $16 i32.sub - local.set $10 - local.get $10 + local.set $20 + local.get $20 i32.eqz if i32.const 1728 call $~lib/rt/stub/__retain return end - local.get $8 + local.get $16 i32.eqz if (result i32) - local.get $9 + local.get $19 local.get $3 i32.const 1 i32.shl @@ -3325,17 +3489,17 @@ call $~lib/rt/stub/__retain return end - local.get $10 + local.get $20 i32.const 1 call $~lib/rt/stub/__alloc - local.set $11 - local.get $11 + local.set $21 + local.get $21 local.get $0 - local.get $8 + local.get $16 i32.add - local.get $10 + local.get $20 call $~lib/memory/memory.copy - local.get $11 + local.get $21 call $~lib/rt/stub/__retain ) (func $~lib/rt/stub/__free (param $0 i32) @@ -3463,6 +3627,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -3534,33 +3701,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $10 + local.get $12 return end local.get $5 @@ -3575,16 +3742,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -3616,44 +3786,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $6 ) (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -3792,6 +3962,10 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/heap/__heap_base i32.const 15 i32.add @@ -3860,7 +4034,7 @@ local.get $3 call $~lib/typedarray/Float32Array#__get call $~lib/number/F32#toString - local.tee $2 + local.tee $4 i32.const 1920 call $~lib/string/String.__eq i32.eqz @@ -3910,7 +4084,7 @@ i32.const 0 call $~lib/typedarray/Uint8Array#__get call $~lib/number/U8#toString - local.tee $3 + local.tee $5 i32.const 1984 call $~lib/string/String.__eq i32.eqz @@ -3926,7 +4100,7 @@ i32.const 1 call $~lib/typedarray/Uint8Array#__get call $~lib/number/U8#toString - local.tee $2 + local.tee $6 i32.const 2016 call $~lib/string/String.__eq i32.eqz @@ -3939,20 +4113,20 @@ unreachable end global.get $resolve-elementaccess/buf - local.tee $4 + local.tee $7 i32.const 0 - local.tee $5 + local.tee $8 global.get $resolve-elementaccess/buf i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 10 i32.add call $~lib/typedarray/Uint8Array#__set - local.get $4 - local.get $5 + local.get $7 + local.get $8 call $~lib/typedarray/Uint8Array#__get call $~lib/number/U8#toString - local.tee $4 + local.tee $9 i32.const 2048 call $~lib/string/String.__eq i32.eqz @@ -3990,11 +4164,13 @@ call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $4 call $~lib/rt/stub/__release - local.get $3 + local.get $5 call $~lib/rt/stub/__release - local.get $4 + local.get $6 + call $~lib/rt/stub/__release + local.get $9 call $~lib/rt/stub/__release ) (func $~start diff --git a/tests/compiler/resolve-function-expression.untouched.wat b/tests/compiler/resolve-function-expression.untouched.wat index 3e35a909ed..bda370d19e 100644 --- a/tests/compiler/resolve-function-expression.untouched.wat +++ b/tests/compiler/resolve-function-expression.untouched.wat @@ -102,6 +102,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -132,8 +133,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -215,6 +216,9 @@ (local $9 i64) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) loop $while-continue|0 local.get $1 i32.const 10000 @@ -279,30 +283,30 @@ local.get $1 i32.const 100 i32.div_u - local.set $3 + local.set $10 local.get $1 i32.const 100 i32.rem_u - local.set $10 - local.get $3 + local.set $11 + local.get $10 local.set $1 local.get $2 i32.const 2 i32.sub local.set $2 i32.const 116 - local.get $10 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $12 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $12 i32.store end local.get $1 @@ -319,13 +323,13 @@ i32.shl i32.add i32.load - local.set $11 + local.set $13 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $13 i32.store else local.get $2 @@ -335,13 +339,13 @@ i32.const 48 local.get $1 i32.add - local.set $11 + local.set $14 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $14 i32.store16 end ) @@ -442,6 +446,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -513,33 +520,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $10 + local.get $12 return end local.get $5 @@ -554,16 +561,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -595,44 +605,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $6 ) (func $start:resolve-function-expression (local $0 i32) diff --git a/tests/compiler/resolve-nested.untouched.wat b/tests/compiler/resolve-nested.untouched.wat index c7af958501..c874acd633 100644 --- a/tests/compiler/resolve-nested.untouched.wat +++ b/tests/compiler/resolve-nested.untouched.wat @@ -42,6 +42,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -72,8 +73,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s diff --git a/tests/compiler/resolve-new.untouched.wat b/tests/compiler/resolve-new.untouched.wat index 61f82a9dd5..f29cf05829 100644 --- a/tests/compiler/resolve-new.untouched.wat +++ b/tests/compiler/resolve-new.untouched.wat @@ -17,6 +17,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -47,8 +48,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s diff --git a/tests/compiler/resolve-propertyaccess.untouched.wat b/tests/compiler/resolve-propertyaccess.untouched.wat index 3dcedd8795..409b7c49de 100644 --- a/tests/compiler/resolve-propertyaccess.untouched.wat +++ b/tests/compiler/resolve-propertyaccess.untouched.wat @@ -98,6 +98,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -128,8 +129,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -211,6 +212,9 @@ (local $9 i64) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) loop $while-continue|0 local.get $1 i32.const 10000 @@ -275,30 +279,30 @@ local.get $1 i32.const 100 i32.div_u - local.set $3 + local.set $10 local.get $1 i32.const 100 i32.rem_u - local.set $10 - local.get $3 + local.set $11 + local.get $10 local.set $1 local.get $2 i32.const 2 i32.sub local.set $2 i32.const 36 - local.get $10 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $12 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $12 i32.store end local.get $1 @@ -315,13 +319,13 @@ i32.shl i32.add i32.load - local.set $11 + local.set $13 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $13 i32.store else local.get $2 @@ -331,13 +335,13 @@ i32.const 48 local.get $1 i32.add - local.set $11 + local.set $14 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $14 i32.store16 end ) @@ -438,6 +442,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -509,33 +516,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $10 + local.get $12 return end local.get $5 @@ -550,16 +557,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -591,44 +601,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $6 ) (func $resolve-propertyaccess/Class#constructor (param $0 i32) (result i32) local.get $0 diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index 45b4ecfee3..d226a9c1f2 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -1300,8 +1300,8 @@ ) (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (result i32) (local $6 i32) - (local $7 i64) - (local $8 i32) + (local $7 i32) + (local $8 i64) (local $9 i64) (local $10 i32) (local $11 i64) @@ -1323,7 +1323,7 @@ i64.sub local.tee $12 i64.and - local.set $7 + local.set $8 local.get $3 local.get $10 i64.extend_i32_s @@ -1457,11 +1457,11 @@ local.set $2 end local.get $2 - local.get $8 + local.get $7 i32.or if local.get $0 - local.get $8 + local.get $7 i32.const 1 i32.shl i32.add @@ -1471,16 +1471,16 @@ i32.const 48 i32.add i32.store16 - local.get $8 + local.get $7 i32.const 1 i32.add - local.set $8 + local.set $7 end local.get $4 i32.const 1 i32.sub local.set $4 - local.get $7 + local.get $8 local.get $6 i64.extend_i32_u local.get $10 @@ -1506,7 +1506,7 @@ i64.shl local.set $3 local.get $0 - local.get $8 + local.get $7 i32.const 1 i32.sub i32.const 1 @@ -1523,11 +1523,11 @@ local.get $1 local.get $3 i64.add - local.tee $7 + local.tee $8 local.get $9 i64.sub i64.gt_u - local.get $7 + local.get $8 local.get $9 i64.lt_u select @@ -1558,7 +1558,7 @@ local.get $0 local.get $4 i32.store16 - local.get $8 + local.get $7 return end br $while-continue|0 @@ -1572,35 +1572,35 @@ i64.const 10 i64.mul local.set $5 - local.get $7 + local.get $8 i64.const 10 i64.mul local.tee $3 local.get $1 i64.shr_u - local.tee $7 - local.get $8 + local.tee $8 + local.get $7 i64.extend_i32_s i64.or i64.const 0 i64.ne if local.get $0 - local.get $8 + local.get $7 i32.const 1 i32.shl i32.add - local.get $7 + local.get $8 i32.wrap_i64 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 - local.get $8 + local.get $7 i32.const 1 i32.add - local.set $8 + local.set $7 end local.get $4 i32.const 1 @@ -1609,7 +1609,7 @@ local.get $3 local.get $12 i64.and - local.tee $7 + local.tee $8 local.get $5 i64.ge_u br_if $while-continue|4 @@ -1618,8 +1618,6 @@ global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $7 - local.set $1 local.get $9 i32.const 0 local.get $4 @@ -1630,9 +1628,9 @@ i32.add i64.load32_u i64.mul - local.set $3 + local.set $1 local.get $0 - local.get $8 + local.get $7 i32.const 1 i32.sub i32.const 1 @@ -1643,29 +1641,29 @@ local.set $4 loop $while-continue|6 i32.const 1 - local.get $3 local.get $1 + local.get $8 i64.sub - local.get $1 + local.get $8 local.get $11 i64.add - local.tee $7 - local.get $3 + local.tee $3 + local.get $1 i64.sub i64.gt_u - local.get $7 local.get $3 + local.get $1 i64.lt_u select i32.const 0 local.get $5 - local.get $1 + local.get $8 i64.sub local.get $11 i64.ge_u i32.const 0 + local.get $8 local.get $1 - local.get $3 i64.lt_u select select @@ -1674,17 +1672,17 @@ i32.const 1 i32.sub local.set $4 - local.get $1 + local.get $8 local.get $11 i64.add - local.set $1 + local.set $8 br $while-continue|6 end end local.get $0 local.get $4 i32.store16 - local.get $8 + local.get $7 ) (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) diff --git a/tests/compiler/resolve-ternary.untouched.wat b/tests/compiler/resolve-ternary.untouched.wat index 4cc9ba29ab..d5d1daa019 100644 --- a/tests/compiler/resolve-ternary.untouched.wat +++ b/tests/compiler/resolve-ternary.untouched.wat @@ -70,6 +70,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -206,59 +215,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -288,6 +297,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -350,8 +373,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -362,16 +385,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -389,18 +412,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -412,7 +435,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -425,23 +448,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -455,14 +478,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -482,7 +505,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -500,24 +523,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -525,21 +548,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -555,86 +578,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -645,6 +668,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -784,11 +808,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -808,6 +832,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -864,66 +894,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -936,11 +966,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -989,6 +1019,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1062,11 +1100,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1077,10 +1115,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1093,30 +1131,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1127,45 +1165,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1174,6 +1212,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1220,15 +1259,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1242,12 +1281,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1257,6 +1296,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1321,11 +1362,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1333,11 +1374,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -1624,6 +1665,9 @@ (local $9 i64) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) loop $while-continue|0 local.get $1 i32.const 10000 @@ -1688,30 +1732,30 @@ local.get $1 i32.const 100 i32.div_u - local.set $3 + local.set $10 local.get $1 i32.const 100 i32.rem_u - local.set $10 - local.get $3 + local.set $11 + local.get $10 local.set $1 local.get $2 i32.const 2 i32.sub local.set $2 i32.const 196 - local.get $10 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $12 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $12 i32.store end local.get $1 @@ -1728,13 +1772,13 @@ i32.shl i32.add i32.load - local.set $11 + local.set $13 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $13 i32.store else local.get $2 @@ -1744,13 +1788,13 @@ i32.const 48 local.get $1 i32.add - local.set $11 + local.set $14 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $14 i32.store16 end ) @@ -1845,6 +1889,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -1916,33 +1963,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $10 + local.get $12 return end local.get $5 @@ -1957,16 +2004,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -1998,44 +2048,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $6 ) (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) (local $7 i32) @@ -2050,16 +2100,31 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (local $19 i64) + (local $19 i32) (local $20 i64) (local $21 i64) (local $22 i64) (local $23 i64) - (local $24 i32) + (local $24 i64) (local $25 i32) (local $26 i32) (local $27 i32) - (local $28 i64) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i64) + (local $33 i32) + (local $34 i64) + (local $35 i64) + (local $36 i64) + (local $37 i64) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) i32.const 0 local.get $4 i32.sub @@ -2263,11 +2328,11 @@ if local.get $0 local.get $15 - local.tee $18 + local.tee $19 i32.const 1 i32.add local.set $15 - local.get $18 + local.get $19 i32.const 1 i32.shl i32.add @@ -2289,8 +2354,8 @@ i64.shl local.get $13 i64.add - local.set $19 - local.get $19 + local.set $20 + local.get $20 local.get $5 i64.le_u if @@ -2299,13 +2364,13 @@ i32.add global.set $~lib/util/number/_K local.get $0 - local.set $24 + local.set $26 local.get $15 - local.set $18 + local.set $25 local.get $5 + local.set $24 + local.get $20 local.set $23 - local.get $19 - local.set $22 i32.const 1720 local.get $14 i32.const 2 @@ -2315,71 +2380,71 @@ local.get $7 i64.extend_i32_s i64.shl - local.set $21 + local.set $22 local.get $10 - local.set $20 - local.get $24 - local.get $18 + local.set $21 + local.get $26 + local.get $25 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $25 - local.get $25 + local.set $27 + local.get $27 i32.load16_u - local.set $26 + local.set $28 loop $while-continue|3 - local.get $22 - local.get $20 + local.get $23 + local.get $21 i64.lt_u if (result i32) + local.get $24 local.get $23 - local.get $22 i64.sub - local.get $21 + local.get $22 i64.ge_u else i32.const 0 end if (result i32) + local.get $23 local.get $22 - local.get $21 i64.add - local.get $20 + local.get $21 i64.lt_u if (result i32) i32.const 1 else - local.get $20 - local.get $22 + local.get $21 + local.get $23 i64.sub + local.get $23 local.get $22 - local.get $21 i64.add - local.get $20 + local.get $21 i64.sub i64.gt_u end else i32.const 0 end - local.set $27 - local.get $27 + local.set $30 + local.get $30 if - local.get $26 + local.get $28 i32.const 1 i32.sub - local.set $26 + local.set $28 + local.get $23 local.get $22 - local.get $21 i64.add - local.set $22 + local.set $23 br $while-continue|3 end end - local.get $25 - local.get $26 + local.get $27 + local.get $28 i32.store16 local.get $15 return @@ -2389,8 +2454,8 @@ end loop $while-continue|4 i32.const 1 - local.set $16 - local.get $16 + local.set $31 + local.get $31 if local.get $13 i64.const 10 @@ -2404,8 +2469,8 @@ local.get $7 i64.extend_i32_s i64.shr_u - local.set $23 - local.get $23 + local.set $32 + local.get $32 local.get $15 i64.extend_i32_s i64.or @@ -2414,16 +2479,16 @@ if local.get $0 local.get $15 - local.tee $26 + local.tee $33 i32.const 1 i32.add local.set $15 - local.get $26 + local.get $33 i32.const 1 i32.shl i32.add i32.const 48 - local.get $23 + local.get $32 i32.wrap_i64 i32.const 65535 i32.and @@ -2458,79 +2523,79 @@ i64.mul local.set $10 local.get $0 - local.set $18 + local.set $39 local.get $15 - local.set $27 + local.set $38 local.get $5 - local.set $28 + local.set $37 local.get $13 - local.set $22 + local.set $36 local.get $8 - local.set $21 + local.set $35 local.get $10 - local.set $20 - local.get $18 - local.get $27 + local.set $34 + local.get $39 + local.get $38 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $26 - local.get $26 + local.set $40 + local.get $40 i32.load16_u - local.set $25 + local.set $41 loop $while-continue|6 - local.get $22 - local.get $20 + local.get $36 + local.get $34 i64.lt_u if (result i32) - local.get $28 - local.get $22 + local.get $37 + local.get $36 i64.sub - local.get $21 + local.get $35 i64.ge_u else i32.const 0 end if (result i32) - local.get $22 - local.get $21 + local.get $36 + local.get $35 i64.add - local.get $20 + local.get $34 i64.lt_u if (result i32) i32.const 1 else - local.get $20 - local.get $22 + local.get $34 + local.get $36 i64.sub - local.get $22 - local.get $21 + local.get $36 + local.get $35 i64.add - local.get $20 + local.get $34 i64.sub i64.gt_u end else i32.const 0 end - local.set $24 - local.get $24 + local.set $43 + local.get $43 if - local.get $25 + local.get $41 i32.const 1 i32.sub - local.set $25 - local.get $22 - local.get $21 + local.set $41 + local.get $36 + local.get $35 i64.add - local.set $22 + local.set $36 br $while-continue|6 end end - local.get $26 - local.get $25 + local.get $40 + local.get $41 i32.store16 local.get $15 return @@ -2545,6 +2610,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -2564,11 +2711,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -2588,8 +2735,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -2698,17 +2845,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -2725,16 +2872,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -2744,45 +2891,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -2793,8 +2940,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -2879,31 +3026,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -2914,8 +3061,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -3000,17 +3147,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -3021,8 +3168,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -3109,227 +3256,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -3338,115 +3485,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -3455,59 +3602,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -3516,31 +3663,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -3549,17 +3696,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -3570,6 +3717,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -3647,11 +3802,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -3661,8 +3816,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -3686,21 +3841,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -3729,8 +3884,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -3755,8 +3910,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -3776,8 +3931,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -3806,6 +3961,19 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) local.get $2 i32.eqz if @@ -3895,11 +4063,11 @@ i32.const 1 i32.shl i32.add - local.set $4 - local.get $4 + local.set $6 + local.get $6 i32.const 2 i32.add - local.get $4 + local.get $6 i32.const 0 local.get $2 i32.sub @@ -3932,9 +4100,9 @@ i32.const 2 local.get $3 i32.sub - local.set $4 + local.set $7 local.get $0 - local.get $4 + local.get $7 i32.const 1 i32.shl i32.add @@ -3951,30 +4119,30 @@ i32.or i32.store i32.const 2 - local.set $5 + local.set $8 loop $for-loop|1 - local.get $5 - local.get $4 + local.get $8 + local.get $7 i32.lt_s - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $0 - local.get $5 + local.get $8 i32.const 1 i32.shl i32.add i32.const 48 i32.store16 - local.get $5 + local.get $8 i32.const 1 i32.add - local.set $5 + local.set $8 br $for-loop|1 end end local.get $1 - local.get $4 + local.get $7 i32.add return else @@ -3988,48 +4156,48 @@ local.get $0 i32.const 4 i32.add - local.set $5 + local.set $11 local.get $3 i32.const 1 i32.sub - local.set $6 - local.get $6 + local.set $10 + local.get $10 i32.const 0 i32.lt_s - local.set $4 - local.get $4 + local.set $12 + local.get $12 if i32.const 0 - local.get $6 + local.get $10 i32.sub - local.set $6 + local.set $10 end - local.get $6 + local.get $10 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $7 - local.get $5 - local.set $10 - local.get $6 - local.set $9 - local.get $7 - local.set $8 + local.set $13 + local.get $11 + local.set $16 + local.get $10 + local.set $15 + local.get $13 + local.set $14 i32.const 0 i32.const 1 i32.ge_s drop - local.get $10 - local.get $9 - local.get $8 + local.get $16 + local.get $15 + local.get $14 call $~lib/util/number/utoa32_lut - local.get $5 + local.get $11 i32.const 45 i32.const 43 - local.get $4 + local.get $12 select i32.store16 - local.get $7 + local.get $13 local.set $1 local.get $1 i32.const 2 @@ -4039,14 +4207,14 @@ local.get $1 i32.const 1 i32.shl - local.set $7 + local.set $17 local.get $0 i32.const 4 i32.add local.get $0 i32.const 2 i32.add - local.get $7 + local.get $17 i32.const 2 i32.sub call $~lib/memory/memory.copy @@ -4054,58 +4222,58 @@ i32.const 46 i32.store16 offset=2 local.get $0 - local.get $7 + local.get $17 i32.add i32.const 101 i32.store16 offset=2 local.get $1 local.get $0 - local.get $7 + local.get $17 i32.add i32.const 4 i32.add - local.set $9 + local.set $19 local.get $3 i32.const 1 i32.sub - local.set $8 - local.get $8 + local.set $18 + local.get $18 i32.const 0 i32.lt_s - local.set $4 - local.get $4 + local.set $20 + local.get $20 if i32.const 0 - local.get $8 + local.get $18 i32.sub - local.set $8 + local.set $18 end - local.get $8 + local.get $18 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $5 - local.get $9 - local.set $11 - local.get $8 - local.set $6 - local.get $5 - local.set $10 + local.set $21 + local.get $19 + local.set $24 + local.get $18 + local.set $23 + local.get $21 + local.set $22 i32.const 0 i32.const 1 i32.ge_s drop - local.get $11 - local.get $6 - local.get $10 + local.get $24 + local.get $23 + local.get $22 call $~lib/util/number/utoa32_lut - local.get $9 + local.get $19 i32.const 45 i32.const 43 - local.get $4 + local.get $20 select i32.store16 - local.get $5 + local.get $21 i32.add local.set $1 local.get $1 @@ -4136,19 +4304,51 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 f64) - (local $17 i64) - (local $18 i64) - (local $19 i64) - (local $20 i64) + (local $16 i32) + (local $17 f64) + (local $18 i32) + (local $19 i32) + (local $20 i32) (local $21 i64) - (local $22 i64) + (local $22 i32) (local $23 i64) (local $24 i64) (local $25 i64) - (local $26 i32) + (local $26 i64) (local $27 i64) - (local $28 i32) + (local $28 i64) + (local $29 i64) + (local $30 i64) + (local $31 i64) + (local $32 i64) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i64) + (local $37 i64) + (local $38 i64) + (local $39 i64) + (local $40 i64) + (local $41 i64) + (local $42 i64) + (local $43 i64) + (local $44 i64) + (local $45 i64) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i64) + (local $50 i64) + (local $51 i64) + (local $52 i64) + (local $53 i64) + (local $54 i64) + (local $55 i64) + (local $56 i64) + (local $57 i64) + (local $58 i64) + (local $59 i64) + (local $60 i32) local.get $1 f64.const 0 f64.lt @@ -4252,47 +4452,47 @@ local.get $13 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp - local.set $10 + local.set $16 i32.const -61 - local.get $10 + local.get $16 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 f64.mul f64.const 347 f64.add - local.set $16 - local.get $16 + local.set $17 + local.get $17 i32.trunc_f64_s - local.set $15 - local.get $15 - local.get $15 + local.set $18 + local.get $18 + local.get $18 f64.convert_i32_s - local.get $16 + local.get $17 f64.ne i32.add - local.set $15 - local.get $15 + local.set $18 + local.get $18 i32.const 3 i32.shr_s i32.const 1 i32.add - local.set $14 + local.set $19 i32.const 348 - local.get $14 + local.get $19 i32.const 3 i32.shl i32.sub global.set $~lib/util/number/_K i32.const 848 - local.get $14 + local.get $19 i32.const 3 i32.shl i32.add i64.load global.set $~lib/util/number/_frc_pow i32.const 1544 - local.get $14 + local.get $19 i32.const 1 i32.shl i32.add @@ -4301,249 +4501,249 @@ local.get $9 i64.clz i32.wrap_i64 - local.set $14 + local.set $20 local.get $9 - local.get $14 + local.get $20 i64.extend_i32_s i64.shl local.set $9 local.get $7 - local.get $14 + local.get $20 i32.sub local.set $7 global.get $~lib/util/number/_frc_pow - local.set $12 + local.set $21 global.get $~lib/util/number/_exp_pow - local.set $15 + local.set $22 local.get $9 - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $24 + local.get $21 + local.set $23 + local.get $24 i64.const 4294967295 i64.and - local.set $18 - local.get $11 + local.set $25 + local.get $23 i64.const 4294967295 i64.and - local.set $19 - local.get $17 + local.set $26 + local.get $24 i64.const 32 i64.shr_u - local.set $20 - local.get $11 + local.set $27 + local.get $23 i64.const 32 i64.shr_u - local.set $21 - local.get $18 - local.get $19 + local.set $28 + local.get $25 + local.get $26 i64.mul - local.set $22 - local.get $20 - local.get $19 + local.set $29 + local.get $27 + local.get $26 i64.mul - local.get $22 + local.get $29 i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $18 - local.get $21 + local.set $30 + local.get $25 + local.get $28 i64.mul - local.get $23 + local.get $30 i64.const 4294967295 i64.and i64.add - local.set $24 - local.get $24 + local.set $31 + local.get $31 i64.const 2147483647 i64.add - local.set $24 - local.get $23 + local.set $31 + local.get $30 i64.const 32 i64.shr_u - local.set $23 - local.get $24 + local.set $30 + local.get $31 i64.const 32 i64.shr_u - local.set $24 - local.get $20 - local.get $21 + local.set $31 + local.get $27 + local.get $28 i64.mul - local.get $23 + local.get $30 i64.add - local.get $24 + local.get $31 i64.add - local.set $24 + local.set $32 local.get $7 - local.set $10 - local.get $15 - local.set $13 - local.get $10 - local.get $13 + local.set $34 + local.get $22 + local.set $33 + local.get $34 + local.get $33 i32.add i32.const 64 i32.add - local.set $10 + local.set $35 global.get $~lib/util/number/_frc_plus - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $37 + local.get $21 + local.set $36 + local.get $37 i64.const 4294967295 i64.and - local.set $23 - local.get $11 + local.set $38 + local.get $36 i64.const 4294967295 i64.and - local.set $22 - local.get $17 + local.set $39 + local.get $37 i64.const 32 i64.shr_u - local.set $21 - local.get $11 + local.set $40 + local.get $36 i64.const 32 i64.shr_u - local.set $20 - local.get $23 - local.get $22 + local.set $41 + local.get $38 + local.get $39 i64.mul - local.set $19 - local.get $21 - local.get $22 + local.set $42 + local.get $40 + local.get $39 i64.mul - local.get $19 + local.get $42 i64.const 32 i64.shr_u i64.add - local.set $18 - local.get $23 - local.get $20 + local.set $43 + local.get $38 + local.get $41 i64.mul - local.get $18 + local.get $43 i64.const 4294967295 i64.and i64.add - local.set $25 - local.get $25 + local.set $44 + local.get $44 i64.const 2147483647 i64.add - local.set $25 - local.get $18 + local.set $44 + local.get $43 i64.const 32 i64.shr_u - local.set $18 - local.get $25 + local.set $43 + local.get $44 i64.const 32 i64.shr_u - local.set $25 - local.get $21 - local.get $20 + local.set $44 + local.get $40 + local.get $41 i64.mul - local.get $18 + local.get $43 i64.add - local.get $25 + local.get $44 i64.add i64.const 1 i64.sub - local.set $25 + local.set $45 global.get $~lib/util/number/_exp - local.set $26 - local.get $15 - local.set $13 - local.get $26 - local.get $13 + local.set $47 + local.get $22 + local.set $46 + local.get $47 + local.get $46 i32.add i32.const 64 i32.add - local.set $26 + local.set $48 global.get $~lib/util/number/_frc_minus - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $50 + local.get $21 + local.set $49 + local.get $50 i64.const 4294967295 i64.and - local.set $18 - local.get $11 + local.set $51 + local.get $49 i64.const 4294967295 i64.and - local.set $19 - local.get $17 + local.set $52 + local.get $50 i64.const 32 i64.shr_u - local.set $20 - local.get $11 + local.set $53 + local.get $49 i64.const 32 i64.shr_u - local.set $21 - local.get $18 - local.get $19 + local.set $54 + local.get $51 + local.get $52 i64.mul - local.set $22 - local.get $20 - local.get $19 + local.set $55 + local.get $53 + local.get $52 i64.mul - local.get $22 + local.get $55 i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $18 - local.get $21 + local.set $56 + local.get $51 + local.get $54 i64.mul - local.get $23 + local.get $56 i64.const 4294967295 i64.and i64.add - local.set $27 - local.get $27 + local.set $57 + local.get $57 i64.const 2147483647 i64.add - local.set $27 - local.get $23 + local.set $57 + local.get $56 i64.const 32 i64.shr_u - local.set $23 - local.get $27 + local.set $56 + local.get $57 i64.const 32 i64.shr_u - local.set $27 - local.get $20 - local.get $21 + local.set $57 + local.get $53 + local.get $54 i64.mul - local.get $23 + local.get $56 i64.add - local.get $27 + local.get $57 i64.add i64.const 1 i64.add - local.set $27 - local.get $25 - local.get $27 + local.set $58 + local.get $45 + local.get $58 i64.sub - local.set $23 + local.set $59 local.get $4 - local.get $24 - local.get $10 - local.get $25 - local.get $26 - local.get $23 + local.get $32 + local.get $35 + local.get $45 + local.get $48 + local.get $59 local.get $3 call $~lib/util/number/genDigits - local.set $28 + local.set $60 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $28 + local.get $60 local.get $2 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.set $28 - local.get $28 + local.set $60 + local.get $60 local.get $2 i32.add ) @@ -4557,6 +4757,16 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) local.get $0 call $~lib/string/String#get:length local.set $3 @@ -4568,67 +4778,67 @@ local.get $5 i32.gt_s select - local.tee $4 + local.tee $6 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $7 + local.get $6 + local.get $7 i32.lt_s select - local.set $6 + local.set $8 local.get $2 - local.tee $4 + local.tee $9 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 + local.tee $10 + local.get $9 + local.get $10 i32.gt_s select - local.tee $4 + local.tee $11 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $12 + local.get $11 + local.get $12 i32.lt_s select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 + local.set $13 + local.get $8 + local.tee $14 + local.get $13 + local.tee $15 + local.get $14 + local.get $15 i32.lt_s select i32.const 1 i32.shl - local.set $8 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 + local.set $16 + local.get $8 + local.tee $17 + local.get $13 + local.tee $18 + local.get $17 + local.get $18 i32.gt_s select i32.const 1 i32.shl - local.set $9 - local.get $9 - local.get $8 + local.set $19 + local.get $19 + local.get $16 i32.sub - local.set $10 - local.get $10 + local.set $20 + local.get $20 i32.eqz if i32.const 1776 call $~lib/rt/pure/__retain return end - local.get $8 + local.get $16 i32.eqz if (result i32) - local.get $9 + local.get $19 local.get $3 i32.const 1 i32.shl @@ -4641,17 +4851,17 @@ call $~lib/rt/pure/__retain return end - local.get $10 + local.get $20 i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $11 - local.get $11 + local.set $21 + local.get $21 local.get $0 - local.get $8 + local.get $16 i32.add - local.get $10 + local.get $20 call $~lib/memory/memory.copy - local.get $11 + local.get $21 call $~lib/rt/pure/__retain ) (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) diff --git a/tests/compiler/resolve-unary.untouched.wat b/tests/compiler/resolve-unary.untouched.wat index 4aa886e204..181f08d8e0 100644 --- a/tests/compiler/resolve-unary.untouched.wat +++ b/tests/compiler/resolve-unary.untouched.wat @@ -97,6 +97,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -127,8 +128,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -210,6 +211,9 @@ (local $9 i64) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) loop $while-continue|0 local.get $1 i32.const 10000 @@ -274,30 +278,30 @@ local.get $1 i32.const 100 i32.div_u - local.set $3 + local.set $10 local.get $1 i32.const 100 i32.rem_u - local.set $10 - local.get $3 + local.set $11 + local.get $10 local.set $1 local.get $2 i32.const 2 i32.sub local.set $2 i32.const 36 - local.get $10 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $12 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $12 i32.store end local.get $1 @@ -314,13 +318,13 @@ i32.shl i32.add i32.load - local.set $11 + local.set $13 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $13 i32.store else local.get $2 @@ -330,13 +334,13 @@ i32.const 48 local.get $1 i32.add - local.set $11 + local.set $14 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $14 i32.store16 end ) @@ -437,6 +441,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -508,33 +515,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $10 + local.get $12 return end local.get $5 @@ -549,16 +556,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -590,44 +600,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $6 ) (func $~lib/number/Bool#toString (param $0 i32) (result i32) local.get $0 @@ -775,6 +785,20 @@ (local $30 i32) (local $31 i32) (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) global.get $~lib/heap/__heap_base i32.const 15 i32.add @@ -903,7 +927,7 @@ global.set $resolve-unary/b local.get $7 call $~lib/number/I32#toString - local.tee $7 + local.tee $8 i32.const 544 call $~lib/string/String.__eq i32.eqz @@ -916,13 +940,13 @@ unreachable end global.get $resolve-unary/b - local.tee $8 + local.tee $9 i32.const 1 i32.sub global.set $resolve-unary/b - local.get $8 + local.get $9 call $~lib/number/I32#toString - local.tee $8 + local.tee $10 i32.const 576 call $~lib/string/String.__eq i32.eqz @@ -939,9 +963,9 @@ global.set $resolve-unary/foo global.get $resolve-unary/foo call $resolve-unary/Foo#plus - local.tee $9 + local.tee $11 call $~lib/string/String#toString - local.tee $10 + local.tee $12 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -955,9 +979,9 @@ end global.get $resolve-unary/foo call $resolve-unary/Foo#minus - local.tee $11 + local.tee $13 call $~lib/string/String#toString - local.tee $12 + local.tee $14 i32.const 736 call $~lib/string/String.__eq i32.eqz @@ -971,23 +995,23 @@ end global.get $resolve-unary/foo call $resolve-unary/Foo#prefix_inc - local.tee $13 - local.tee $14 - global.get $resolve-unary/foo local.tee $15 + local.tee $16 + global.get $resolve-unary/foo + local.tee $17 i32.ne if - local.get $14 + local.get $16 call $~lib/rt/stub/__retain - local.set $14 - local.get $15 + local.set $16 + local.get $17 call $~lib/rt/stub/__release end - local.get $14 + local.get $16 global.set $resolve-unary/foo global.get $resolve-unary/foo call $resolve-unary/Foo#self - local.tee $14 + local.tee $18 global.get $resolve-unary/foo i32.eq i32.eqz @@ -1001,23 +1025,23 @@ end global.get $resolve-unary/foo call $resolve-unary/Foo#prefix_dec - local.tee $15 - local.tee $16 + local.tee $19 + local.tee $20 global.get $resolve-unary/foo - local.tee $17 + local.tee $21 i32.ne if - local.get $16 + local.get $20 call $~lib/rt/stub/__retain - local.set $16 - local.get $17 + local.set $20 + local.get $21 call $~lib/rt/stub/__release end - local.get $16 + local.get $20 global.set $resolve-unary/foo global.get $resolve-unary/foo call $resolve-unary/Foo#self - local.tee $16 + local.tee $22 global.get $resolve-unary/foo i32.eq i32.eqz @@ -1031,9 +1055,9 @@ end global.get $resolve-unary/foo call $resolve-unary/Foo#not - local.tee $17 + local.tee $23 call $~lib/string/String#toString - local.tee $18 + local.tee $24 i32.const 768 call $~lib/string/String.__eq i32.eqz @@ -1047,9 +1071,9 @@ end global.get $resolve-unary/foo call $resolve-unary/Foo#bitwise_not - local.tee $19 + local.tee $25 call $~lib/string/String#toString - local.tee $20 + local.tee $26 i32.const 800 call $~lib/string/String.__eq i32.eqz @@ -1062,25 +1086,25 @@ unreachable end global.get $resolve-unary/foo - local.tee $21 + local.tee $27 call $resolve-unary/Foo#postfix_inc - local.tee $22 - local.tee $23 + local.tee $28 + local.tee $29 global.get $resolve-unary/foo - local.tee $24 + local.tee $30 i32.ne if - local.get $23 + local.get $29 call $~lib/rt/stub/__retain - local.set $23 - local.get $24 + local.set $29 + local.get $30 call $~lib/rt/stub/__release end - local.get $23 + local.get $29 global.set $resolve-unary/foo - local.get $21 + local.get $27 call $resolve-unary/Foo#self - local.tee $21 + local.tee $31 global.get $resolve-unary/foo i32.eq i32.eqz @@ -1093,25 +1117,25 @@ unreachable end global.get $resolve-unary/foo - local.tee $23 + local.tee $32 call $resolve-unary/Foo#postfix_dec - local.tee $24 - local.tee $25 + local.tee $33 + local.tee $34 global.get $resolve-unary/foo - local.tee $26 + local.tee $35 i32.ne if - local.get $25 + local.get $34 call $~lib/rt/stub/__retain - local.set $25 - local.get $26 + local.set $34 + local.get $35 call $~lib/rt/stub/__release end - local.get $25 + local.get $34 global.set $resolve-unary/foo - local.get $23 + local.get $32 call $resolve-unary/Foo#self - local.tee $23 + local.tee $36 global.get $resolve-unary/foo i32.eq i32.eqz @@ -1128,9 +1152,9 @@ global.set $resolve-unary/bar global.get $resolve-unary/bar call $resolve-unary/Bar.prefix_inc - local.tee $25 + local.tee $37 call $~lib/string/String#toString - local.tee $26 + local.tee $38 i32.const 832 call $~lib/string/String.__eq i32.eqz @@ -1144,9 +1168,9 @@ end global.get $resolve-unary/bar call $resolve-unary/Bar.prefix_dec - local.tee $27 + local.tee $39 call $~lib/string/String#toString - local.tee $28 + local.tee $40 i32.const 864 call $~lib/string/String.__eq i32.eqz @@ -1160,9 +1184,9 @@ end global.get $resolve-unary/bar call $resolve-unary/Bar.postfix_inc - local.tee $29 + local.tee $42 call $~lib/string/String#toString - local.tee $30 + local.tee $43 i32.const 896 call $~lib/string/String.__eq i32.eqz @@ -1176,9 +1200,9 @@ end global.get $resolve-unary/bar call $resolve-unary/Bar.postfix_dec - local.tee $31 + local.tee $45 call $~lib/string/String#toString - local.tee $32 + local.tee $46 i32.const 928 call $~lib/string/String.__eq i32.eqz @@ -1204,12 +1228,8 @@ call $~lib/rt/stub/__release local.get $6 call $~lib/rt/stub/__release - local.get $7 - call $~lib/rt/stub/__release local.get $8 call $~lib/rt/stub/__release - local.get $9 - call $~lib/rt/stub/__release local.get $10 call $~lib/rt/stub/__release local.get $11 @@ -1222,18 +1242,10 @@ call $~lib/rt/stub/__release local.get $15 call $~lib/rt/stub/__release - local.get $16 - call $~lib/rt/stub/__release - local.get $17 - call $~lib/rt/stub/__release local.get $18 call $~lib/rt/stub/__release local.get $19 call $~lib/rt/stub/__release - local.get $20 - call $~lib/rt/stub/__release - local.get $21 - call $~lib/rt/stub/__release local.get $22 call $~lib/rt/stub/__release local.get $23 @@ -1244,17 +1256,29 @@ call $~lib/rt/stub/__release local.get $26 call $~lib/rt/stub/__release - local.get $27 - call $~lib/rt/stub/__release local.get $28 call $~lib/rt/stub/__release - local.get $29 + local.get $31 call $~lib/rt/stub/__release - local.get $30 + local.get $33 call $~lib/rt/stub/__release - local.get $31 + local.get $36 call $~lib/rt/stub/__release - local.get $32 + local.get $37 + call $~lib/rt/stub/__release + local.get $38 + call $~lib/rt/stub/__release + local.get $39 + call $~lib/rt/stub/__release + local.get $40 + call $~lib/rt/stub/__release + local.get $42 + call $~lib/rt/stub/__release + local.get $43 + call $~lib/rt/stub/__release + local.get $45 + call $~lib/rt/stub/__release + local.get $46 call $~lib/rt/stub/__release ) (func $~start diff --git a/tests/compiler/retain-release-sanity.optimized.wat b/tests/compiler/retain-release-sanity.optimized.wat index e3b306b5ff..6102806f49 100644 --- a/tests/compiler/retain-release-sanity.optimized.wat +++ b/tests/compiler/retain-release-sanity.optimized.wat @@ -1770,16 +1770,16 @@ i32.const 3 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.tee $3 + local.tee $0 i32.const 0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 0 i32.store offset=12 i32.const 12 @@ -1789,35 +1789,36 @@ i32.const 12 call $~lib/memory/memory.fill local.get $2 - local.tee $0 - local.get $3 + local.set $1 + local.get $2 + local.get $0 i32.load - local.tee $4 + local.tee $3 i32.ne if - local.get $0 + local.get $1 call $~lib/rt/pure/__retain - local.set $0 - local.get $4 + local.set $1 + local.get $3 call $~lib/rt/pure/__release end - local.get $3 local.get $0 + local.get $1 i32.store - local.get $3 + local.get $0 local.get $2 i32.store offset=4 - local.get $3 + local.get $0 i32.const 12 i32.store offset=8 - local.get $3 + local.get $0 i32.const 3 i32.store offset=12 - local.get $3 + local.get $0 call $~lib/array/Array#push - local.get $3 + local.get $0 call $~lib/array/Array#push - local.get $3 + local.get $0 i32.load offset=12 local.tee $2 i32.const 1 @@ -1830,7 +1831,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.load offset=4 local.get $2 i32.const 1 @@ -1841,25 +1842,25 @@ i32.add i32.load drop - local.get $3 + local.get $0 local.get $2 i32.store offset=12 - local.get $3 + local.get $0 call $~lib/rt/pure/__release i32.const 16 i32.const 5 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.tee $3 + local.tee $0 i32.const 0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 0 i32.store offset=12 i32.const 0 @@ -1869,33 +1870,34 @@ i32.const 0 call $~lib/memory/memory.fill local.get $2 - local.tee $0 - local.get $3 + local.set $1 + local.get $2 + local.get $0 i32.load - local.tee $4 + local.tee $3 i32.ne if - local.get $0 + local.get $1 call $~lib/rt/pure/__retain - local.set $0 - local.get $4 + local.set $1 + local.get $3 call $~lib/rt/pure/__release end - local.get $3 local.get $0 + local.get $1 i32.store - local.get $3 + local.get $0 local.get $2 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 0 i32.store offset=12 - local.get $3 + local.get $0 loop $for-loop|0 - local.get $1 + local.get $4 i32.const 10 i32.lt_s if @@ -1903,16 +1905,16 @@ i32.const 4 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.tee $3 + local.tee $0 i32.const 0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 0 i32.store offset=12 i32.const 0 @@ -1922,46 +1924,47 @@ i32.const 0 call $~lib/memory/memory.fill local.get $2 - local.tee $0 - local.get $3 + local.set $1 + local.get $2 + local.get $0 i32.load local.tee $5 i32.ne if - local.get $0 + local.get $1 call $~lib/rt/pure/__retain - local.set $0 + local.set $1 local.get $5 call $~lib/rt/pure/__release end - local.get $3 local.get $0 + local.get $1 i32.store - local.get $3 + local.get $0 local.get $2 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 0 i32.store offset=12 i32.const 0 - local.set $0 + local.set $2 loop $for-loop|1 - local.get $0 + local.get $2 i32.const 10 i32.lt_s if - local.get $3 - local.get $3 + local.get $0 + local.get $0 i32.load offset=12 local.tee $5 i32.const 1 i32.add - local.tee $2 + local.tee $1 call $~lib/array/ensureSize - local.get $3 + local.get $0 i32.load offset=4 local.get $5 i32.const 2 @@ -1969,22 +1972,22 @@ i32.add i32.const 1344 i32.store - local.get $3 - local.get $2 - i32.store offset=12 local.get $0 + local.get $1 + i32.store offset=12 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $3 + local.get $0 call $~lib/rt/pure/__release - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|0 end end @@ -1992,30 +1995,30 @@ i32.const 1360 i32.const 1392 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.const 1456 call $~lib/string/String.__concat - local.get $1 + local.get $0 call $~lib/rt/pure/__release call $~lib/rt/pure/__release i32.const 4 i32.const 6 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.tee $2 + local.tee $1 i32.const 0 i32.store i32.const 4 i32.const 7 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.tee $3 + local.tee $2 i32.const 0 i32.store - local.get $3 - local.tee $0 local.get $2 - local.tee $1 + local.tee $0 + local.get $1 + local.tee $3 i32.load local.tee $4 i32.ne @@ -2026,94 +2029,95 @@ local.get $4 call $~lib/rt/pure/__release end - local.get $1 + local.get $3 local.get $0 i32.store - local.get $1 - local.set $0 + local.get $2 + local.tee $0 local.get $3 - local.tee $1 - local.get $0 - i32.load local.tee $4 + i32.load + local.tee $3 i32.ne if - local.get $1 + local.get $0 call $~lib/rt/pure/__retain - local.set $1 - local.get $4 + local.set $0 + local.get $3 call $~lib/rt/pure/__release end + local.get $4 local.get $0 - local.get $1 i32.store - local.get $0 - local.tee $1 - local.get $3 + local.get $4 local.tee $0 + local.get $2 + local.tee $3 i32.load local.tee $4 i32.ne if - local.get $1 + local.get $0 call $~lib/rt/pure/__retain - local.set $1 + local.set $0 local.get $4 call $~lib/rt/pure/__release end + local.get $3 local.get $0 - local.get $1 i32.store - local.get $2 - local.tee $1 - local.get $0 + local.get $1 + local.tee $0 + local.get $3 i32.load local.tee $4 i32.ne if - local.get $1 + local.get $0 call $~lib/rt/pure/__retain - local.set $1 + local.set $0 local.get $4 call $~lib/rt/pure/__release end + local.get $3 local.get $0 - local.get $1 i32.store local.get $3 - local.get $2 - local.tee $1 - i32.load + local.tee $0 + local.get $1 local.tee $4 + i32.load + local.tee $3 i32.ne if local.get $0 call $~lib/rt/pure/__retain local.set $0 - local.get $4 + local.get $3 call $~lib/rt/pure/__release end - local.get $1 + local.get $4 local.get $0 i32.store + local.get $4 + local.tee $0 local.get $2 - local.get $3 i32.load - local.tee $0 + local.tee $3 i32.ne if - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 call $~lib/rt/pure/__release end - local.get $3 - local.get $1 - i32.store local.get $2 + local.get $0 + i32.store + local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $2 call $~lib/rt/pure/__release call $~lib/rt/pure/__collect ) @@ -2401,25 +2405,25 @@ global.get $~lib/rt/pure/ROOTS local.tee $0 local.tee $4 - local.set $3 - global.get $~lib/rt/pure/CUR local.set $1 + global.get $~lib/rt/pure/CUR + local.set $2 loop $for-loop|0 - local.get $3 local.get $1 + local.get $2 i32.lt_u if - local.get $3 + local.get $1 i32.load - local.tee $2 - i32.load offset=4 local.tee $5 + i32.load offset=4 + local.tee $3 i32.const 1879048192 i32.and i32.const 805306368 i32.eq if (result i32) - local.get $5 + local.get $3 i32.const 268435455 i32.and i32.const 0 @@ -2428,10 +2432,10 @@ i32.const 0 end if - local.get $2 + local.get $5 call $~lib/rt/pure/markGray local.get $4 - local.get $2 + local.get $5 i32.store local.get $4 i32.const 4 @@ -2439,30 +2443,30 @@ local.set $4 else i32.const 0 - local.get $5 + local.get $3 i32.const 268435455 i32.and i32.eqz - local.get $5 + local.get $3 i32.const 1879048192 i32.and select if global.get $~lib/rt/tlsf/ROOT - local.get $2 + local.get $5 call $~lib/rt/tlsf/freeBlock else - local.get $2 local.get $5 + local.get $3 i32.const 2147483647 i32.and i32.store offset=4 end end - local.get $3 + local.get $1 i32.const 4 i32.add - local.set $3 + local.set $1 br $for-loop|0 end end diff --git a/tests/compiler/retain-release-sanity.untouched.wat b/tests/compiler/retain-release-sanity.untouched.wat index 3dfdea6b1e..cd0d4fbda9 100644 --- a/tests/compiler/retain-release-sanity.untouched.wat +++ b/tests/compiler/retain-release-sanity.untouched.wat @@ -64,6 +64,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -200,59 +209,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -282,6 +291,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -344,8 +367,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -356,16 +379,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -383,18 +406,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -406,7 +429,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -419,23 +442,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -449,14 +472,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -476,7 +499,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -494,24 +517,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -519,21 +542,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -549,86 +572,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -639,6 +662,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -778,11 +802,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -802,6 +826,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -858,66 +888,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -930,11 +960,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -983,6 +1013,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1056,11 +1094,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1071,10 +1109,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1087,30 +1125,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1121,45 +1159,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1168,6 +1206,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1214,15 +1253,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1236,12 +1275,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1251,6 +1290,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1315,11 +1356,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1327,11 +1368,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -1894,6 +1935,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -1913,11 +2036,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -1937,8 +2060,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -2047,17 +2170,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -2074,16 +2197,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -2093,45 +2216,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -2142,8 +2265,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -2228,31 +2351,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -2263,8 +2386,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -2349,17 +2472,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -2370,8 +2493,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -2458,227 +2581,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -2687,115 +2810,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -2804,59 +2927,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -2865,31 +2988,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -2898,17 +3021,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -2919,6 +3042,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -2996,11 +3127,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -3010,8 +3141,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -3035,21 +3166,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -3078,8 +3209,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -3104,8 +3235,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -3125,8 +3256,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -3170,6 +3301,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) local.get $2 call $~lib/rt/tlsf/prepareSize local.set $3 @@ -3227,8 +3359,8 @@ i32.xor i32.and i32.add - local.set $5 - local.get $5 + local.set $8 + local.get $8 local.get $3 i32.ge_u if @@ -3239,7 +3371,7 @@ local.get $4 i32.const 3 i32.and - local.get $5 + local.get $8 i32.or i32.store local.get $1 @@ -3258,12 +3390,12 @@ local.get $1 i32.load offset=8 call $~lib/rt/tlsf/allocateBlock - local.set $8 - local.get $8 + local.set $9 + local.get $9 local.get $1 i32.load offset=4 i32.store offset=4 - local.get $8 + local.get $9 i32.const 16 i32.add local.get $1 @@ -3278,13 +3410,13 @@ i32.const 1 drop local.get $1 - local.get $8 + local.get $9 call $~lib/rt/rtrace/onrealloc local.get $0 local.get $1 call $~lib/rt/tlsf/freeBlock end - local.get $8 + local.get $9 ) (func $~lib/rt/tlsf/__realloc (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize @@ -3636,6 +3768,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 @@ -3678,32 +3812,32 @@ if i32.const 336 call $~lib/rt/pure/__retain - local.set $2 + local.set $7 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $7 return end local.get $6 i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $7 - local.get $7 + local.set $8 + local.get $8 local.get $0 local.get $4 call $~lib/memory/memory.copy - local.get $7 + local.get $8 local.get $4 i32.add local.get $1 local.get $5 call $~lib/memory/memory.copy - local.get $7 - local.set $2 + local.get $8 + local.set $9 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $9 ) (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3765,6 +3899,31 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) i32.const 0 i32.const 3 call $~lib/array/Array#constructor @@ -3785,183 +3944,183 @@ i32.const 0 i32.const 0 call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#constructor - local.set $0 - i32.const 0 local.set $1 + i32.const 0 + local.set $2 loop $for-loop|0 - local.get $1 + local.get $2 i32.const 10 i32.lt_s - local.set $2 - local.get $2 + local.set $3 + local.get $3 if i32.const 0 i32.const 0 call $~lib/array/Array<~lib/string/String>#constructor - local.set $3 - i32.const 0 local.set $4 + i32.const 0 + local.set $5 loop $for-loop|1 - local.get $4 + local.get $5 i32.const 10 i32.lt_s - local.set $5 - local.get $5 + local.set $6 + local.get $6 if - local.get $3 + local.get $4 i32.const 336 call $~lib/array/Array<~lib/string/String>#push drop - 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 $3 + local.get $4 call $~lib/rt/pure/__release - 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 $0 + local.get $1 call $~lib/rt/pure/__release i32.const 352 - local.set $0 - local.get $0 + local.set $7 + local.get $7 i32.const 384 call $~lib/string/String.__concat - local.tee $1 + local.tee $8 call $~lib/rt/pure/__retain - local.set $2 - local.get $2 + local.set $9 + local.get $9 i32.const 448 call $~lib/string/String.__concat - local.tee $3 + local.tee $10 drop - local.get $0 + local.get $7 call $~lib/rt/pure/__release - local.get $1 + local.get $8 call $~lib/rt/pure/__release - local.get $2 + local.get $9 call $~lib/rt/pure/__release - local.get $3 + local.get $10 call $~lib/rt/pure/__release i32.const 0 call $retain-release-sanity/A#constructor - local.set $3 + local.set $11 i32.const 0 call $retain-release-sanity/B#constructor - local.set $2 - local.get $3 - local.tee $5 - local.get $2 - local.tee $4 - local.get $5 + local.set $12 + local.get $11 + local.tee $13 + local.get $12 + local.tee $14 + local.get $13 i32.load - local.tee $1 + local.tee $15 i32.ne if - local.get $4 + local.get $14 call $~lib/rt/pure/__retain - local.set $4 - local.get $1 + local.set $14 + local.get $15 call $~lib/rt/pure/__release end - local.get $4 + local.get $14 i32.store - local.get $3 - local.tee $0 - local.get $2 - local.tee $1 - local.get $0 + local.get $11 + local.tee $16 + local.get $12 + local.tee $17 + local.get $16 i32.load - local.tee $5 + local.tee $18 i32.ne if - local.get $1 + local.get $17 call $~lib/rt/pure/__retain - local.set $1 - local.get $5 + local.set $17 + local.get $18 call $~lib/rt/pure/__release end - local.get $1 + local.get $17 i32.store - local.get $2 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 + local.get $12 + local.tee $19 + local.get $11 + local.tee $20 + local.get $19 i32.load - local.tee $0 + local.tee $21 i32.ne if - local.get $5 + local.get $20 call $~lib/rt/pure/__retain - local.set $5 - local.get $0 + local.set $20 + local.get $21 call $~lib/rt/pure/__release end - local.get $5 + local.get $20 i32.store - local.get $2 - local.tee $1 - local.get $3 - local.tee $0 - local.get $1 + local.get $12 + local.tee $22 + local.get $11 + local.tee $23 + local.get $22 i32.load - local.tee $4 + local.tee $24 i32.ne if - local.get $0 + local.get $23 call $~lib/rt/pure/__retain - local.set $0 - local.get $4 + local.set $23 + local.get $24 call $~lib/rt/pure/__release end - local.get $0 + local.get $23 i32.store - local.get $3 - local.tee $5 - local.get $2 - local.tee $4 - local.get $5 + local.get $11 + local.tee $25 + local.get $12 + local.tee $26 + local.get $25 i32.load - local.tee $1 + local.tee $27 i32.ne if - local.get $4 + local.get $26 call $~lib/rt/pure/__retain - local.set $4 - local.get $1 + local.set $26 + local.get $27 call $~lib/rt/pure/__release end - local.get $4 + local.get $26 i32.store - local.get $2 - local.tee $0 - local.get $3 - local.tee $1 - local.get $0 + local.get $12 + local.tee $28 + local.get $11 + local.tee $29 + local.get $28 i32.load - local.tee $5 + local.tee $30 i32.ne if - local.get $1 + local.get $29 call $~lib/rt/pure/__retain - local.set $1 - local.get $5 + local.set $29 + local.get $30 call $~lib/rt/pure/__release end - local.get $1 + local.get $29 i32.store - local.get $3 + local.get $11 call $~lib/rt/pure/__release - local.get $2 + local.get $12 call $~lib/rt/pure/__release call $~lib/rt/pure/__collect ) @@ -4322,6 +4481,11 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) i32.const 0 drop global.get $~lib/rt/pure/ROOTS @@ -4407,50 +4571,50 @@ local.get $1 global.set $~lib/rt/pure/CUR local.get $0 - local.set $3 + local.set $7 loop $for-loop|1 - local.get $3 + local.get $7 local.get $1 i32.lt_u - local.set $2 - local.get $2 + local.set $8 + local.get $8 if - local.get $3 + local.get $7 i32.load call $~lib/rt/pure/scan - local.get $3 + local.get $7 i32.const 4 i32.add - local.set $3 + local.set $7 br $for-loop|1 end end local.get $0 - local.set $3 + local.set $9 loop $for-loop|2 - local.get $3 + local.get $9 local.get $1 i32.lt_u - local.set $2 - local.get $2 + local.set $10 + local.get $10 if - local.get $3 + local.get $9 i32.load - local.set $4 - local.get $4 - local.get $4 + local.set $11 + local.get $11 + local.get $11 i32.load offset=4 i32.const -2147483648 i32.const -1 i32.xor i32.and i32.store offset=4 - local.get $4 + local.get $11 call $~lib/rt/pure/collectWhite - local.get $3 + local.get $9 i32.const 4 i32.add - local.set $3 + local.set $9 br $for-loop|2 end end @@ -4460,6 +4624,7 @@ (func $~lib/rt/pure/__visit (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) local.get $0 global.get $~lib/heap/__heap_base i32.lt_u @@ -4540,13 +4705,13 @@ end local.get $2 i32.load offset=4 - local.set $3 - local.get $3 + local.set $4 + local.get $4 i32.const 268435455 i32.const -1 i32.xor i32.and - local.get $3 + local.get $4 i32.const 1 i32.add i32.const 268435455 @@ -4564,11 +4729,11 @@ unreachable end local.get $2 - local.get $3 + local.get $4 i32.const 1 i32.add i32.store offset=4 - local.get $3 + local.get $4 i32.const 1879048192 i32.and i32.const 0 diff --git a/tests/compiler/retain-release.untouched.wat b/tests/compiler/retain-release.untouched.wat index fe6edfb276..20b77858fd 100644 --- a/tests/compiler/retain-release.untouched.wat +++ b/tests/compiler/retain-release.untouched.wat @@ -64,6 +64,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -94,8 +95,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -386,6 +387,8 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) i32.const 0 local.set $1 local.get $0 @@ -407,22 +410,22 @@ end global.get $retain-release/REF call $~lib/rt/stub/__retain - local.set $2 - local.get $2 - local.tee $3 + local.set $4 + local.get $4 + local.tee $5 local.get $1 - local.tee $4 + local.tee $6 i32.ne if - local.get $3 + local.get $5 call $~lib/rt/stub/__retain - local.set $3 - local.get $4 + local.set $5 + local.get $6 call $~lib/rt/stub/__release end - local.get $3 + local.get $5 local.set $1 - local.get $2 + local.get $4 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release @@ -481,6 +484,7 @@ ) (func $retain-release/scopeIfElse (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 if global.get $retain-release/REF @@ -491,8 +495,8 @@ else global.get $retain-release/REF call $~lib/rt/stub/__retain - local.set $1 - local.get $1 + local.set $2 + local.get $2 call $~lib/rt/stub/__release end ) diff --git a/tests/compiler/retain-return.untouched.wat b/tests/compiler/retain-return.untouched.wat index b4dcef0dd6..b70f95e926 100644 --- a/tests/compiler/retain-return.untouched.wat +++ b/tests/compiler/retain-return.untouched.wat @@ -43,6 +43,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -179,59 +188,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -261,6 +270,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -323,8 +346,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -335,16 +358,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -362,18 +385,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -385,7 +408,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -398,23 +421,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -428,14 +451,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -455,7 +478,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -473,24 +496,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -498,21 +521,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -528,86 +551,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -618,6 +641,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -757,11 +781,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -781,6 +805,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -837,66 +867,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -909,11 +939,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -962,6 +992,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1035,11 +1073,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1050,10 +1088,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1066,30 +1104,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1100,45 +1138,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1147,6 +1185,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1193,15 +1232,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1215,12 +1254,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1230,6 +1269,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1294,11 +1335,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1306,11 +1347,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 diff --git a/tests/compiler/rt/instanceof.untouched.wat b/tests/compiler/rt/instanceof.untouched.wat index a1cb7ea6d1..a4c3186f0a 100644 --- a/tests/compiler/rt/instanceof.untouched.wat +++ b/tests/compiler/rt/instanceof.untouched.wat @@ -31,6 +31,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -61,8 +62,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -221,6 +222,23 @@ ) (func $start:rt/instanceof (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/heap/__heap_base i32.const 15 i32.add @@ -263,12 +281,12 @@ unreachable end global.get $rt/instanceof/animal - local.tee $0 + local.tee $1 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $1 i32.const 5 call $~lib/rt/__instanceof end @@ -285,12 +303,12 @@ i32.const 1 drop global.get $rt/instanceof/cat - local.tee $0 + local.tee $2 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $2 i32.const 4 call $~lib/rt/__instanceof end @@ -304,12 +322,12 @@ unreachable end global.get $rt/instanceof/cat - local.tee $0 + local.tee $3 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.const 5 call $~lib/rt/__instanceof end @@ -326,12 +344,12 @@ i32.const 1 drop global.get $rt/instanceof/blackcat - local.tee $0 + local.tee $4 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $4 i32.const 4 call $~lib/rt/__instanceof end @@ -345,12 +363,12 @@ unreachable end global.get $rt/instanceof/blackcat - local.tee $0 + local.tee $5 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $5 i32.const 5 call $~lib/rt/__instanceof end @@ -385,12 +403,12 @@ unreachable end global.get $rt/instanceof/nullableAnimal - local.tee $0 + local.tee $6 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $6 i32.const 4 call $~lib/rt/__instanceof end @@ -405,12 +423,12 @@ unreachable end global.get $rt/instanceof/nullableAnimal - local.tee $0 + local.tee $7 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $7 i32.const 5 call $~lib/rt/__instanceof end @@ -437,12 +455,12 @@ unreachable end global.get $rt/instanceof/nullableCat - local.tee $0 + local.tee $8 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $8 i32.const 4 call $~lib/rt/__instanceof end @@ -456,12 +474,12 @@ unreachable end global.get $rt/instanceof/nullableCat - local.tee $0 + local.tee $9 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $9 i32.const 5 call $~lib/rt/__instanceof end @@ -488,12 +506,12 @@ unreachable end global.get $rt/instanceof/nullableBlackcat - local.tee $0 + local.tee $10 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $10 i32.const 4 call $~lib/rt/__instanceof end @@ -507,12 +525,12 @@ unreachable end global.get $rt/instanceof/nullableBlackcat - local.tee $0 + local.tee $11 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $11 i32.const 5 call $~lib/rt/__instanceof end @@ -539,12 +557,12 @@ unreachable end global.get $rt/instanceof/nullAnimal - local.tee $0 + local.tee $12 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $12 i32.const 4 call $~lib/rt/__instanceof end @@ -559,12 +577,12 @@ unreachable end global.get $rt/instanceof/nullAnimal - local.tee $0 + local.tee $13 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $13 i32.const 5 call $~lib/rt/__instanceof end @@ -592,12 +610,12 @@ unreachable end global.get $rt/instanceof/nullCat - local.tee $0 + local.tee $14 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $14 i32.const 4 call $~lib/rt/__instanceof end @@ -612,12 +630,12 @@ unreachable end global.get $rt/instanceof/nullCat - local.tee $0 + local.tee $15 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $15 i32.const 5 call $~lib/rt/__instanceof end @@ -645,12 +663,12 @@ unreachable end global.get $rt/instanceof/nullBlackcat - local.tee $0 + local.tee $16 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $16 i32.const 4 call $~lib/rt/__instanceof end @@ -665,12 +683,12 @@ unreachable end global.get $rt/instanceof/nullBlackcat - local.tee $0 + local.tee $17 i32.eqz if (result i32) i32.const 0 else - local.get $0 + local.get $17 i32.const 5 call $~lib/rt/__instanceof end diff --git a/tests/compiler/rt/stub-realloc.untouched.wat b/tests/compiler/rt/stub-realloc.untouched.wat index 17b224bc59..0ce3c83396 100644 --- a/tests/compiler/rt/stub-realloc.untouched.wat +++ b/tests/compiler/rt/stub-realloc.untouched.wat @@ -34,6 +34,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -64,8 +65,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -155,6 +156,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -174,11 +257,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -198,8 +281,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -308,17 +391,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -335,16 +418,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -354,45 +437,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -403,8 +486,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -489,31 +572,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -524,8 +607,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -610,17 +693,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -631,8 +714,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -719,227 +802,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -948,115 +1031,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -1065,59 +1148,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -1126,31 +1209,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -1159,17 +1242,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -1180,6 +1263,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -1257,11 +1348,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -1271,8 +1362,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -1296,21 +1387,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -1339,8 +1430,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -1365,8 +1456,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -1386,8 +1477,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -1413,6 +1504,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) local.get $0 i32.const 0 i32.ne @@ -1502,13 +1594,13 @@ local.get $2 i32.load offset=8 call $~lib/rt/stub/__alloc - local.set $6 - local.get $6 + local.set $8 + local.get $8 local.get $0 local.get $2 i32.load offset=12 call $~lib/memory/memory.copy - local.get $6 + local.get $8 local.tee $0 i32.const 16 i32.sub diff --git a/tests/compiler/runtime-full.untouched.wat b/tests/compiler/runtime-full.untouched.wat index d7ab098ac5..492a301344 100644 --- a/tests/compiler/runtime-full.untouched.wat +++ b/tests/compiler/runtime-full.untouched.wat @@ -38,6 +38,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -174,59 +183,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -256,6 +265,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -318,8 +341,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -330,16 +353,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -357,18 +380,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -380,7 +403,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -393,23 +416,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -423,14 +446,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -450,7 +473,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -468,24 +491,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -493,21 +516,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -523,86 +546,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -613,6 +636,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -752,11 +776,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -776,6 +800,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -832,66 +862,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -904,11 +934,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -957,6 +987,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1030,11 +1068,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1045,10 +1083,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1061,30 +1099,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1095,45 +1133,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1142,6 +1180,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1188,15 +1227,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1210,12 +1249,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1225,6 +1264,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1289,11 +1330,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1301,11 +1342,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 diff --git a/tests/compiler/runtime-stub.untouched.wat b/tests/compiler/runtime-stub.untouched.wat index 6fb4fec6af..e0d3907e8b 100644 --- a/tests/compiler/runtime-stub.untouched.wat +++ b/tests/compiler/runtime-stub.untouched.wat @@ -24,6 +24,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -54,8 +55,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s diff --git a/tests/compiler/scoped.untouched.wat b/tests/compiler/scoped.untouched.wat index c41737758b..c8f49d2296 100644 --- a/tests/compiler/scoped.untouched.wat +++ b/tests/compiler/scoped.untouched.wat @@ -10,17 +10,19 @@ (start $~start) (func $scoped/fn (param $0 i32) (local $1 i32) + (local $2 i32) i32.const 0 local.set $1 local.get $0 - local.set $1 + local.set $2 ) (func $start:scoped (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) - (local $4 f32) + (local $3 i32) + (local $4 i64) + (local $5 f32) i32.const 0 local.set $0 loop $for-loop|0 @@ -39,27 +41,27 @@ end end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|1 - local.get $1 + local.get $2 i32.const 1 i32.lt_s - local.set $2 - local.get $2 + local.set $3 + local.get $3 if - local.get $1 + local.get $2 drop - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|1 end end i64.const 5 - local.set $3 - f32.const 10 local.set $4 + f32.const 10 + local.set $5 i32.const 42 call $scoped/fn ) diff --git a/tests/compiler/std/array-access.untouched.wat b/tests/compiler/std/array-access.untouched.wat index 7c34542daf..f2e3e65914 100644 --- a/tests/compiler/std/array-access.untouched.wat +++ b/tests/compiler/std/array-access.untouched.wat @@ -203,6 +203,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -274,33 +277,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $10 + local.get $12 return end local.get $5 @@ -315,12 +318,12 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $7 + local.get $13 ) (func $~lib/string/String#startsWith (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -328,6 +331,12 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $1 call $~lib/rt/stub/__retain local.set $1 @@ -354,48 +363,48 @@ call $~lib/string/String#get:length local.set $5 local.get $2 - local.tee $3 + local.tee $6 i32.const 0 - local.tee $4 - local.get $3 - local.get $4 + local.tee $7 + local.get $6 + local.get $7 i32.gt_s select - local.tee $3 + local.tee $8 local.get $5 - local.tee $4 - local.get $3 - local.get $4 + local.tee $9 + local.get $8 + local.get $9 i32.lt_s select - local.set $6 + local.set $10 local.get $1 call $~lib/string/String#get:length - local.set $7 - local.get $7 - local.get $6 + local.set $11 + local.get $11 + local.get $10 i32.add local.get $5 i32.gt_s if i32.const 0 - local.set $3 + local.set $12 local.get $1 call $~lib/rt/stub/__release - local.get $3 + local.get $12 return end local.get $0 - local.get $6 + local.get $10 local.get $1 i32.const 0 - local.get $7 + local.get $11 call $~lib/util/string/compareImpl i32.eqz - local.set $3 + local.set $13 local.get $1 call $~lib/rt/stub/__release - local.get $3 + local.get $13 ) (func $std/array-access/stringArrayMethodCall (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/std/array-literal.untouched.wat b/tests/compiler/std/array-literal.untouched.wat index 88dd7543cb..db8e452792 100644 --- a/tests/compiler/std/array-literal.untouched.wat +++ b/tests/compiler/std/array-literal.untouched.wat @@ -125,6 +125,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -261,59 +270,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -343,6 +352,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -405,8 +428,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -417,16 +440,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -444,18 +467,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -467,7 +490,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -480,23 +503,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -510,14 +533,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -537,7 +560,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -555,24 +578,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -580,21 +603,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -610,86 +633,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -700,6 +723,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -839,11 +863,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -863,6 +887,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -919,66 +949,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -991,11 +1021,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -1044,6 +1074,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1117,11 +1155,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1132,10 +1170,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1148,30 +1186,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1182,45 +1220,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1229,6 +1267,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1275,15 +1314,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1297,12 +1336,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1312,6 +1351,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1376,11 +1417,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1388,11 +1429,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -1547,6 +1588,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -1566,11 +1689,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -1590,8 +1713,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -1700,17 +1823,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -1727,16 +1850,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -1746,45 +1869,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -1795,8 +1918,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -1881,31 +2004,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -1916,8 +2039,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -2002,17 +2125,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -2023,8 +2146,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -2111,227 +2234,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -2340,115 +2463,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -2457,59 +2580,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -2518,31 +2641,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -2551,17 +2674,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -2572,6 +2695,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -2649,11 +2780,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -2663,8 +2794,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -2688,21 +2819,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -2731,8 +2862,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -2757,8 +2888,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -2778,8 +2909,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -2963,6 +3094,21 @@ (func $start:std/array-literal (local $0 i32) (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) global.get $std/array-literal/staticArrayI8 call $~lib/array/Array#get:length i32.const 3 @@ -3092,28 +3238,28 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $1 - local.get $1 + local.set $6 + local.get $6 i32.load offset=4 - local.set $0 - local.get $0 + local.set $7 + local.get $7 global.get $std/array-literal/i i32.store8 - local.get $0 + local.get $7 global.get $std/array-literal/i i32.const 1 i32.add global.set $std/array-literal/i global.get $std/array-literal/i i32.store8 offset=1 - local.get $0 + local.get $7 global.get $std/array-literal/i i32.const 1 i32.add global.set $std/array-literal/i global.get $std/array-literal/i i32.store8 offset=2 - local.get $1 + local.get $6 global.set $std/array-literal/dynamicArrayI8 global.get $std/array-literal/dynamicArrayI8 call $~lib/array/Array#get:length @@ -3178,28 +3324,28 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $0 - local.get $0 + local.set $8 + local.get $8 i32.load offset=4 - local.set $1 - local.get $1 + local.set $9 + local.get $9 global.get $std/array-literal/i i32.store - local.get $1 + local.get $9 global.get $std/array-literal/i i32.const 1 i32.add global.set $std/array-literal/i global.get $std/array-literal/i i32.store offset=4 - local.get $1 + local.get $9 global.get $std/array-literal/i i32.const 1 i32.add global.set $std/array-literal/i global.get $std/array-literal/i i32.store offset=8 - local.get $0 + local.get $8 global.set $std/array-literal/dynamicArrayI32 global.get $std/array-literal/dynamicArrayI32 call $~lib/array/Array#get:length @@ -3262,23 +3408,23 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $1 - local.get $1 + local.set $10 + local.get $10 i32.load offset=4 - local.set $0 - local.get $0 + local.set $11 + local.get $11 i32.const 0 call $std/array-literal/Ref#constructor i32.store - local.get $0 + local.get $11 i32.const 0 call $std/array-literal/Ref#constructor i32.store offset=4 - local.get $0 + local.get $11 i32.const 0 call $std/array-literal/Ref#constructor i32.store offset=8 - local.get $1 + local.get $10 global.set $std/array-literal/dynamicArrayRef global.get $std/array-literal/dynamicArrayRef call $~lib/array/Array#get:length @@ -3299,23 +3445,23 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $0 - local.get $0 + local.set $12 + local.get $12 i32.load offset=4 - local.set $1 - local.get $1 + local.set $13 + local.get $13 i32.const 0 call $std/array-literal/RefWithCtor#constructor i32.store - local.get $1 + local.get $13 i32.const 0 call $std/array-literal/RefWithCtor#constructor i32.store offset=4 - local.get $1 + local.get $13 i32.const 0 call $std/array-literal/RefWithCtor#constructor i32.store offset=8 - local.get $0 + local.get $12 global.set $std/array-literal/dynamicArrayRefWithCtor global.get $std/array-literal/dynamicArrayRefWithCtor call $~lib/array/Array#get:length @@ -3346,18 +3492,18 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $1 - local.get $1 + local.set $14 + local.get $14 i32.load offset=4 - local.set $0 - local.get $0 + local.set $15 + local.get $15 i32.const 0 call $std/array-literal/Ref#constructor i32.store - local.get $1 - local.tee $0 + local.get $14 + local.tee $16 call $std/array-literal/doesntLeak - local.get $0 + local.get $16 call $~lib/rt/pure/__release ) (func $~start diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 474e281bc3..2f431e4235 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -3252,26 +3252,27 @@ ) (func $start:std/array~anonymous|20 (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $1 i32.eqz if loop $for-loop|0 - local.get $3 + local.get $5 i32.const 4 i32.lt_s if local.get $2 call $~lib/array/Array#pop drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end - i32.const 0 - local.set $3 loop $for-loop|1 local.get $3 i32.const 100 @@ -3289,39 +3290,35 @@ br $for-loop|1 end end - i32.const 0 - local.set $3 loop $for-loop|2 - local.get $3 + local.get $6 i32.const 100 i32.lt_s if local.get $2 call $~lib/array/Array#pop drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|2 end end - i32.const 0 - local.set $3 loop $for-loop|3 - local.get $3 + local.get $4 i32.const 100 i32.lt_s if local.get $2 - local.get $3 + local.get $4 i32.const 200 i32.add call $~lib/array/Array#push - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|3 end end @@ -3779,27 +3776,27 @@ local.get $1 i32.const 1 i32.sub - local.set $3 + local.set $2 loop $for-loop|0 - local.get $3 + local.get $2 i32.const 0 i32.gt_s if - local.get $3 - local.set $2 + local.get $2 + local.set $3 loop $while-continue|1 - local.get $2 + local.get $3 i32.const 1 i32.and local.get $5 - local.get $2 + local.get $3 i32.const 6 i32.shr_u i32.const 2 i32.shl i32.add i32.load - local.get $2 + local.get $3 i32.const 1 i32.shr_s i32.const 31 @@ -3809,25 +3806,25 @@ i32.and i32.eq if - local.get $2 + local.get $3 i32.const 1 i32.shr_s - local.set $2 + local.set $3 br $while-continue|1 end end local.get $0 - local.get $2 + local.get $3 i32.const 1 i32.shr_s - local.tee $2 + local.tee $3 i32.const 2 i32.shl i32.add f32.load local.tee $4 local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.shl i32.add @@ -3838,7 +3835,7 @@ i32.lt_s if local.get $5 - local.get $3 + local.get $2 i32.const 5 i32.shr_u i32.const 2 @@ -3848,31 +3845,31 @@ local.get $7 i32.load i32.const 1 - local.get $3 + local.get $2 i32.const 31 i32.and i32.shl i32.xor i32.store local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.shl i32.add local.get $4 f32.store local.get $0 - local.get $2 + local.get $3 i32.const 2 i32.shl i32.add local.get $6 f32.store end - local.get $3 + local.get $2 i32.const 1 i32.sub - local.set $3 + local.set $2 br $for-loop|0 end end @@ -4059,27 +4056,27 @@ local.get $1 i32.const 1 i32.sub - local.set $3 + local.set $2 loop $for-loop|0 - local.get $3 + local.get $2 i32.const 0 i32.gt_s if - local.get $3 - local.set $2 + local.get $2 + local.set $3 loop $while-continue|1 - local.get $2 + local.get $3 i32.const 1 i32.and local.get $5 - local.get $2 + local.get $3 i32.const 6 i32.shr_u i32.const 2 i32.shl i32.add i32.load - local.get $2 + local.get $3 i32.const 1 i32.shr_s i32.const 31 @@ -4089,25 +4086,25 @@ i32.and i32.eq if - local.get $2 + local.get $3 i32.const 1 i32.shr_s - local.set $2 + local.set $3 br $while-continue|1 end end local.get $0 - local.get $2 + local.get $3 i32.const 1 i32.shr_s - local.tee $2 + local.tee $3 i32.const 3 i32.shl i32.add f64.load local.tee $4 local.get $0 - local.get $3 + local.get $2 i32.const 3 i32.shl i32.add @@ -4118,7 +4115,7 @@ i32.lt_s if local.get $5 - local.get $3 + local.get $2 i32.const 5 i32.shr_u i32.const 2 @@ -4128,31 +4125,31 @@ local.get $7 i32.load i32.const 1 - local.get $3 + local.get $2 i32.const 31 i32.and i32.shl i32.xor i32.store local.get $0 - local.get $3 + local.get $2 i32.const 3 i32.shl i32.add local.get $4 f64.store local.get $0 - local.get $2 + local.get $3 i32.const 3 i32.shl i32.add local.get $6 f64.store end - local.get $3 + local.get $2 i32.const 1 i32.sub - local.set $3 + local.set $2 br $for-loop|0 end end @@ -4360,27 +4357,27 @@ local.get $1 i32.const 1 i32.sub - local.set $4 + local.set $3 loop $for-loop|0 - local.get $4 + local.get $3 i32.const 0 i32.gt_s if - local.get $4 - local.set $3 + local.get $3 + local.set $4 loop $while-continue|1 - local.get $3 + local.get $4 i32.const 1 i32.and local.get $5 - local.get $3 + local.get $4 i32.const 6 i32.shr_u i32.const 2 i32.shl i32.add i32.load - local.get $3 + local.get $4 i32.const 1 i32.shr_s i32.const 31 @@ -4390,15 +4387,15 @@ i32.and i32.eq if - local.get $3 + local.get $4 i32.const 1 i32.shr_s - local.set $3 + local.set $4 br $while-continue|1 end end local.get $0 - local.get $3 + local.get $4 i32.const 1 i32.shr_s local.tee $7 @@ -4406,9 +4403,9 @@ i32.shl i32.add i32.load - local.tee $3 + local.tee $4 local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.shl i32.add @@ -4420,7 +4417,7 @@ i32.lt_s if local.get $5 - local.get $4 + local.get $3 i32.const 5 i32.shr_u i32.const 2 @@ -4430,18 +4427,18 @@ local.get $8 i32.load i32.const 1 - local.get $4 + local.get $3 i32.const 31 i32.and i32.shl i32.xor i32.store local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.shl i32.add - local.get $3 + local.get $4 i32.store local.get $0 local.get $7 @@ -4451,10 +4448,10 @@ local.get $6 i32.store end - local.get $4 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 br $for-loop|0 end end @@ -6515,8 +6512,6 @@ global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $8 - local.set $1 local.get $9 i32.const 0 local.get $4 @@ -6527,7 +6522,7 @@ i32.add i64.load32_u i64.mul - local.set $3 + local.set $1 local.get $0 local.get $6 i32.const 1 @@ -6540,30 +6535,30 @@ local.set $4 loop $while-continue|6 i32.const 1 - local.get $3 local.get $1 + local.get $8 i64.sub - local.get $1 + local.get $8 local.get $11 i64.add - local.get $3 + local.get $1 i64.sub i64.gt_u - local.get $1 + local.get $8 local.get $11 i64.add - local.get $3 + local.get $1 i64.lt_u select i32.const 0 local.get $5 - local.get $1 + local.get $8 i64.sub local.get $11 i64.ge_u i32.const 0 + local.get $8 local.get $1 - local.get $3 i64.lt_u select select @@ -6572,10 +6567,10 @@ i32.const 1 i32.sub local.set $4 - local.get $1 + local.get $8 local.get $11 i64.add - local.set $1 + local.set $8 br $while-continue|6 end end @@ -7367,53 +7362,54 @@ (local $7 i32) (local $8 i32) (local $9 i32) + local.get $2 + local.set $4 local.get $1 i32.const 1 i32.sub - local.tee $6 + local.tee $5 i32.const 0 i32.lt_s if i32.const 6064 return end - local.get $6 + local.get $5 i32.eqz if local.get $0 i32.load - local.tee $5 + local.tee $0 if - local.get $5 + local.get $0 call $~lib/rt/pure/__retain - local.set $5 + local.set $0 end - local.get $5 + local.get $0 if (result i32) - local.get $5 + local.get $0 call $~lib/rt/pure/__retain else i32.const 6064 end - local.get $5 + local.get $0 call $~lib/rt/pure/__release return end i32.const 6064 local.set $1 - local.get $2 - local.tee $4 + local.get $4 call $~lib/string/String#get:length local.set $8 loop $for-loop|0 - local.get $5 local.get $6 + local.get $5 i32.lt_s if local.get $3 local.tee $2 local.get $0 - local.get $5 + local.get $6 i32.const 2 i32.shl i32.add @@ -7433,11 +7429,11 @@ call $~lib/rt/pure/__retain local.tee $2 local.get $1 + local.get $1 local.get $2 call $~lib/string/String.__concat local.tee $9 local.tee $2 - local.get $1 i32.ne if local.get $2 @@ -7455,47 +7451,49 @@ local.get $8 if local.get $1 - local.tee $2 + local.get $1 local.get $4 call $~lib/string/String.__concat local.tee $7 - local.tee $1 - local.get $2 + local.tee $2 i32.ne if - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 call $~lib/rt/pure/__release end local.get $7 call $~lib/rt/pure/__release + local.get $2 + 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 $0 - local.get $6 + local.get $5 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $0 local.get $3 i32.ne if - local.get $2 + local.get $0 call $~lib/rt/pure/__retain - local.set $2 + local.set $0 local.get $3 call $~lib/rt/pure/__release end - local.get $2 + local.get $0 + local.tee $2 if local.get $2 call $~lib/rt/pure/__retain @@ -7503,21 +7501,21 @@ local.get $1 local.get $0 call $~lib/string/String.__concat + local.tee $4 local.tee $0 - local.tee $3 local.get $1 i32.ne if - local.get $3 + local.get $0 call $~lib/rt/pure/__retain - local.set $3 + local.set $0 local.get $1 call $~lib/rt/pure/__release end call $~lib/rt/pure/__release - local.get $0 + local.get $4 call $~lib/rt/pure/__release - local.get $3 + local.get $0 local.set $1 end local.get $2 @@ -7542,29 +7540,29 @@ local.get $1 i32.const 1 i32.sub - local.tee $5 + local.tee $4 i32.const 0 i32.lt_s if i32.const 6064 return end - local.get $5 + local.get $4 i32.eqz if local.get $0 i32.load - local.tee $4 + local.tee $0 if - local.get $4 + local.get $0 call $~lib/rt/pure/__retain - local.set $4 + local.set $0 end - local.get $4 + local.get $0 call $~lib/rt/pure/__release i32.const 7984 i32.const 6064 - local.get $4 + local.get $0 select return end @@ -7574,14 +7572,14 @@ call $~lib/string/String#get:length local.set $7 loop $for-loop|0 - local.get $4 local.get $5 + local.get $4 i32.lt_s if local.get $3 local.tee $2 local.get $0 - local.get $4 + local.get $5 i32.const 2 i32.shl i32.add @@ -7598,33 +7596,32 @@ local.get $3 if local.get $1 + local.tee $2 local.get $1 i32.const 7984 call $~lib/string/String.__concat local.tee $6 - local.tee $2 + local.tee $1 i32.ne if - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 call $~lib/rt/pure/__release end local.get $6 call $~lib/rt/pure/__release - local.get $2 - local.set $1 end local.get $7 if local.get $1 local.tee $2 + local.get $1 i32.const 6304 call $~lib/string/String.__concat local.tee $6 local.tee $1 - local.get $2 i32.ne if local.get $1 @@ -7636,51 +7633,52 @@ local.get $6 call $~lib/rt/pure/__release end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|0 end end - local.get $3 local.get $0 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $0 + local.get $3 i32.ne if - local.get $2 + local.get $0 call $~lib/rt/pure/__retain - local.set $2 + local.set $0 local.get $3 call $~lib/rt/pure/__release end - local.get $2 + local.get $0 + local.tee $3 if - local.get $1 local.get $1 i32.const 7984 call $~lib/string/String.__concat + local.tee $2 local.tee $0 - local.tee $3 + local.get $1 i32.ne if - local.get $3 + local.get $0 call $~lib/rt/pure/__retain - local.set $3 + local.set $0 local.get $1 call $~lib/rt/pure/__release end - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 local.set $1 end - local.get $2 + local.get $3 call $~lib/rt/pure/__release local.get $1 ) @@ -8503,33 +8501,33 @@ local.get $1 i32.const 1 i32.sub - local.tee $5 + local.tee $4 i32.const 0 i32.lt_s if i32.const 6064 return end - local.get $5 + local.get $4 i32.eqz if local.get $0 i32.load - local.tee $4 + local.tee $0 if - local.get $4 + local.get $0 call $~lib/rt/pure/__retain - local.set $4 + local.set $0 end - local.get $4 + local.get $0 if (result i32) - local.get $4 + local.get $0 i32.const 6304 call $~lib/array/Array#join else i32.const 6064 end - local.get $4 + local.get $0 call $~lib/rt/pure/__release return end @@ -8539,14 +8537,14 @@ call $~lib/string/String#get:length local.set $7 loop $for-loop|0 - local.get $4 local.get $5 + local.get $4 i32.lt_s if local.get $3 local.tee $2 local.get $0 - local.get $4 + local.get $5 i32.const 2 i32.shl i32.add @@ -8562,29 +8560,29 @@ end local.get $3 if + local.get $1 + local.set $2 local.get $3 i32.const 6304 call $~lib/array/Array#join - local.tee $2 - local.get $1 - local.get $1 + local.tee $1 local.get $2 + local.get $1 call $~lib/string/String.__concat local.tee $8 - local.tee $2 + local.tee $1 + local.get $2 i32.ne if - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 call $~lib/rt/pure/__release end call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $2 - local.set $1 end local.get $7 if @@ -8606,56 +8604,57 @@ local.get $6 call $~lib/rt/pure/__release end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|0 end end local.get $0 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $0 local.get $3 i32.ne if - local.get $2 + local.get $0 call $~lib/rt/pure/__retain - local.set $2 + local.set $0 local.get $3 call $~lib/rt/pure/__release end - local.get $2 + local.get $0 + local.tee $3 if - local.get $2 + local.get $3 i32.const 6304 call $~lib/array/Array#join local.tee $0 local.get $1 - local.get $1 local.get $0 call $~lib/string/String.__concat + local.tee $4 local.tee $0 - local.tee $3 + local.get $1 i32.ne if - local.get $3 + local.get $0 call $~lib/rt/pure/__retain - local.set $3 + local.set $0 local.get $1 call $~lib/rt/pure/__release end call $~lib/rt/pure/__release - local.get $0 + local.get $4 call $~lib/rt/pure/__release - local.get $3 + local.get $0 local.set $1 end - local.get $2 + local.get $3 call $~lib/rt/pure/__release local.get $1 ) @@ -8813,32 +8812,32 @@ local.get $1 i32.const 1 i32.sub - local.tee $5 + local.tee $4 i32.const 0 i32.lt_s if i32.const 6064 return end - local.get $5 + local.get $4 i32.eqz if local.get $0 i32.load - local.tee $4 + local.tee $0 if - local.get $4 + local.get $0 call $~lib/rt/pure/__retain - local.set $4 + local.set $0 end - local.get $4 + local.get $0 if (result i32) - local.get $4 + local.get $0 call $~lib/array/Array#toString else i32.const 6064 end - local.get $4 + local.get $0 call $~lib/rt/pure/__release return end @@ -8848,14 +8847,14 @@ call $~lib/string/String#get:length local.set $7 loop $for-loop|0 - local.get $4 local.get $5 + local.get $4 i32.lt_s if local.get $3 local.tee $2 local.get $0 - local.get $4 + local.get $5 i32.const 2 i32.shl i32.add @@ -8872,37 +8871,36 @@ local.get $3 if local.get $1 + local.tee $2 local.get $1 local.get $3 call $~lib/array/Array#toString local.tee $6 call $~lib/string/String.__concat local.tee $8 - local.tee $2 + local.tee $1 i32.ne if - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 call $~lib/rt/pure/__release end local.get $6 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $2 - local.set $1 end local.get $7 if local.get $1 local.tee $2 + local.get $1 i32.const 6304 call $~lib/string/String.__concat local.tee $6 local.tee $1 - local.get $2 i32.ne if local.get $1 @@ -8914,55 +8912,56 @@ local.get $6 call $~lib/rt/pure/__release end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|0 end end - local.get $3 local.get $0 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $0 + local.get $3 i32.ne if - local.get $2 + local.get $0 call $~lib/rt/pure/__retain - local.set $2 + local.set $0 local.get $3 call $~lib/rt/pure/__release end - local.get $2 + local.get $0 + local.tee $3 if local.get $1 - local.get $1 - local.get $2 + local.get $3 call $~lib/array/Array#toString - local.tee $0 + local.tee $2 call $~lib/string/String.__concat local.tee $4 - local.tee $3 + local.tee $0 + local.get $1 i32.ne if - local.get $3 + local.get $0 call $~lib/rt/pure/__retain - local.set $3 + local.set $0 local.get $1 call $~lib/rt/pure/__release end - local.get $0 + local.get $2 call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $3 + local.get $0 local.set $1 end - local.get $2 + local.get $3 call $~lib/rt/pure/__release local.get $1 ) @@ -8977,33 +8976,33 @@ local.get $1 i32.const 1 i32.sub - local.tee $5 + local.tee $4 i32.const 0 i32.lt_s if i32.const 6064 return end - local.get $5 + local.get $4 i32.eqz if local.get $0 i32.load - local.tee $4 + local.tee $0 if - local.get $4 + local.get $0 call $~lib/rt/pure/__retain - local.set $4 + local.set $0 end - local.get $4 + local.get $0 if (result i32) - local.get $4 + local.get $0 i32.const 6304 call $~lib/array/Array#join else i32.const 6064 end - local.get $4 + local.get $0 call $~lib/rt/pure/__release return end @@ -9013,14 +9012,14 @@ call $~lib/string/String#get:length local.set $7 loop $for-loop|0 - local.get $4 local.get $5 + local.get $4 i32.lt_s if local.get $3 local.tee $2 local.get $0 - local.get $4 + local.get $5 i32.const 2 i32.shl i32.add @@ -9036,29 +9035,29 @@ end local.get $3 if + local.get $1 + local.set $2 local.get $3 i32.const 6304 call $~lib/array/Array#join - local.tee $2 - local.get $1 - local.get $1 + local.tee $1 local.get $2 + local.get $1 call $~lib/string/String.__concat local.tee $8 - local.tee $2 + local.tee $1 + local.get $2 i32.ne if - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 call $~lib/rt/pure/__release end call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $2 - local.set $1 end local.get $7 if @@ -9080,56 +9079,57 @@ local.get $6 call $~lib/rt/pure/__release end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|0 end end local.get $0 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $0 local.get $3 i32.ne if - local.get $2 + local.get $0 call $~lib/rt/pure/__retain - local.set $2 + local.set $0 local.get $3 call $~lib/rt/pure/__release end - local.get $2 + local.get $0 + local.tee $3 if - local.get $2 + local.get $3 i32.const 6304 call $~lib/array/Array#join local.tee $0 local.get $1 - local.get $1 local.get $0 call $~lib/string/String.__concat + local.tee $4 local.tee $0 - local.tee $3 + local.get $1 i32.ne if - local.get $3 + local.get $0 call $~lib/rt/pure/__retain - local.set $3 + local.set $0 local.get $1 call $~lib/rt/pure/__release end call $~lib/rt/pure/__release - local.get $0 + local.get $4 call $~lib/rt/pure/__release - local.get $3 + local.get $0 local.set $1 end - local.get $2 + local.get $3 call $~lib/rt/pure/__release local.get $1 ) @@ -9151,32 +9151,32 @@ local.get $1 i32.const 1 i32.sub - local.tee $5 + local.tee $4 i32.const 0 i32.lt_s if i32.const 6064 return end - local.get $5 + local.get $4 i32.eqz if local.get $0 i32.load - local.tee $4 + local.tee $0 if - local.get $4 + local.get $0 call $~lib/rt/pure/__retain - local.set $4 + local.set $0 end - local.get $4 + local.get $0 if (result i32) - local.get $4 + local.get $0 call $~lib/array/Array<~lib/array/Array>#toString else i32.const 6064 end - local.get $4 + local.get $0 call $~lib/rt/pure/__release return end @@ -9186,14 +9186,14 @@ call $~lib/string/String#get:length local.set $7 loop $for-loop|0 - local.get $4 local.get $5 + local.get $4 i32.lt_s if local.get $3 local.tee $2 local.get $0 - local.get $4 + local.get $5 i32.const 2 i32.shl i32.add @@ -9210,37 +9210,36 @@ local.get $3 if local.get $1 + local.tee $2 local.get $1 local.get $3 call $~lib/array/Array<~lib/array/Array>#toString local.tee $6 call $~lib/string/String.__concat local.tee $8 - local.tee $2 + local.tee $1 i32.ne if - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 call $~lib/rt/pure/__release end local.get $6 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $2 - local.set $1 end local.get $7 if local.get $1 local.tee $2 + local.get $1 i32.const 6304 call $~lib/string/String.__concat local.tee $6 local.tee $1 - local.get $2 i32.ne if local.get $1 @@ -9252,55 +9251,56 @@ local.get $6 call $~lib/rt/pure/__release end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|0 end end - local.get $3 local.get $0 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $0 + local.get $3 i32.ne if - local.get $2 + local.get $0 call $~lib/rt/pure/__retain - local.set $2 + local.set $0 local.get $3 call $~lib/rt/pure/__release end - local.get $2 + local.get $0 + local.tee $3 if local.get $1 - local.get $1 - local.get $2 + local.get $3 call $~lib/array/Array<~lib/array/Array>#toString - local.tee $0 + local.tee $2 call $~lib/string/String.__concat local.tee $4 - local.tee $3 + local.tee $0 + local.get $1 i32.ne if - local.get $3 + local.get $0 call $~lib/rt/pure/__retain - local.set $3 + local.set $0 local.get $1 call $~lib/rt/pure/__release end - local.get $0 + local.get $2 call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $3 + local.get $0 local.set $1 end - local.get $2 + local.get $3 call $~lib/rt/pure/__release local.get $1 ) @@ -9311,6 +9311,7 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) local.get $0 i32.load offset=12 local.set $5 @@ -9318,12 +9319,12 @@ i32.load offset=4 local.set $6 loop $for-loop|0 - local.get $1 + local.get $2 local.get $5 i32.lt_s if local.get $6 - local.get $1 + local.get $2 i32.const 2 i32.shl i32.add @@ -9335,72 +9336,70 @@ else i32.const 0 end - local.get $2 - i32.add - local.set $2 local.get $1 - i32.const 1 i32.add local.set $1 + local.get $2 + i32.const 1 + i32.add + local.set $2 br $for-loop|0 end end - local.get $2 + local.get $1 i32.const 2 i32.shl - local.tee $1 + local.tee $7 i32.const 0 call $~lib/rt/tlsf/__alloc - local.set $3 + local.set $2 i32.const 16 i32.const 3 call $~lib/rt/tlsf/__alloc local.tee $0 - local.get $2 + local.get $1 i32.store offset=12 local.get $0 - local.get $1 + local.get $7 i32.store offset=8 local.get $0 - local.get $3 + local.get $2 i32.store offset=4 local.get $0 - local.get $3 + local.get $2 call $~lib/rt/pure/__retain i32.store - i32.const 0 - local.set $1 loop $for-loop|1 - local.get $1 + local.get $3 local.get $5 i32.lt_s if local.get $6 - local.get $1 + local.get $3 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $1 if - local.get $3 + local.get $2 local.get $4 i32.add - local.get $2 + local.get $1 i32.load offset=4 - local.get $2 + local.get $1 i32.load offset=8 - local.tee $2 + local.tee $1 call $~lib/memory/memory.copy - local.get $2 + local.get $1 local.get $4 i32.add local.set $4 end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|1 end end @@ -9415,18 +9414,19 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) local.get $0 i32.load offset=12 - local.set $6 + local.set $7 local.get $0 i32.load offset=4 - local.set $7 + local.set $8 loop $for-loop|0 local.get $1 - local.get $6 + local.get $7 i32.lt_s if - local.get $7 + local.get $8 local.get $1 i32.const 2 i32.shl @@ -9439,9 +9439,9 @@ else i32.const 0 end - local.get $2 + local.get $3 i32.add - local.set $2 + local.set $3 local.get $1 i32.const 1 i32.add @@ -9449,88 +9449,84 @@ br $for-loop|0 end end - local.get $2 + local.get $3 i32.const 2 i32.shl - local.tee $1 + local.tee $2 i32.const 0 call $~lib/rt/tlsf/__alloc local.set $0 i32.const 16 i32.const 15 call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $2 - i32.store offset=12 + local.tee $1 local.get $3 + i32.store offset=12 local.get $1 + local.get $2 i32.store offset=8 - local.get $3 + local.get $1 local.get $0 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 call $~lib/rt/pure/__retain i32.store - i32.const 0 - local.set $1 loop $for-loop|1 - local.get $1 - local.get $6 + local.get $4 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + local.get $8 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $4 + local.tee $2 if local.get $0 local.get $5 i32.add - local.get $4 + local.get $2 i32.load offset=4 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $2 call $~lib/memory/memory.copy - local.get $4 + local.get $2 local.get $5 i32.add local.set $5 end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|1 end end - i32.const 0 - local.set $1 loop $for-loop|2 - local.get $1 - local.get $2 + local.get $6 + local.get $3 i32.lt_s if local.get $0 - local.get $1 + local.get $6 i32.const 2 i32.shl i32.add i32.load call $~lib/rt/pure/__retain drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 + local.set $6 br $for-loop|2 end end - local.get $3 + local.get $1 call $~lib/rt/pure/__retain ) (func $start:std/array @@ -9547,9 +9543,9 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) - (local $14 f32) - (local $15 f64) + (local $13 f32) + (local $14 f64) + (local $15 i32) (local $16 i32) (local $17 i32) (local $18 i32) @@ -9568,9 +9564,9 @@ (local $31 i32) (local $32 i32) (local $33 i32) - (local $34 f32) - (local $35 f64) - (local $36 i32) + (local $34 i32) + (local $35 f32) + (local $36 f64) (local $37 i32) (local $38 i32) (local $39 i32) @@ -9596,6 +9592,7 @@ (local $59 i32) (local $60 i32) (local $61 i32) + (local $62 i32) i32.const 0 call $~lib/array/Array#constructor global.set $std/array/arr @@ -10622,14 +10619,14 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $16 + local.tee $15 i32.const 5 i32.const 2 i32.const 3 i32.const 2304 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $20 + local.tee $19 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10654,7 +10651,7 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $25 + local.tee $26 i32.const 5 i32.const 2 i32.const 3 @@ -10718,14 +10715,14 @@ i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $11 + local.tee $10 i32.const 5 i32.const 2 i32.const 3 i32.const 2592 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $13 + local.tee $12 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10750,14 +10747,14 @@ i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $30 + local.tee $31 i32.const 5 i32.const 2 i32.const 3 i32.const 2688 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $17 + local.tee $16 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10782,14 +10779,14 @@ i32.const -2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $18 + local.tee $17 i32.const 5 i32.const 2 i32.const 3 i32.const 2784 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $19 + local.tee $18 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10814,14 +10811,14 @@ i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.tee $12 + local.tee $11 i32.const 5 i32.const 2 i32.const 3 i32.const 2880 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $21 + local.tee $22 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10847,14 +10844,14 @@ i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.tee $22 + local.tee $23 i32.const 5 i32.const 2 i32.const 3 i32.const 2976 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $23 + local.tee $24 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10880,14 +10877,14 @@ i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.tee $24 + local.tee $25 i32.const 5 i32.const 2 i32.const 3 i32.const 3072 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $26 + local.tee $27 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10920,7 +10917,7 @@ i32.const 3168 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $27 + local.tee $28 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10942,11 +10939,11 @@ call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $16 + local.get $15 call $~lib/rt/pure/__release - local.get $20 + local.get $19 call $~lib/rt/pure/__release - local.get $25 + local.get $26 call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release @@ -10954,21 +10951,19 @@ call $~lib/rt/pure/__release local.get $9 call $~lib/rt/pure/__release - local.get $11 + local.get $10 call $~lib/rt/pure/__release - local.get $13 + local.get $12 call $~lib/rt/pure/__release - local.get $30 + local.get $31 + call $~lib/rt/pure/__release + local.get $16 call $~lib/rt/pure/__release local.get $17 call $~lib/rt/pure/__release local.get $18 call $~lib/rt/pure/__release - local.get $19 - call $~lib/rt/pure/__release - local.get $12 - call $~lib/rt/pure/__release - local.get $21 + local.get $11 call $~lib/rt/pure/__release local.get $22 call $~lib/rt/pure/__release @@ -10976,11 +10971,13 @@ call $~lib/rt/pure/__release local.get $24 call $~lib/rt/pure/__release - local.get $26 + local.get $25 + call $~lib/rt/pure/__release + local.get $27 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $27 + local.get $28 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 42 @@ -11932,14 +11929,14 @@ i32.shl i32.add f32.load - local.tee $14 + local.tee $13 f32.const nan:0x400000 f32.eq if (result i32) i32.const 1 else - local.get $14 - local.get $14 + local.get $13 + local.get $13 f32.ne end br_if $__inlined_func$~lib/array/Array#includes @@ -11986,27 +11983,27 @@ drop local.get $3 i32.load offset=4 - local.set $16 + local.set $15 loop $while-continue|025 local.get $1 local.get $4 i32.lt_s if i32.const 1 - local.get $16 + local.get $15 local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $15 + local.tee $14 f64.const nan:0x8000000000000 f64.eq if (result i32) i32.const 1 else - local.get $15 - local.get $15 + local.get $14 + local.get $14 f64.ne end br_if $__inlined_func$~lib/array/Array#includes @@ -12200,14 +12197,14 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $11 + local.tee $10 i32.const 3 i32.const 2 i32.const 3 i32.const 3616 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $13 + local.tee $12 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12226,7 +12223,7 @@ i32.const 3648 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $17 + local.tee $16 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12251,14 +12248,14 @@ i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.tee $18 + local.tee $17 i32.const 2 i32.const 2 i32.const 3 i32.const 3728 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $19 + local.tee $18 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12277,7 +12274,7 @@ i32.const 3760 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $12 + local.tee $11 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12302,14 +12299,14 @@ i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.tee $21 + local.tee $22 i32.const 1 i32.const 2 i32.const 3 i32.const 3840 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $22 + local.tee $23 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12328,7 +12325,7 @@ i32.const 3872 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $23 + local.tee $24 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12352,14 +12349,14 @@ i32.const -1 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $24 + local.tee $25 i32.const 1 i32.const 2 i32.const 3 i32.const 3952 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $26 + local.tee $27 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12378,7 +12375,7 @@ i32.const 3984 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $27 + local.tee $28 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12402,14 +12399,14 @@ i32.const -2 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $31 + local.tee $32 i32.const 2 i32.const 2 i32.const 3 i32.const 4064 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $32 + local.tee $33 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12428,7 +12425,7 @@ i32.const 4096 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $33 + local.tee $34 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12452,14 +12449,14 @@ i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.tee $28 + local.tee $29 i32.const 1 i32.const 2 i32.const 3 i32.const 4176 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $29 + local.tee $30 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12478,7 +12475,7 @@ i32.const 4208 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $36 + local.tee $37 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12502,14 +12499,14 @@ i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.tee $37 + local.tee $38 i32.const 1 i32.const 2 i32.const 3 i32.const 4288 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $38 + local.tee $39 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12528,7 +12525,7 @@ i32.const 4320 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $39 + local.tee $40 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12552,14 +12549,14 @@ i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.tee $40 + local.tee $41 i32.const 0 i32.const 2 i32.const 3 i32.const 4400 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $41 + local.tee $42 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12578,7 +12575,7 @@ i32.const 4416 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $42 + local.tee $43 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12602,14 +12599,14 @@ i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.tee $43 + local.tee $44 i32.const 0 i32.const 2 i32.const 3 i32.const 4512 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $44 + local.tee $45 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12628,7 +12625,7 @@ i32.const 4528 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $45 + local.tee $46 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12653,14 +12650,14 @@ i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.tee $46 + local.tee $47 i32.const 0 i32.const 2 i32.const 3 i32.const 4624 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $47 + local.tee $48 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12679,7 +12676,7 @@ i32.const 4640 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $48 + local.tee $49 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12704,14 +12701,14 @@ i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.tee $49 + local.tee $50 i32.const 0 i32.const 2 i32.const 3 i32.const 4736 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $50 + local.tee $51 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12730,7 +12727,7 @@ i32.const 4752 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $51 + local.tee $52 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12755,14 +12752,14 @@ i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.tee $52 + local.tee $53 i32.const 0 i32.const 2 i32.const 3 i32.const 4848 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $53 + local.tee $54 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12781,7 +12778,7 @@ i32.const 4864 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $54 + local.tee $55 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12802,7 +12799,7 @@ local.tee $2 i32.const 1 call $~lib/array/Array#splice - local.tee $20 + local.tee $19 i32.load offset=12 if i32.const 0 @@ -12828,7 +12825,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $16 + local.tee $15 i32.load offset=4 local.tee $0 i32.const 1 @@ -12852,13 +12849,13 @@ i32.store offset=16 local.get $2 call $~lib/rt/pure/__release - local.get $16 + local.get $15 i32.const 2 call $~lib/array/Array#splice - local.set $25 - local.get $20 + local.set $26 + local.get $19 call $~lib/rt/pure/__release - local.get $25 + local.get $26 i32.load offset=12 i32.const 2 i32.ne @@ -12870,10 +12867,10 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $26 i32.const 0 call $~lib/array/Array#__get - local.tee $55 + local.tee $56 i32.load i32.const 3 i32.ne @@ -12885,10 +12882,10 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $26 i32.const 1 call $~lib/array/Array#__get - local.tee $56 + local.tee $57 i32.load i32.const 4 i32.ne @@ -12900,7 +12897,7 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $15 i32.load offset=12 i32.const 3 i32.ne @@ -12912,10 +12909,10 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $15 i32.const 0 call $~lib/array/Array#__get - local.tee $57 + local.tee $58 i32.load i32.const 1 i32.ne @@ -12927,10 +12924,10 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $15 i32.const 1 call $~lib/array/Array#__get - local.tee $58 + local.tee $59 i32.load i32.const 2 i32.ne @@ -12942,10 +12939,10 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $15 i32.const 2 call $~lib/array/Array#__get - local.tee $59 + local.tee $60 i32.load i32.const 5 i32.ne @@ -12963,7 +12960,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $20 + local.tee $19 i32.load offset=4 local.tee $0 i32.const 1 @@ -12976,9 +12973,9 @@ i32.const 2 call $std/array/Ref#constructor i32.store offset=8 - local.get $20 + local.get $19 call $~lib/array/Array#splice - local.tee $30 + local.tee $31 i32.load offset=12 i32.const 1 i32.ne @@ -12990,7 +12987,7 @@ call $~lib/builtins/abort unreachable end - local.get $30 + local.get $31 i32.const 0 call $~lib/array/Array#__get local.tee $0 @@ -13015,7 +13012,7 @@ call $~lib/builtins/abort unreachable end - local.get $20 + local.get $19 i32.load offset=12 i32.const 2 i32.ne @@ -13027,10 +13024,10 @@ call $~lib/builtins/abort unreachable end - local.get $20 + local.get $19 i32.const 0 call $~lib/array/Array#__get - local.tee $60 + local.tee $61 if i32.const 0 i32.const 1296 @@ -13039,7 +13036,7 @@ call $~lib/builtins/abort unreachable end - local.get $20 + local.get $19 i32.const 1 call $~lib/array/Array#__get local.tee $2 @@ -13078,19 +13075,17 @@ call $~lib/rt/pure/__release local.get $9 call $~lib/rt/pure/__release - local.get $11 + local.get $10 + call $~lib/rt/pure/__release + local.get $12 call $~lib/rt/pure/__release - local.get $13 + local.get $16 call $~lib/rt/pure/__release local.get $17 call $~lib/rt/pure/__release local.get $18 call $~lib/rt/pure/__release - local.get $19 - call $~lib/rt/pure/__release - local.get $12 - call $~lib/rt/pure/__release - local.get $21 + local.get $11 call $~lib/rt/pure/__release local.get $22 call $~lib/rt/pure/__release @@ -13098,21 +13093,21 @@ call $~lib/rt/pure/__release local.get $24 call $~lib/rt/pure/__release - local.get $26 + local.get $25 call $~lib/rt/pure/__release local.get $27 call $~lib/rt/pure/__release - local.get $31 + local.get $28 call $~lib/rt/pure/__release local.get $32 call $~lib/rt/pure/__release local.get $33 call $~lib/rt/pure/__release - local.get $28 + local.get $34 call $~lib/rt/pure/__release local.get $29 call $~lib/rt/pure/__release - local.get $36 + local.get $30 call $~lib/rt/pure/__release local.get $37 call $~lib/rt/pure/__release @@ -13160,9 +13155,11 @@ call $~lib/rt/pure/__release local.get $59 call $~lib/rt/pure/__release + local.get $60 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $60 + local.get $61 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release @@ -14278,19 +14275,19 @@ if local.get $4 f32.load offset=4 - local.tee $14 + local.tee $13 local.get $4 f32.load - local.tee $34 + local.tee $35 call $~lib/util/sort/COMPARATOR~anonymous|0 i32.const 0 i32.lt_s if local.get $4 - local.get $34 + local.get $35 f32.store offset=4 local.get $4 - local.get $14 + local.get $13 f32.store end local.get $3 @@ -14314,7 +14311,7 @@ i32.shl i32.add f32.load - local.set $14 + local.set $13 local.get $2 i32.const 1 i32.sub @@ -14324,14 +14321,14 @@ i32.const 0 i32.ge_s if - local.get $14 + local.get $13 local.get $4 local.get $0 i32.const 2 i32.shl i32.add f32.load - local.tee $34 + local.tee $35 call $~lib/util/sort/COMPARATOR~anonymous|0 i32.const 0 i32.lt_s @@ -14348,7 +14345,7 @@ i32.const 2 i32.shl i32.add - local.get $34 + local.get $35 f32.store br $while-continue|1 end @@ -14361,7 +14358,7 @@ i32.const 2 i32.shl i32.add - local.get $14 + local.get $13 f32.store local.get $2 i32.const 1 @@ -14411,15 +14408,15 @@ local.get $3 local.get $1 call $~lib/array/Array#__get - local.tee $14 - local.get $14 + local.tee $13 + local.get $13 f32.ne if (result i32) local.get $7 local.get $1 call $~lib/array/Array#__get - local.tee $14 - local.get $14 + local.tee $13 + local.get $13 f32.ne else i32.const 0 @@ -14482,19 +14479,19 @@ if local.get $5 f64.load offset=8 - local.tee $15 + local.tee $14 local.get $5 f64.load - local.tee $35 + local.tee $36 call $~lib/util/sort/COMPARATOR~anonymous|0 i32.const 0 i32.lt_s if local.get $5 - local.get $35 + local.get $36 f64.store offset=8 local.get $5 - local.get $15 + local.get $14 f64.store end local.get $4 @@ -14518,7 +14515,7 @@ i32.shl i32.add f64.load - local.set $15 + local.set $14 local.get $2 i32.const 1 i32.sub @@ -14528,14 +14525,14 @@ i32.const 0 i32.ge_s if - local.get $15 + local.get $14 local.get $5 local.get $0 i32.const 3 i32.shl i32.add f64.load - local.tee $35 + local.tee $36 call $~lib/util/sort/COMPARATOR~anonymous|0 i32.const 0 i32.lt_s @@ -14552,7 +14549,7 @@ i32.const 3 i32.shl i32.add - local.get $35 + local.get $36 f64.store br $while-continue|13 end @@ -14565,7 +14562,7 @@ i32.const 3 i32.shl i32.add - local.get $15 + local.get $14 f64.store local.get $2 i32.const 1 @@ -14615,15 +14612,15 @@ local.get $4 local.get $1 call $~lib/array/Array#__get - local.tee $15 - local.get $15 + local.tee $14 + local.get $14 f64.ne if (result i32) local.get $2 local.get $1 call $~lib/array/Array#__get - local.tee $15 - local.get $15 + local.tee $14 + local.get $14 f64.ne else i32.const 0 @@ -14666,18 +14663,18 @@ i32.const 5536 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $17 + local.tee $16 i32.const 46 call $~lib/array/Array#sort call $~lib/rt/pure/__release - local.get $17 + local.get $16 i32.const 5 i32.const 2 i32.const 3 i32.const 5584 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $21 + local.tee $22 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14695,18 +14692,18 @@ i32.const 5632 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $18 + local.tee $17 i32.const 47 call $~lib/array/Array#sort call $~lib/rt/pure/__release - local.get $18 + local.get $17 i32.const 5 i32.const 2 i32.const 7 i32.const 5680 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $22 + local.tee $23 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14724,7 +14721,7 @@ i32.const 5728 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $19 + local.set $18 i32.const 1 i32.const 2 i32.const 3 @@ -14761,14 +14758,14 @@ local.set $9 i32.const 1024 call $std/array/createReverseOrderedArray - local.set $11 + local.set $10 i32.const 10000 call $std/array/createReverseOrderedArray - local.set $13 + local.set $12 i32.const 512 call $std/array/createRandomOrderedArray - local.set $12 - local.get $19 + local.set $11 + local.get $18 i32.const 48 call $std/array/assertSorted local.get $1 @@ -14781,7 +14778,7 @@ i32.const 5872 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $23 + local.tee $24 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14803,7 +14800,7 @@ i32.const 5904 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $24 + local.tee $25 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14863,10 +14860,10 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $10 i32.const 48 call $std/array/assertSorted - local.get $11 + local.get $10 local.get $0 i32.const 4 call $std/array/isArraysEqual @@ -14879,10 +14876,10 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $12 i32.const 48 call $std/array/assertSorted - local.get $13 + local.get $12 local.get $0 i32.const 4 call $std/array/isArraysEqual @@ -14895,7 +14892,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $11 i32.const 48 call $std/array/assertSorted local.get $3 @@ -14906,15 +14903,15 @@ call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $17 + local.get $16 call $~lib/rt/pure/__release - local.get $21 + local.get $22 call $~lib/rt/pure/__release - local.get $18 + local.get $17 call $~lib/rt/pure/__release - local.get $22 + local.get $23 call $~lib/rt/pure/__release - local.get $19 + local.get $18 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release @@ -14928,16 +14925,16 @@ call $~lib/rt/pure/__release local.get $9 call $~lib/rt/pure/__release - local.get $11 - call $~lib/rt/pure/__release - local.get $13 + local.get $10 call $~lib/rt/pure/__release local.get $12 call $~lib/rt/pure/__release - local.get $23 + local.get $11 call $~lib/rt/pure/__release local.get $24 call $~lib/rt/pure/__release + local.get $25 + call $~lib/rt/pure/__release i32.const 64 call $std/array/createRandomOrderedArray local.set $0 @@ -15334,7 +15331,7 @@ local.tee $9 i32.const 6576 call $~lib/array/Array#join - local.tee $11 + local.tee $10 i32.const 6608 call $~lib/string/String.__eq i32.eqz @@ -15357,7 +15354,7 @@ local.get $1 i32.load offset=12 call $~lib/util/string/joinFloatArray - local.tee $13 + local.tee $12 i32.const 7824 call $~lib/string/String.__eq i32.eqz @@ -15375,10 +15372,10 @@ i32.const 7952 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $17 + local.tee $16 i32.const 6064 call $~lib/array/Array<~lib/string/String | null>#join - local.tee $18 + local.tee $17 i32.const 7920 call $~lib/string/String.__eq i32.eqz @@ -15411,7 +15408,7 @@ i32.store offset=8 local.get $2 call $~lib/array/Array#join - local.tee $19 + local.tee $18 i32.const 8032 call $~lib/string/String.__eq i32.eqz @@ -15431,17 +15428,17 @@ call $~lib/rt/pure/__retain local.tee $3 i32.load offset=4 - local.tee $12 + local.tee $11 i32.const 0 call $std/array/Ref#constructor i32.store - local.get $12 + local.get $11 i32.const 0 call $std/array/Ref#constructor i32.store offset=4 local.get $3 call $~lib/array/Array#join - local.tee $12 + local.tee $11 i32.const 8112 call $~lib/string/String.__eq i32.eqz @@ -15467,23 +15464,23 @@ call $~lib/rt/pure/__release local.get $9 call $~lib/rt/pure/__release - local.get $11 + local.get $10 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $13 + local.get $12 call $~lib/rt/pure/__release - local.get $17 + local.get $16 call $~lib/rt/pure/__release - local.get $18 + local.get $17 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $19 + local.get $18 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $12 + local.get $11 call $~lib/rt/pure/__release i32.const 0 i32.const 2 @@ -15533,7 +15530,7 @@ i32.const 6304 call $~lib/array/Array#join local.tee $0 - local.set $17 + local.set $16 local.get $0 i32.const 7920 call $~lib/string/String.__eq @@ -15550,7 +15547,7 @@ i32.const 6304 call $~lib/array/Array#join local.tee $0 - local.set $18 + local.set $17 local.get $0 i32.const 8304 call $~lib/string/String.__eq @@ -15567,7 +15564,7 @@ i32.const 6304 call $~lib/array/Array#join local.tee $0 - local.set $19 + local.set $18 local.get $0 i32.const 8336 call $~lib/string/String.__eq @@ -15592,7 +15589,7 @@ i32.load offset=12 call $~lib/util/string/joinIntegerArray local.tee $0 - local.set $12 + local.set $11 local.get $0 i32.const 8400 call $~lib/string/String.__eq @@ -15617,7 +15614,7 @@ i32.load offset=12 call $~lib/util/string/joinIntegerArray local.tee $0 - local.set $21 + local.set $22 local.get $0 i32.const 8464 call $~lib/string/String.__eq @@ -15642,7 +15639,7 @@ i32.load offset=12 call $~lib/util/string/joinIntegerArray local.tee $0 - local.set $22 + local.set $23 local.get $0 i32.const 8560 call $~lib/string/String.__eq @@ -15661,13 +15658,13 @@ i32.const 8624 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $11 + local.tee $10 i32.load offset=4 - local.get $11 + local.get $10 i32.load offset=12 call $~lib/util/string/joinIntegerArray local.tee $0 - local.set $23 + local.set $24 local.get $0 i32.const 8672 call $~lib/string/String.__eq @@ -15686,11 +15683,11 @@ i32.const 8784 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $24 + local.tee $25 i32.const 6304 call $~lib/array/Array<~lib/string/String | null>#join local.tee $0 - local.set $26 + local.set $27 local.get $0 i32.const 8832 call $~lib/string/String.__eq @@ -15709,11 +15706,11 @@ i32.const 8944 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $27 + local.tee $28 i32.const 6304 call $~lib/array/Array<~lib/string/String | null>#join local.tee $0 - local.set $31 + local.set $32 local.get $0 i32.const 8976 call $~lib/string/String.__eq @@ -15756,7 +15753,7 @@ i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array> local.tee $1 - local.set $32 + local.set $33 local.get $1 i32.const 9072 call $~lib/string/String.__eq @@ -15799,7 +15796,7 @@ i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array> local.tee $2 - local.set $33 + local.set $34 local.get $2 i32.const 9072 call $~lib/string/String.__eq @@ -15826,7 +15823,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $29 + local.tee $30 i32.load offset=4 i32.const 1 i32.const 2 @@ -15835,16 +15832,16 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $29 + local.get $30 i32.store local.get $2 i32.load offset=4 local.get $2 i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> - local.tee $28 - local.set $29 - local.get $28 + local.tee $29 + local.set $30 + local.get $29 i32.const 7920 call $~lib/string/String.__eq i32.eqz @@ -15865,41 +15862,41 @@ local.get $7 call $~lib/rt/pure/__release call $~lib/rt/pure/__release + local.get $16 + call $~lib/rt/pure/__release local.get $17 call $~lib/rt/pure/__release local.get $18 call $~lib/rt/pure/__release - local.get $19 - call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release - local.get $12 + local.get $11 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $21 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release local.get $22 call $~lib/rt/pure/__release - local.get $11 + local.get $9 call $~lib/rt/pure/__release local.get $23 call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release local.get $24 call $~lib/rt/pure/__release - local.get $26 + local.get $25 call $~lib/rt/pure/__release local.get $27 call $~lib/rt/pure/__release - local.get $31 + local.get $28 call $~lib/rt/pure/__release local.get $32 call $~lib/rt/pure/__release local.get $33 call $~lib/rt/pure/__release - local.get $29 + local.get $34 + call $~lib/rt/pure/__release + local.get $30 call $~lib/rt/pure/__release global.get $std/array/arr call $~lib/rt/pure/__release @@ -15958,14 +15955,14 @@ unreachable end loop $for-loop|1 - local.get $10 + local.get $20 i32.const 10 i32.lt_s if local.get $7 - local.get $10 + local.get $20 call $~lib/array/Array#__get - local.get $10 + local.get $20 i32.ne if i32.const 0 @@ -15975,10 +15972,10 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $20 i32.const 1 i32.add - local.set $10 + local.set $20 br $for-loop|1 end end @@ -16044,22 +16041,20 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $10 loop $for-loop|2 - local.get $10 + local.get $21 local.get $4 i32.load offset=12 i32.lt_s if local.get $3 - local.get $10 + local.get $21 call $~lib/array/Array#__get - local.tee $8 + local.tee $20 local.get $4 - local.get $10 + local.get $21 call $~lib/array/Array#__get - local.tee $9 + local.tee $8 call $~lib/string/String.__eq i32.eqz if @@ -16070,14 +16065,14 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $20 call $~lib/rt/pure/__release - local.get $9 + local.get $8 call $~lib/rt/pure/__release - local.get $10 + local.get $21 i32.const 1 i32.add - local.set $10 + local.set $21 br $for-loop|2 end end @@ -16087,9 +16082,9 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 + local.tee $20 i32.load offset=4 - local.tee $8 + local.tee $21 i32.const 0 i32.const 2 i32.const 3 @@ -16097,7 +16092,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $8 + local.get $21 i32.const 0 i32.const 2 i32.const 3 @@ -16105,9 +16100,9 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 - local.get $10 + local.get $20 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $8 + local.tee $21 i32.load offset=12 if i32.const 0 @@ -16117,17 +16112,17 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $20 call $~lib/rt/pure/__release - local.get $8 + local.get $21 call $~lib/rt/pure/__release - local.get $16 + local.get $15 call $~lib/rt/pure/__release - local.get $25 + local.get $26 call $~lib/rt/pure/__release - local.get $20 + local.get $19 call $~lib/rt/pure/__release - local.get $30 + local.get $31 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 348f3e476f..edb9c7b880 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -283,6 +283,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -419,59 +428,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -501,6 +510,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -563,8 +586,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -575,16 +598,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -602,18 +625,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -625,7 +648,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -638,23 +661,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -668,14 +691,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -695,7 +718,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -713,24 +736,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -738,21 +761,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -768,86 +791,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -858,6 +881,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -997,11 +1021,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -1021,6 +1045,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -1077,66 +1107,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -1149,11 +1179,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -1202,7 +1232,15 @@ (local $7 i32) (local $8 i32) (local $9 i32) - local.get $1 + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + local.get $1 i32.const 256 i32.lt_u if @@ -1275,11 +1313,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1290,10 +1328,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1306,30 +1344,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1340,45 +1378,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1387,6 +1425,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1433,15 +1472,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1455,12 +1494,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1470,6 +1509,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1534,11 +1575,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1546,11 +1587,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -2264,6 +2305,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -2283,11 +2406,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -2307,8 +2430,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -2417,17 +2540,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -2444,16 +2567,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -2463,45 +2586,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -2512,8 +2635,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -2598,31 +2721,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -2633,8 +2756,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -2719,17 +2842,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -2740,8 +2863,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -2828,227 +2951,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -3057,115 +3180,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -3174,59 +3297,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -3235,31 +3358,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -3268,17 +3391,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -3289,6 +3412,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -3366,11 +3497,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -3380,8 +3511,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -3405,21 +3536,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -3448,8 +3579,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -3474,8 +3605,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -3495,8 +3626,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -3567,6 +3698,12 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 i32.load offset=4 local.set $4 @@ -3589,11 +3726,11 @@ select else local.get $2 - local.tee $6 + local.tee $8 local.get $5 - local.tee $7 - local.get $6 - local.get $7 + local.tee $9 + local.get $8 + local.get $9 i32.lt_s select end @@ -3605,20 +3742,20 @@ local.get $5 local.get $3 i32.add - local.tee $6 + local.tee $10 i32.const 0 - local.tee $7 - local.get $6 - local.get $7 + local.tee $11 + local.get $10 + local.get $11 i32.gt_s select else local.get $3 - local.tee $6 + local.tee $12 local.get $5 - local.tee $7 - local.get $6 - local.get $7 + local.tee $13 + local.get $12 + local.get $13 i32.lt_s select end @@ -3684,6 +3821,9 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3715,63 +3855,70 @@ i32.eq if i32.const 1 - local.set $3 + local.set $4 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $4 return end end i32.const 0 - local.set $3 + local.set $5 loop $for-loop|0 - local.get $3 + local.get $5 local.get $2 i32.lt_s - local.set $4 - local.get $4 + local.set $6 + local.get $6 if i32.const 0 drop local.get $0 - local.get $3 + local.get $5 call $~lib/array/Array#__get local.get $1 - local.get $3 + local.get $5 call $~lib/array/Array#__get i32.ne if i32.const 0 - local.set $5 + local.set $7 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $7 return end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end i32.const 1 - local.set $3 + local.set $8 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $8 ) (func $~lib/array/Array#fill (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) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) local.get $0 i32.load offset=4 local.set $4 @@ -3794,11 +3941,11 @@ select else local.get $2 - local.tee $6 + local.tee $8 local.get $5 - local.tee $7 - local.get $6 - local.get $7 + local.tee $9 + local.get $8 + local.get $9 i32.lt_s select end @@ -3810,20 +3957,20 @@ local.get $5 local.get $3 i32.add - local.tee $6 + local.tee $10 i32.const 0 - local.tee $7 - local.get $6 - local.get $7 + local.tee $11 + local.get $10 + local.get $11 i32.gt_s select else local.get $3 - local.tee $6 + local.tee $12 local.get $5 - local.tee $7 - local.get $6 - local.get $7 + local.tee $13 + local.get $12 + local.get $13 i32.lt_s select end @@ -3838,8 +3985,8 @@ local.get $2 local.get $3 i32.lt_s - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $4 local.get $2 @@ -3897,6 +4044,9 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3928,57 +4078,57 @@ i32.eq if i32.const 1 - local.set $3 + local.set $4 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $4 return end end i32.const 0 - local.set $3 + local.set $5 loop $for-loop|0 - local.get $3 + local.get $5 local.get $2 i32.lt_s - local.set $4 - local.get $4 + local.set $6 + local.get $6 if i32.const 0 drop local.get $0 - local.get $3 + local.get $5 call $~lib/array/Array#__get local.get $1 - local.get $3 + local.get $5 call $~lib/array/Array#__get i32.ne if i32.const 0 - local.set $5 + local.set $7 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $7 return end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end i32.const 1 - local.set $3 + local.set $8 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $8 ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 @@ -4084,6 +4234,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) local.get $2 call $~lib/rt/tlsf/prepareSize local.set $3 @@ -4141,8 +4292,8 @@ i32.xor i32.and i32.add - local.set $5 - local.get $5 + local.set $8 + local.get $8 local.get $3 i32.ge_u if @@ -4153,7 +4304,7 @@ local.get $4 i32.const 3 i32.and - local.get $5 + local.get $8 i32.or i32.store local.get $1 @@ -4172,12 +4323,12 @@ local.get $1 i32.load offset=8 call $~lib/rt/tlsf/allocateBlock - local.set $8 - local.get $8 + local.set $9 + local.get $9 local.get $1 i32.load offset=4 i32.store offset=4 - local.get $8 + local.get $9 i32.const 16 i32.add local.get $1 @@ -4192,13 +4343,13 @@ i32.const 1 drop local.get $1 - local.get $8 + local.get $9 call $~lib/rt/rtrace/onrealloc local.get $0 local.get $1 call $~lib/rt/tlsf/freeBlock end - local.get $8 + local.get $9 ) (func $~lib/rt/tlsf/__realloc (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize @@ -4508,6 +4659,20 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) local.get $0 i32.load offset=4 local.set $4 @@ -4530,24 +4695,24 @@ local.get $5 local.get $1 i32.add - local.tee $6 + local.tee $8 i32.const 0 - local.tee $7 - local.get $6 - local.get $7 + local.tee $9 + local.get $8 + local.get $9 i32.gt_s select else local.get $1 - local.tee $6 + local.tee $10 local.get $5 - local.tee $7 - local.get $6 - local.get $7 + local.tee $11 + local.get $10 + local.get $11 i32.lt_s select end - local.set $8 + local.set $12 local.get $2 i32.const 0 i32.lt_s @@ -4555,24 +4720,24 @@ local.get $5 local.get $2 i32.add - local.tee $6 + local.tee $13 i32.const 0 - local.tee $7 - local.get $6 - local.get $7 + local.tee $14 + local.get $13 + local.get $14 i32.gt_s select else local.get $2 - local.tee $6 + local.tee $15 local.get $5 - local.tee $7 - local.get $6 - local.get $7 + local.tee $16 + local.get $15 + local.get $16 i32.lt_s select end - local.set $9 + local.set $17 local.get $3 i32.const 0 i32.lt_s @@ -4580,50 +4745,50 @@ local.get $5 local.get $3 i32.add - local.tee $6 + local.tee $18 i32.const 0 - local.tee $7 - local.get $6 - local.get $7 + local.tee $19 + local.get $18 + local.get $19 i32.gt_s select else local.get $3 - local.tee $6 + local.tee $20 local.get $5 - local.tee $7 - local.get $6 - local.get $7 + local.tee $21 + local.get $20 + local.get $21 i32.lt_s select end - local.set $10 - local.get $10 - local.get $9 + local.set $22 + local.get $22 + local.get $17 i32.sub - local.tee $6 + local.tee $23 local.get $5 - local.get $8 + local.get $12 i32.sub - local.tee $7 - local.get $6 - local.get $7 + local.tee $24 + local.get $23 + local.get $24 i32.lt_s select - local.set $11 + local.set $25 i32.const 0 drop local.get $4 - local.get $8 + local.get $12 i32.const 2 i32.shl i32.add local.get $4 - local.get $9 + local.get $17 i32.const 2 i32.shl i32.add - local.get $11 + local.get $25 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -4634,6 +4799,9 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4665,57 +4833,57 @@ i32.eq if i32.const 1 - local.set $3 + local.set $4 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $4 return end end i32.const 0 - local.set $3 + local.set $5 loop $for-loop|0 - local.get $3 + local.get $5 local.get $2 i32.lt_s - local.set $4 - local.get $4 + local.set $6 + local.get $6 if i32.const 0 drop local.get $0 - local.get $3 + local.get $5 call $~lib/array/Array#__get local.get $1 - local.get $3 + local.get $5 call $~lib/array/Array#__get i32.ne if i32.const 0 - local.set $5 + local.set $7 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $7 return end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end i32.const 1 - local.set $3 + local.set $8 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $8 ) (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -4861,6 +5029,7 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) local.get $0 i32.load offset=12 local.set $3 @@ -4901,8 +5070,8 @@ local.get $2 local.get $3 i32.lt_s - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $6 local.get $2 @@ -4930,6 +5099,7 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) local.get $0 i32.load offset=12 local.set $3 @@ -4970,8 +5140,8 @@ local.get $2 local.get $3 i32.lt_s - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $6 local.get $2 @@ -4999,6 +5169,7 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) local.get $0 i32.load offset=12 local.set $3 @@ -5039,8 +5210,8 @@ local.get $2 local.get $3 i32.lt_s - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $6 local.get $2 @@ -5078,7 +5249,9 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 f32) + (local $6 i32) + (local $7 i32) + (local $8 f32) i32.const 1 drop local.get $0 @@ -5116,29 +5289,29 @@ end local.get $0 i32.load offset=4 - local.set $4 + local.set $6 loop $while-continue|0 local.get $2 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $7 + local.get $7 if - local.get $4 + local.get $6 local.get $2 i32.const 2 i32.shl i32.add f32.load - local.set $6 - local.get $6 + local.set $8 + local.get $8 local.get $1 f32.eq if (result i32) i32.const 1 else - local.get $6 - local.get $6 + local.get $8 + local.get $8 f32.ne local.get $1 local.get $1 @@ -5163,7 +5336,9 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 f64) + (local $6 i32) + (local $7 i32) + (local $8 f64) i32.const 1 drop local.get $0 @@ -5201,29 +5376,29 @@ end local.get $0 i32.load offset=4 - local.set $4 + local.set $6 loop $while-continue|0 local.get $2 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $7 + local.get $7 if - local.get $4 + local.get $6 local.get $2 i32.const 3 i32.shl i32.add f64.load - local.set $6 - local.get $6 + local.set $8 + local.get $8 local.get $1 f64.eq if (result i32) i32.const 1 else - local.get $6 - local.get $6 + local.get $8 + local.get $8 f64.ne local.get $1 local.get $1 @@ -5253,6 +5428,12 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) local.get $0 i32.load offset=12 local.set $3 @@ -5272,30 +5453,30 @@ select else local.get $1 - local.tee $4 + local.tee $6 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $7 + local.get $6 + local.get $7 i32.lt_s select end local.set $1 local.get $2 - local.tee $4 + local.tee $8 local.get $3 local.get $1 i32.sub - local.tee $5 - local.get $4 - local.get $5 + local.tee $9 + local.get $8 + local.get $9 i32.lt_s select - local.tee $4 + local.tee $10 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 + local.tee $11 + local.get $10 + local.get $11 i32.gt_s select local.set $2 @@ -5305,21 +5486,21 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $6 - local.get $6 + local.set $12 + local.get $12 i32.load offset=4 - local.set $7 + local.set $13 local.get $0 i32.load offset=4 - local.set $8 - local.get $8 + local.set $14 + local.get $14 local.get $1 i32.const 2 i32.shl i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $15 + local.get $13 + local.get $15 local.get $2 i32.const 2 i32.shl @@ -5327,19 +5508,19 @@ local.get $1 local.get $2 i32.add - local.set $10 + local.set $16 local.get $3 - local.get $10 + local.get $16 i32.ne if - local.get $9 - local.get $8 - local.get $10 + local.get $15 + local.get $14 + local.get $16 i32.const 2 i32.shl i32.add local.get $3 - local.get $10 + local.get $16 i32.sub i32.const 2 i32.shl @@ -5350,7 +5531,7 @@ local.get $2 i32.sub i32.store offset=12 - local.get $6 + local.get $12 ) (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -5361,6 +5542,12 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) local.get $0 i32.load offset=12 local.set $3 @@ -5380,30 +5567,30 @@ select else local.get $1 - local.tee $4 + local.tee $6 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $7 + local.get $6 + local.get $7 i32.lt_s select end local.set $1 local.get $2 - local.tee $4 + local.tee $8 local.get $3 local.get $1 i32.sub - local.tee $5 - local.get $4 - local.get $5 + local.tee $9 + local.get $8 + local.get $9 i32.lt_s select - local.tee $4 + local.tee $10 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 + local.tee $11 + local.get $10 + local.get $11 i32.gt_s select local.set $2 @@ -5413,21 +5600,21 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $6 - local.get $6 + local.set $12 + local.get $12 i32.load offset=4 - local.set $7 + local.set $13 local.get $0 i32.load offset=4 - local.set $8 - local.get $8 + local.set $14 + local.get $14 local.get $1 i32.const 2 i32.shl i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $15 + local.get $13 + local.get $15 local.get $2 i32.const 2 i32.shl @@ -5435,19 +5622,19 @@ local.get $1 local.get $2 i32.add - local.set $10 + local.set $16 local.get $3 - local.get $10 + local.get $16 i32.ne if - local.get $9 - local.get $8 - local.get $10 - i32.const 2 + local.get $15 + local.get $14 + local.get $16 + i32.const 2 i32.shl i32.add local.get $3 - local.get $10 + local.get $16 i32.sub i32.const 2 i32.shl @@ -5458,7 +5645,7 @@ local.get $2 i32.sub i32.store offset=12 - local.get $6 + local.get $12 ) (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -5516,6 +5703,12 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) local.get $0 i32.load offset=12 local.set $3 @@ -5535,30 +5728,30 @@ select else local.get $1 - local.tee $4 + local.tee $6 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $7 + local.get $6 + local.get $7 i32.lt_s select end local.set $1 local.get $2 - local.tee $4 + local.tee $8 local.get $3 local.get $1 i32.sub - local.tee $5 - local.get $4 - local.get $5 + local.tee $9 + local.get $8 + local.get $9 i32.lt_s select - local.tee $4 + local.tee $10 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 + local.tee $11 + local.get $10 + local.get $11 i32.gt_s select local.set $2 @@ -5568,21 +5761,21 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $6 - local.get $6 + local.set $12 + local.get $12 i32.load offset=4 - local.set $7 + local.set $13 local.get $0 i32.load offset=4 - local.set $8 - local.get $8 + local.set $14 + local.get $14 local.get $1 i32.const 2 i32.shl i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $15 + local.get $13 + local.get $15 local.get $2 i32.const 2 i32.shl @@ -5590,19 +5783,19 @@ local.get $1 local.get $2 i32.add - local.set $10 + local.set $16 local.get $3 - local.get $10 + local.get $16 i32.ne if - local.get $9 - local.get $8 - local.get $10 + local.get $15 + local.get $14 + local.get $16 i32.const 2 i32.shl i32.add local.get $3 - local.get $10 + local.get $16 i32.sub i32.const 2 i32.shl @@ -5613,7 +5806,7 @@ local.get $2 i32.sub i32.store offset=12 - local.get $6 + local.get $12 ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 @@ -5722,6 +5915,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) i32.const 0 local.set $2 local.get $0 @@ -5739,8 +5933,8 @@ i32.lt_s select i32.lt_s - local.set $4 - local.get $4 + local.set $6 + local.get $6 if local.get $0 i32.load offset=4 @@ -5858,6 +6052,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) i32.const 0 local.set $2 local.get $0 @@ -5875,8 +6070,8 @@ i32.lt_s select i32.lt_s - local.set $4 - local.get $4 + local.set $6 + local.get $6 if local.get $0 i32.load offset=4 @@ -5982,6 +6177,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) i32.const 0 local.set $2 local.get $0 @@ -5999,8 +6195,8 @@ i32.lt_s select i32.lt_s - local.set $4 - local.get $4 + local.set $6 + local.get $6 if local.get $0 i32.load offset=4 @@ -6103,6 +6299,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) i32.const 0 local.set $2 local.get $0 @@ -6120,8 +6317,8 @@ i32.lt_s select i32.lt_s - local.set $4 - local.get $4 + local.set $6 + local.get $6 if local.get $0 i32.load offset=4 @@ -6187,6 +6384,12 @@ (func $start:std/array~anonymous|20 (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.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -6214,65 +6417,65 @@ end end i32.const 0 - local.set $3 + local.set $5 loop $for-loop|1 - local.get $3 + local.get $5 i32.const 100 i32.lt_s - local.set $4 - local.get $4 + local.set $6 + local.get $6 if local.get $2 i32.const 100 - local.get $3 + local.get $5 i32.add call $~lib/array/Array#push drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|1 end end i32.const 0 - local.set $3 + local.set $7 loop $for-loop|2 - local.get $3 + local.get $7 i32.const 100 i32.lt_s - local.set $4 - local.get $4 + local.set $8 + local.get $8 if local.get $2 call $~lib/array/Array#pop drop - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|2 end end i32.const 0 - local.set $3 + local.set $9 loop $for-loop|3 - local.get $3 + local.get $9 i32.const 100 i32.lt_s - local.set $4 - local.get $4 + local.set $10 + local.get $10 if local.get $2 - local.get $3 + local.get $9 i32.const 200 i32.add call $~lib/array/Array#push drop - local.get $3 + local.get $9 i32.const 1 i32.add - local.set $3 + local.set $9 br $for-loop|3 end end @@ -6316,7 +6519,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 f32) + (local $8 i32) + (local $9 f32) local.get $0 i32.load offset=12 local.set $2 @@ -6344,8 +6548,8 @@ i32.lt_s select i32.lt_s - local.set $6 - local.get $6 + local.set $8 + local.get $8 if local.get $0 i32.load offset=4 @@ -6360,7 +6564,7 @@ global.set $~argumentsLength local.get $1 call_indirect (type $i32_i32_i32_=>_f32) - local.set $8 + local.set $9 i32.const 0 drop local.get $4 @@ -6368,7 +6572,7 @@ i32.const 2 i32.shl i32.add - local.get $8 + local.get $9 f32.store local.get $5 i32.const 1 @@ -6440,6 +6644,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 i32.load offset=12 local.set $2 @@ -6467,8 +6673,8 @@ i32.lt_s select i32.lt_s - local.set $6 - local.get $6 + local.set $8 + local.get $8 if local.get $0 i32.load offset=4 @@ -6483,7 +6689,7 @@ global.set $~argumentsLength local.get $1 call_indirect (type $i32_i32_i32_=>_i32) - local.set $7 + local.set $9 i32.const 0 drop local.get $4 @@ -6491,7 +6697,7 @@ i32.const 2 i32.shl i32.add - local.get $7 + local.get $9 i32.store local.get $5 i32.const 1 @@ -6554,6 +6760,8 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) i32.const 0 i32.const 2 i32.const 3 @@ -6578,8 +6786,8 @@ i32.lt_s select i32.lt_s - local.set $5 - local.get $5 + local.set $7 + local.get $7 if local.get $0 i32.load offset=4 @@ -6588,8 +6796,8 @@ i32.shl i32.add i32.load - local.set $6 - local.get $6 + local.set $8 + local.get $8 local.get $3 local.get $0 i32.const 3 @@ -6598,7 +6806,7 @@ call_indirect (type $i32_i32_i32_=>_i32) if local.get $2 - local.get $6 + local.get $8 call $~lib/array/Array#push drop end @@ -6688,6 +6896,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) local.get $2 local.set $3 i32.const 0 @@ -6707,8 +6916,8 @@ i32.lt_s select i32.lt_s - local.set $6 - local.get $6 + local.set $8 + local.get $8 if local.get $3 local.get $0 @@ -6771,6 +6980,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) local.get $2 local.set $3 i32.const 0 @@ -6790,8 +7000,8 @@ i32.lt_s select i32.lt_s - local.set $6 - local.get $6 + local.set $8 + local.get $8 if local.get $3 local.get $0 @@ -7292,10 +7502,18 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f32) + (local $9 i32) (local $10 f32) - (local $11 i32) - (local $12 f32) + (local $11 f32) + (local $12 i32) + (local $13 i32) + (local $14 f32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 f32) + (local $20 f32) local.get $1 i32.const 31 i32.add @@ -7359,23 +7577,23 @@ local.get $7 i32.const 1 i32.shr_s - local.set $8 + local.set $9 local.get $0 - local.get $8 + local.get $9 i32.const 2 i32.shl i32.add f32.load - local.set $9 + local.set $10 local.get $0 local.get $5 i32.const 2 i32.shl i32.add f32.load - local.set $10 - local.get $9 + local.set $11 local.get $10 + local.get $11 i32.const 2 global.set $~argumentsLength local.get $2 @@ -7410,14 +7628,14 @@ i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 f32.store local.get $0 - local.get $8 + local.get $9 i32.const 2 i32.shl i32.add - local.get $10 + local.get $11 f32.store end local.get $5 @@ -7430,83 +7648,83 @@ local.get $1 i32.const 1 i32.sub - local.set $5 + local.set $12 loop $for-loop|2 - local.get $5 + local.get $12 i32.const 2 i32.ge_s - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $0 f32.load - local.set $10 + local.set $14 local.get $0 local.get $0 - local.get $5 + local.get $12 i32.const 2 i32.shl i32.add f32.load f32.store local.get $0 - local.get $5 + local.get $12 i32.const 2 i32.shl i32.add - local.get $10 + local.get $14 f32.store i32.const 1 - local.set $8 + local.set $15 loop $while-continue|3 - local.get $8 + local.get $15 i32.const 1 i32.shl local.get $4 - local.get $8 + local.get $15 i32.const 5 i32.shr_u i32.const 2 i32.shl i32.add i32.load - local.get $8 + local.get $15 i32.const 31 i32.and i32.shr_u i32.const 1 i32.and i32.add - local.tee $7 - local.get $5 + local.tee $16 + local.get $12 i32.lt_s - local.set $11 - local.get $11 + local.set $17 + local.get $17 if - local.get $7 - local.set $8 + local.get $16 + local.set $15 br $while-continue|3 end end loop $while-continue|4 - local.get $8 + local.get $15 i32.const 0 i32.gt_s - local.set $11 - local.get $11 + local.set $18 + local.get $18 if local.get $0 f32.load - local.set $10 + local.set $14 local.get $0 - local.get $8 + local.get $15 i32.const 2 i32.shl i32.add f32.load - local.set $9 - local.get $10 - local.get $9 + local.set $19 + local.get $14 + local.get $19 i32.const 2 global.set $~argumentsLength local.get $2 @@ -7515,14 +7733,14 @@ i32.lt_s if local.get $4 - local.get $8 + local.get $15 i32.const 5 i32.shr_u i32.const 2 i32.shl i32.add local.get $4 - local.get $8 + local.get $15 i32.const 5 i32.shr_u i32.const 2 @@ -7530,34 +7748,34 @@ i32.add i32.load i32.const 1 - local.get $8 + local.get $15 i32.const 31 i32.and i32.shl i32.xor i32.store local.get $0 - local.get $8 + local.get $15 i32.const 2 i32.shl i32.add - local.get $10 + local.get $14 f32.store local.get $0 - local.get $9 + local.get $19 f32.store end - local.get $8 + local.get $15 i32.const 1 i32.shr_s - local.set $8 + local.set $15 br $while-continue|4 end end - local.get $5 + local.get $12 i32.const 1 i32.sub - local.set $5 + local.set $12 br $for-loop|2 end end @@ -7565,13 +7783,13 @@ call $~lib/rt/tlsf/__free local.get $0 f32.load offset=4 - local.set $12 + local.set $20 local.get $0 local.get $0 f32.load f32.store offset=4 local.get $0 - local.get $12 + local.get $20 f32.store ) (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) @@ -7714,8 +7932,12 @@ (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 f32) + (local $5 i32) (local $6 i32) + (local $7 f32) + (local $8 f32) + (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -7747,39 +7969,39 @@ i32.eq if i32.const 1 - local.set $3 + local.set $4 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $4 return end end i32.const 0 - local.set $3 + local.set $5 loop $for-loop|0 - local.get $3 + local.get $5 local.get $2 i32.lt_s - local.set $4 - local.get $4 + local.set $6 + local.get $6 if block $for-continue|0 i32.const 1 drop local.get $0 - local.get $3 - call $~lib/array/Array#__get - local.tee $5 local.get $5 + call $~lib/array/Array#__get + local.tee $7 + local.get $7 f32.ne if (result i32) local.get $1 - local.get $3 - call $~lib/array/Array#__get - local.tee $5 local.get $5 + call $~lib/array/Array#__get + local.tee $8 + local.get $8 f32.ne else i32.const 0 @@ -7788,37 +8010,37 @@ br $for-continue|0 end local.get $0 - local.get $3 + local.get $5 call $~lib/array/Array#__get local.get $1 - local.get $3 + local.get $5 call $~lib/array/Array#__get f32.ne if i32.const 0 - local.set $6 + local.set $9 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $9 return end end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end i32.const 1 - local.set $3 + local.set $10 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $10 ) (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -7917,10 +8139,18 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f64) + (local $9 i32) (local $10 f64) - (local $11 i32) - (local $12 f64) + (local $11 f64) + (local $12 i32) + (local $13 i32) + (local $14 f64) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 f64) + (local $20 f64) local.get $1 i32.const 31 i32.add @@ -7984,23 +8214,23 @@ local.get $7 i32.const 1 i32.shr_s - local.set $8 + local.set $9 local.get $0 - local.get $8 + local.get $9 i32.const 3 i32.shl i32.add f64.load - local.set $9 + local.set $10 local.get $0 local.get $5 i32.const 3 i32.shl i32.add f64.load - local.set $10 - local.get $9 + local.set $11 local.get $10 + local.get $11 i32.const 2 global.set $~argumentsLength local.get $2 @@ -8035,14 +8265,14 @@ i32.const 3 i32.shl i32.add - local.get $9 + local.get $10 f64.store local.get $0 - local.get $8 + local.get $9 i32.const 3 i32.shl i32.add - local.get $10 + local.get $11 f64.store end local.get $5 @@ -8055,83 +8285,83 @@ local.get $1 i32.const 1 i32.sub - local.set $5 + local.set $12 loop $for-loop|2 - local.get $5 + local.get $12 i32.const 2 i32.ge_s - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $0 f64.load - local.set $10 + local.set $14 local.get $0 local.get $0 - local.get $5 + local.get $12 i32.const 3 i32.shl i32.add f64.load f64.store local.get $0 - local.get $5 + local.get $12 i32.const 3 i32.shl i32.add - local.get $10 + local.get $14 f64.store i32.const 1 - local.set $8 + local.set $15 loop $while-continue|3 - local.get $8 + local.get $15 i32.const 1 i32.shl local.get $4 - local.get $8 + local.get $15 i32.const 5 i32.shr_u i32.const 2 i32.shl i32.add i32.load - local.get $8 + local.get $15 i32.const 31 i32.and i32.shr_u i32.const 1 i32.and i32.add - local.tee $7 - local.get $5 + local.tee $16 + local.get $12 i32.lt_s - local.set $11 - local.get $11 + local.set $17 + local.get $17 if - local.get $7 - local.set $8 + local.get $16 + local.set $15 br $while-continue|3 end end loop $while-continue|4 - local.get $8 + local.get $15 i32.const 0 i32.gt_s - local.set $11 - local.get $11 + local.set $18 + local.get $18 if local.get $0 f64.load - local.set $10 + local.set $14 local.get $0 - local.get $8 + local.get $15 i32.const 3 i32.shl i32.add f64.load - local.set $9 - local.get $10 - local.get $9 + local.set $19 + local.get $14 + local.get $19 i32.const 2 global.set $~argumentsLength local.get $2 @@ -8140,14 +8370,14 @@ i32.lt_s if local.get $4 - local.get $8 + local.get $15 i32.const 5 i32.shr_u i32.const 2 i32.shl i32.add local.get $4 - local.get $8 + local.get $15 i32.const 5 i32.shr_u i32.const 2 @@ -8155,34 +8385,34 @@ i32.add i32.load i32.const 1 - local.get $8 + local.get $15 i32.const 31 i32.and i32.shl i32.xor i32.store local.get $0 - local.get $8 + local.get $15 i32.const 3 i32.shl i32.add - local.get $10 + local.get $14 f64.store local.get $0 - local.get $9 + local.get $19 f64.store end - local.get $8 + local.get $15 i32.const 1 i32.shr_s - local.set $8 + local.set $15 br $while-continue|4 end end - local.get $5 + local.get $12 i32.const 1 i32.sub - local.set $5 + local.set $12 br $for-loop|2 end end @@ -8190,13 +8420,13 @@ call $~lib/rt/tlsf/__free local.get $0 f64.load offset=8 - local.set $12 + local.set $20 local.get $0 local.get $0 f64.load f64.store offset=8 local.get $0 - local.get $12 + local.get $20 f64.store ) (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) @@ -8374,8 +8604,12 @@ (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 f64) + (local $5 i32) (local $6 i32) + (local $7 f64) + (local $8 f64) + (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -8407,39 +8641,39 @@ i32.eq if i32.const 1 - local.set $3 + local.set $4 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $4 return end end i32.const 0 - local.set $3 + local.set $5 loop $for-loop|0 - local.get $3 + local.get $5 local.get $2 i32.lt_s - local.set $4 - local.get $4 + local.set $6 + local.get $6 if block $for-continue|0 i32.const 1 drop local.get $0 - local.get $3 - call $~lib/array/Array#__get - local.tee $5 local.get $5 + call $~lib/array/Array#__get + local.tee $7 + local.get $7 f64.ne if (result i32) local.get $1 - local.get $3 - call $~lib/array/Array#__get - local.tee $5 local.get $5 + call $~lib/array/Array#__get + local.tee $8 + local.get $8 f64.ne else i32.const 0 @@ -8448,37 +8682,37 @@ br $for-continue|0 end local.get $0 - local.get $3 + local.get $5 call $~lib/array/Array#__get local.get $1 - local.get $3 + local.get $5 call $~lib/array/Array#__get f64.ne if i32.const 0 - local.set $6 + local.set $9 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $9 return end end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end i32.const 1 - local.set $3 + local.set $10 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $10 ) (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -8581,6 +8815,14 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.const 31 i32.add @@ -8644,23 +8886,23 @@ local.get $7 i32.const 1 i32.shr_s - local.set $8 + local.set $9 local.get $0 - local.get $8 + local.get $9 i32.const 2 i32.shl i32.add i32.load - local.set $9 + local.set $10 local.get $0 local.get $5 i32.const 2 i32.shl i32.add i32.load - local.set $10 - local.get $9 + local.set $11 local.get $10 + local.get $11 i32.const 2 global.set $~argumentsLength local.get $2 @@ -8695,14 +8937,14 @@ i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store local.get $0 - local.get $8 + local.get $9 i32.const 2 i32.shl i32.add - local.get $10 + local.get $11 i32.store end local.get $5 @@ -8715,83 +8957,83 @@ local.get $1 i32.const 1 i32.sub - local.set $5 + local.set $12 loop $for-loop|2 - local.get $5 + local.get $12 i32.const 2 i32.ge_s - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $0 i32.load - local.set $10 + local.set $14 local.get $0 local.get $0 - local.get $5 + local.get $12 i32.const 2 i32.shl i32.add i32.load i32.store local.get $0 - local.get $5 + local.get $12 i32.const 2 i32.shl i32.add - local.get $10 + local.get $14 i32.store i32.const 1 - local.set $9 + local.set $15 loop $while-continue|3 - local.get $9 + local.get $15 i32.const 1 i32.shl local.get $4 - local.get $9 + local.get $15 i32.const 5 i32.shr_u i32.const 2 i32.shl i32.add i32.load - local.get $9 + local.get $15 i32.const 31 i32.and i32.shr_u i32.const 1 i32.and i32.add - local.tee $8 - local.get $5 + local.tee $16 + local.get $12 i32.lt_s - local.set $7 - local.get $7 + local.set $17 + local.get $17 if - local.get $8 - local.set $9 + local.get $16 + local.set $15 br $while-continue|3 end end loop $while-continue|4 - local.get $9 + local.get $15 i32.const 0 i32.gt_s - local.set $7 - local.get $7 + local.set $18 + local.get $18 if local.get $0 i32.load - local.set $10 + local.set $14 local.get $0 - local.get $9 + local.get $15 i32.const 2 i32.shl i32.add i32.load - local.set $11 - local.get $10 - local.get $11 + local.set $19 + local.get $14 + local.get $19 i32.const 2 global.set $~argumentsLength local.get $2 @@ -8800,14 +9042,14 @@ i32.lt_s if local.get $4 - local.get $9 + local.get $15 i32.const 5 i32.shr_u i32.const 2 i32.shl i32.add local.get $4 - local.get $9 + local.get $15 i32.const 5 i32.shr_u i32.const 2 @@ -8815,34 +9057,34 @@ i32.add i32.load i32.const 1 - local.get $9 + local.get $15 i32.const 31 i32.and i32.shl i32.xor i32.store local.get $0 - local.get $9 + local.get $15 i32.const 2 i32.shl i32.add - local.get $10 + local.get $14 i32.store local.get $0 - local.get $11 + local.get $19 i32.store end - local.get $9 + local.get $15 i32.const 1 i32.shr_s - local.set $9 + local.set $15 br $while-continue|4 end end - local.get $5 + local.get $12 i32.const 1 i32.sub - local.set $5 + local.set $12 br $for-loop|2 end end @@ -8850,13 +9092,13 @@ call $~lib/rt/tlsf/__free local.get $0 i32.load offset=4 - local.set $12 + local.set $20 local.get $0 local.get $0 i32.load i32.store offset=4 local.get $0 - local.get $12 + local.get $20 i32.store ) (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) @@ -8865,6 +9107,8 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $0 i32.load offset=12 local.set $2 @@ -8910,25 +9154,25 @@ return end local.get $3 - local.set $6 + local.set $8 local.get $2 - local.set $5 + local.set $7 local.get $1 - local.set $4 + local.set $6 i32.const 0 drop - local.get $5 + local.get $7 i32.const 256 i32.lt_s if + local.get $8 + local.get $7 local.get $6 - local.get $5 - local.get $4 call $~lib/util/sort/insertionSort else + local.get $8 + local.get $7 local.get $6 - local.get $5 - local.get $4 call $~lib/util/sort/weakHeapSort end local.get $0 @@ -9070,8 +9314,16 @@ (local $10 i32) (local $11 i32) (local $12 i32) - local.get $1 - i32.const 31 + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 31 i32.add i32.const 5 i32.shr_u @@ -9133,23 +9385,23 @@ local.get $7 i32.const 1 i32.shr_s - local.set $8 + local.set $9 local.get $0 - local.get $8 + local.get $9 i32.const 2 i32.shl i32.add i32.load - local.set $9 + local.set $10 local.get $0 local.get $5 i32.const 2 i32.shl i32.add i32.load - local.set $10 - local.get $9 + local.set $11 local.get $10 + local.get $11 i32.const 2 global.set $~argumentsLength local.get $2 @@ -9184,14 +9436,14 @@ i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store local.get $0 - local.get $8 + local.get $9 i32.const 2 i32.shl i32.add - local.get $10 + local.get $11 i32.store end local.get $5 @@ -9204,83 +9456,83 @@ local.get $1 i32.const 1 i32.sub - local.set $5 + local.set $12 loop $for-loop|2 - local.get $5 + local.get $12 i32.const 2 i32.ge_s - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $0 i32.load - local.set $10 + local.set $14 local.get $0 local.get $0 - local.get $5 + local.get $12 i32.const 2 i32.shl i32.add i32.load i32.store local.get $0 - local.get $5 + local.get $12 i32.const 2 i32.shl i32.add - local.get $10 + local.get $14 i32.store i32.const 1 - local.set $9 + local.set $15 loop $while-continue|3 - local.get $9 + local.get $15 i32.const 1 i32.shl local.get $4 - local.get $9 + local.get $15 i32.const 5 i32.shr_u i32.const 2 i32.shl i32.add i32.load - local.get $9 + local.get $15 i32.const 31 i32.and i32.shr_u i32.const 1 i32.and i32.add - local.tee $8 - local.get $5 + local.tee $16 + local.get $12 i32.lt_s - local.set $7 - local.get $7 + local.set $17 + local.get $17 if - local.get $8 - local.set $9 + local.get $16 + local.set $15 br $while-continue|3 end end loop $while-continue|4 - local.get $9 + local.get $15 i32.const 0 i32.gt_s - local.set $7 - local.get $7 + local.set $18 + local.get $18 if local.get $0 i32.load - local.set $10 + local.set $14 local.get $0 - local.get $9 + local.get $15 i32.const 2 i32.shl i32.add i32.load - local.set $11 - local.get $10 - local.get $11 + local.set $19 + local.get $14 + local.get $19 i32.const 2 global.set $~argumentsLength local.get $2 @@ -9289,14 +9541,14 @@ i32.lt_s if local.get $4 - local.get $9 + local.get $15 i32.const 5 i32.shr_u i32.const 2 i32.shl i32.add local.get $4 - local.get $9 + local.get $15 i32.const 5 i32.shr_u i32.const 2 @@ -9304,34 +9556,34 @@ i32.add i32.load i32.const 1 - local.get $9 + local.get $15 i32.const 31 i32.and i32.shl i32.xor i32.store local.get $0 - local.get $9 + local.get $15 i32.const 2 i32.shl i32.add - local.get $10 + local.get $14 i32.store local.get $0 - local.get $11 + local.get $19 i32.store end - local.get $9 + local.get $15 i32.const 1 i32.shr_s - local.set $9 + local.set $15 br $while-continue|4 end end - local.get $5 + local.get $12 i32.const 1 i32.sub - local.set $5 + local.set $12 br $for-loop|2 end end @@ -9339,13 +9591,13 @@ call $~lib/rt/tlsf/__free local.get $0 i32.load offset=4 - local.set $12 + local.set $20 local.get $0 local.get $0 i32.load i32.store offset=4 local.get $0 - local.get $12 + local.get $20 i32.store ) (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) @@ -9354,6 +9606,8 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $0 i32.load offset=12 local.set $2 @@ -9399,25 +9653,25 @@ return end local.get $3 - local.set $6 + local.set $8 local.get $2 - local.set $5 + local.set $7 local.get $1 - local.set $4 + local.set $6 i32.const 0 drop - local.get $5 + local.get $7 i32.const 256 i32.lt_s if + local.get $8 + local.get $7 local.get $6 - local.get $5 - local.get $4 call $~lib/util/sort/insertionSort else + local.get $8 + local.get $7 local.get $6 - local.get $5 - local.get $4 call $~lib/util/sort/weakHeapSort end local.get $0 @@ -9592,6 +9846,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -9637,10 +9892,10 @@ end end i32.const 1 - local.set $3 + local.set $6 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $6 ) (func $std/array/assertSorted (param $0 i32) (param $1 i32) (local $2 i32) @@ -10037,6 +10292,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 i32.load offset=12 local.set $2 @@ -10090,16 +10348,16 @@ return end local.get $3 - local.set $5 + local.set $9 local.get $2 - local.set $4 + local.set $8 local.get $1 - local.set $6 + local.set $7 i32.const 1 drop - local.get $5 - local.get $4 - local.get $6 + local.get $9 + local.get $8 + local.get $7 call $~lib/util/sort/insertionSort<~lib/array/Array> local.get $0 call $~lib/rt/pure/__retain @@ -10162,6 +10420,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -10217,10 +10476,10 @@ end end i32.const 1 - local.set $3 + local.set $8 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $8 ) (func $std/array/assertSorted<~lib/array/Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -10581,6 +10840,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 i32.load offset=12 local.set $2 @@ -10634,16 +10896,16 @@ return end local.get $3 - local.set $5 + local.set $9 local.get $2 - local.set $4 + local.set $8 local.get $1 - local.set $6 + local.set $7 i32.const 1 drop - local.get $5 - local.get $4 - local.get $6 + local.get $9 + local.get $8 + local.get $7 call $~lib/util/sort/insertionSort> local.get $0 call $~lib/rt/pure/__retain @@ -10706,6 +10968,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -10761,10 +11024,10 @@ end end i32.const 1 - local.set $3 + local.set $8 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $8 ) (func $std/array/assertSorted> (param $0 i32) (param $1 i32) (local $2 i32) @@ -10895,6 +11158,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 i32.load offset=12 local.set $2 @@ -10948,16 +11214,16 @@ return end local.get $3 - local.set $5 + local.set $9 local.get $2 - local.set $4 + local.set $8 local.get $1 - local.set $6 + local.set $7 i32.const 1 drop - local.get $5 - local.get $4 - local.get $6 + local.get $9 + local.get $8 + local.get $7 call $~lib/util/sort/insertionSort<~lib/string/String | null> local.get $0 call $~lib/rt/pure/__retain @@ -11008,6 +11274,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -11063,10 +11330,10 @@ end end i32.const 1 - local.set $3 + local.set $8 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $8 ) (func $std/array/assertSorted<~lib/string/String | null> (param $0 i32) (param $1 i32) (local $2 i32) @@ -11108,6 +11375,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -11179,33 +11449,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $10 + local.get $12 return end local.get $5 @@ -11220,18 +11490,23 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $7 + local.get $13 ) (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (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.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -11281,36 +11556,36 @@ end if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $5 return end local.get $3 i32.eqz if i32.const -1 - local.set $2 + local.set $6 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $6 return end local.get $4 i32.eqz if i32.const 1 - local.set $2 + local.set $7 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $7 return end local.get $0 @@ -11318,20 +11593,20 @@ local.get $1 i32.const 0 local.get $3 - local.tee $2 + local.tee $8 local.get $4 - local.tee $5 - local.get $2 - local.get $5 + local.tee $9 + local.get $8 + local.get $9 i32.lt_s select call $~lib/util/string/compareImpl - local.set $2 + local.set $10 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $10 ) (func $std/array/assertSorted<~lib/string/String | null>@varargs (param $0 i32) (param $1 i32) block $1of1 @@ -11363,6 +11638,9 @@ (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -11394,44 +11672,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $6 ) (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -11458,6 +11736,9 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -11489,67 +11770,67 @@ i32.eq if i32.const 1 - local.set $3 + local.set $4 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $4 return end end i32.const 0 - local.set $3 + local.set $5 loop $for-loop|0 - local.get $3 + local.get $5 local.get $2 i32.lt_s - local.set $4 - local.get $4 + local.set $6 + local.get $6 if i32.const 0 drop local.get $0 - local.get $3 + local.get $5 call $~lib/array/Array<~lib/string/String | null>#__get - local.tee $5 + local.tee $7 local.get $1 - local.get $3 + local.get $5 call $~lib/array/Array<~lib/string/String | null>#__get - local.tee $6 + local.tee $8 call $~lib/string/String.__ne if i32.const 0 - local.set $7 + local.set $9 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $7 call $~lib/rt/pure/__release - local.get $6 + local.get $8 call $~lib/rt/pure/__release - local.get $7 + local.get $9 return end - local.get $5 + local.get $7 call $~lib/rt/pure/__release - local.get $6 + local.get $8 call $~lib/rt/pure/__release - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end i32.const 1 - local.set $3 + local.set $10 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $10 ) (func $~lib/array/Array<~lib/string/String>#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -11666,6 +11947,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 @@ -11708,32 +11991,32 @@ if i32.const 5056 call $~lib/rt/pure/__retain - local.set $2 + local.set $7 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $7 return end local.get $6 i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $7 - local.get $7 + local.set $8 + local.get $8 local.get $0 local.get $4 call $~lib/memory/memory.copy - local.get $7 + local.get $8 local.get $4 i32.add local.get $1 local.get $5 call $~lib/memory/memory.copy - local.get $7 - local.set $2 + local.get $8 + local.set $9 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $9 ) (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -12034,6 +12317,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 i32.load offset=12 local.set $2 @@ -12087,16 +12373,16 @@ return end local.get $3 - local.set $5 + local.set $9 local.get $2 - local.set $4 + local.set $8 local.get $1 - local.set $6 + local.set $7 i32.const 1 drop - local.get $5 - local.get $4 - local.get $6 + local.get $9 + local.get $8 + local.get $7 call $~lib/util/sort/insertionSort<~lib/string/String> local.get $0 call $~lib/rt/pure/__retain @@ -12159,6 +12445,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -12214,10 +12501,10 @@ end end i32.const 1 - local.set $3 + local.set $8 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $8 ) (func $std/array/assertSorted<~lib/string/String> (param $0 i32) (param $1 i32) (local $2 i32) @@ -12249,6 +12536,11 @@ (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.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -12298,36 +12590,36 @@ end if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $5 return end local.get $3 i32.eqz if i32.const -1 - local.set $2 + local.set $6 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $6 return end local.get $4 i32.eqz if i32.const 1 - local.set $2 + local.set $7 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $7 return end local.get $0 @@ -12335,20 +12627,20 @@ local.get $1 i32.const 0 local.get $3 - local.tee $2 + local.tee $8 local.get $4 - local.tee $5 - local.get $2 - local.get $5 + local.tee $9 + local.get $8 + local.get $9 i32.lt_s select call $~lib/util/string/compareImpl - local.set $2 + local.set $10 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $10 ) (func $std/array/assertSorted<~lib/string/String>@varargs (param $0 i32) (param $1 i32) block $1of1 @@ -12387,6 +12679,16 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) local.get $0 call $~lib/string/String#get:length local.set $3 @@ -12398,67 +12700,67 @@ local.get $5 i32.gt_s select - local.tee $4 + local.tee $6 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $7 + local.get $6 + local.get $7 i32.lt_s select - local.set $6 + local.set $8 local.get $2 - local.tee $4 + local.tee $9 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 + local.tee $10 + local.get $9 + local.get $10 i32.gt_s select - local.tee $4 + local.tee $11 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $12 + local.get $11 + local.get $12 i32.lt_s select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 + local.set $13 + local.get $8 + local.tee $14 + local.get $13 + local.tee $15 + local.get $14 + local.get $15 i32.lt_s select i32.const 1 i32.shl - local.set $8 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 + local.set $16 + local.get $8 + local.tee $17 + local.get $13 + local.tee $18 + local.get $17 + local.get $18 i32.gt_s select i32.const 1 i32.shl - local.set $9 - local.get $9 - local.get $8 + local.set $19 + local.get $19 + local.get $16 i32.sub - local.set $10 - local.get $10 + local.set $20 + local.get $20 i32.eqz if i32.const 5056 call $~lib/rt/pure/__retain return end - local.get $8 + local.get $16 i32.eqz if (result i32) - local.get $9 + local.get $19 local.get $3 i32.const 1 i32.shl @@ -12471,17 +12773,17 @@ call $~lib/rt/pure/__retain return end - local.get $10 + local.get $20 i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $11 - local.get $11 + local.set $21 + local.get $21 local.get $0 - local.get $8 + local.get $16 i32.add - local.get $10 + local.get $20 call $~lib/memory/memory.copy - local.get $11 + local.get $21 call $~lib/rt/pure/__retain ) (func $~lib/util/string/joinBooleanArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -12495,6 +12797,11 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -12522,91 +12829,91 @@ i32.load8_u select call $~lib/rt/pure/__retain - local.set $4 + local.set $5 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $5 return end local.get $2 call $~lib/string/String#get:length - local.set $5 - i32.const 5 local.set $6 + i32.const 5 + local.set $7 + local.get $7 local.get $6 - local.get $5 i32.add local.get $3 i32.mul - local.get $6 - i32.add - local.set $7 local.get $7 + i32.add + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $14 loop $for-loop|1 - local.get $4 + local.get $14 local.get $3 i32.lt_s - local.set $12 - local.get $12 + local.set $15 + local.get $15 if local.get $0 - local.get $4 + local.get $14 i32.add i32.load8_u - local.set $10 + local.set $11 i32.const 4 - local.get $10 + local.get $11 i32.eqz i32.add - local.set $6 - local.get $8 + local.set $7 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add i32.const 5232 i32.const 5264 - local.get $10 + local.get $11 select - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 - local.get $5 + local.set $10 + local.get $6 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $5 + local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $5 + local.get $10 + local.get $6 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $14 i32.const 1 i32.add - local.set $4 + local.set $14 br $for-loop|1 end end @@ -12614,50 +12921,50 @@ local.get $3 i32.add i32.load8_u - local.set $10 + local.set $11 i32.const 4 - local.get $10 + local.get $11 i32.eqz i32.add - local.set $6 - local.get $8 + local.set $7 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add i32.const 5232 i32.const 5264 - local.get $10 + local.get $11 select - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 - i32.add - local.set $9 + local.get $10 local.get $7 - local.get $9 + i32.add + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $16 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $16 return end - local.get $8 - local.set $4 + local.get $9 + local.set $17 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $17 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -12749,6 +13056,9 @@ (local $9 i64) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) loop $while-continue|0 local.get $1 i32.const 10000 @@ -12813,30 +13123,30 @@ local.get $1 i32.const 100 i32.div_u - local.set $3 + local.set $10 local.get $1 i32.const 100 i32.rem_u - local.set $10 - local.get $3 + local.set $11 + local.get $10 local.set $1 local.get $2 i32.const 2 i32.sub local.set $2 i32.const 5412 - local.get $10 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $12 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $12 i32.store end local.get $1 @@ -12853,13 +13163,13 @@ i32.shl i32.add i32.load - local.set $11 + local.set $13 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $13 i32.store else local.get $2 @@ -12869,13 +13179,13 @@ i32.const 48 local.get $1 i32.add - local.set $11 + local.set $14 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $14 i32.store16 end ) @@ -13045,6 +13355,11 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -13069,77 +13384,77 @@ local.get $0 i32.load call $~lib/util/number/itoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 11 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 11 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 2 i32.shl i32.add i32.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -13149,35 +13464,35 @@ i32.shl i32.add i32.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13328,6 +13643,11 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -13352,77 +13672,77 @@ local.get $0 i32.load call $~lib/util/number/itoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 10 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 10 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 2 i32.shl i32.add i32.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -13432,35 +13752,35 @@ i32.shl i32.add i32.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13502,16 +13822,31 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (local $19 i64) + (local $19 i32) (local $20 i64) (local $21 i64) (local $22 i64) (local $23 i64) - (local $24 i32) + (local $24 i64) (local $25 i32) (local $26 i32) (local $27 i32) - (local $28 i64) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i64) + (local $33 i32) + (local $34 i64) + (local $35 i64) + (local $36 i64) + (local $37 i64) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) i32.const 0 local.get $4 i32.sub @@ -13715,11 +14050,11 @@ if local.get $0 local.get $15 - local.tee $18 + local.tee $19 i32.const 1 i32.add local.set $15 - local.get $18 + local.get $19 i32.const 1 i32.shl i32.add @@ -13741,8 +14076,8 @@ i64.shl local.get $13 i64.add - local.set $19 - local.get $19 + local.set $20 + local.get $20 local.get $5 i64.le_u if @@ -13751,13 +14086,13 @@ i32.add global.set $~lib/util/number/_K local.get $0 - local.set $24 + local.set $26 local.get $15 - local.set $18 + local.set $25 local.get $5 + local.set $24 + local.get $20 local.set $23 - local.get $19 - local.set $22 i32.const 7160 local.get $14 i32.const 2 @@ -13767,71 +14102,71 @@ local.get $7 i64.extend_i32_s i64.shl - local.set $21 + local.set $22 local.get $10 - local.set $20 - local.get $24 - local.get $18 + local.set $21 + local.get $26 + local.get $25 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $25 - local.get $25 + local.set $27 + local.get $27 i32.load16_u - local.set $26 + local.set $28 loop $while-continue|3 - local.get $22 - local.get $20 + local.get $23 + local.get $21 i64.lt_u if (result i32) + local.get $24 local.get $23 - local.get $22 i64.sub - local.get $21 + local.get $22 i64.ge_u else i32.const 0 end if (result i32) + local.get $23 local.get $22 - local.get $21 i64.add - local.get $20 + local.get $21 i64.lt_u if (result i32) i32.const 1 else - local.get $20 - local.get $22 + local.get $21 + local.get $23 i64.sub + local.get $23 local.get $22 - local.get $21 i64.add - local.get $20 + local.get $21 i64.sub i64.gt_u end else i32.const 0 end - local.set $27 - local.get $27 + local.set $30 + local.get $30 if - local.get $26 + local.get $28 i32.const 1 i32.sub - local.set $26 + local.set $28 + local.get $23 local.get $22 - local.get $21 i64.add - local.set $22 + local.set $23 br $while-continue|3 end end - local.get $25 - local.get $26 + local.get $27 + local.get $28 i32.store16 local.get $15 return @@ -13841,8 +14176,8 @@ end loop $while-continue|4 i32.const 1 - local.set $16 - local.get $16 + local.set $31 + local.get $31 if local.get $13 i64.const 10 @@ -13856,8 +14191,8 @@ local.get $7 i64.extend_i32_s i64.shr_u - local.set $23 - local.get $23 + local.set $32 + local.get $32 local.get $15 i64.extend_i32_s i64.or @@ -13866,16 +14201,16 @@ if local.get $0 local.get $15 - local.tee $26 + local.tee $33 i32.const 1 i32.add local.set $15 - local.get $26 + local.get $33 i32.const 1 i32.shl i32.add i32.const 48 - local.get $23 + local.get $32 i32.wrap_i64 i32.const 65535 i32.and @@ -13910,79 +14245,79 @@ i64.mul local.set $10 local.get $0 - local.set $18 + local.set $39 local.get $15 - local.set $27 + local.set $38 local.get $5 - local.set $28 + local.set $37 local.get $13 - local.set $22 + local.set $36 local.get $8 - local.set $21 + local.set $35 local.get $10 - local.set $20 - local.get $18 - local.get $27 + local.set $34 + local.get $39 + local.get $38 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $26 - local.get $26 + local.set $40 + local.get $40 i32.load16_u - local.set $25 + local.set $41 loop $while-continue|6 - local.get $22 - local.get $20 + local.get $36 + local.get $34 i64.lt_u if (result i32) - local.get $28 - local.get $22 + local.get $37 + local.get $36 i64.sub - local.get $21 + local.get $35 i64.ge_u else i32.const 0 end if (result i32) - local.get $22 - local.get $21 + local.get $36 + local.get $35 i64.add - local.get $20 + local.get $34 i64.lt_u if (result i32) i32.const 1 else - local.get $20 - local.get $22 + local.get $34 + local.get $36 i64.sub - local.get $22 - local.get $21 + local.get $36 + local.get $35 i64.add - local.get $20 + local.get $34 i64.sub i64.gt_u end else i32.const 0 end - local.set $24 - local.get $24 + local.set $43 + local.get $43 if - local.get $25 + local.get $41 i32.const 1 i32.sub - local.set $25 - local.get $22 - local.get $21 + local.set $41 + local.get $36 + local.get $35 i64.add - local.set $22 + local.set $36 br $while-continue|6 end end - local.get $26 - local.get $25 + local.get $40 + local.get $41 i32.store16 local.get $15 return @@ -14002,6 +14337,19 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) local.get $2 i32.eqz if @@ -14091,11 +14439,11 @@ i32.const 1 i32.shl i32.add - local.set $4 - local.get $4 + local.set $6 + local.get $6 i32.const 2 i32.add - local.get $4 + local.get $6 i32.const 0 local.get $2 i32.sub @@ -14128,9 +14476,9 @@ i32.const 2 local.get $3 i32.sub - local.set $4 + local.set $7 local.get $0 - local.get $4 + local.get $7 i32.const 1 i32.shl i32.add @@ -14147,30 +14495,30 @@ i32.or i32.store i32.const 2 - local.set $5 + local.set $8 loop $for-loop|1 - local.get $5 - local.get $4 + local.get $8 + local.get $7 i32.lt_s - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $0 - local.get $5 + local.get $8 i32.const 1 i32.shl i32.add i32.const 48 i32.store16 - local.get $5 + local.get $8 i32.const 1 i32.add - local.set $5 + local.set $8 br $for-loop|1 end end local.get $1 - local.get $4 + local.get $7 i32.add return else @@ -14184,48 +14532,48 @@ local.get $0 i32.const 4 i32.add - local.set $5 + local.set $11 local.get $3 i32.const 1 i32.sub - local.set $6 - local.get $6 + local.set $10 + local.get $10 i32.const 0 i32.lt_s - local.set $4 - local.get $4 + local.set $12 + local.get $12 if i32.const 0 - local.get $6 + local.get $10 i32.sub - local.set $6 + local.set $10 end - local.get $6 + local.get $10 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $7 - local.get $5 - local.set $10 - local.get $6 - local.set $9 - local.get $7 - local.set $8 + local.set $13 + local.get $11 + local.set $16 + local.get $10 + local.set $15 + local.get $13 + local.set $14 i32.const 0 i32.const 1 i32.ge_s drop - local.get $10 - local.get $9 - local.get $8 + local.get $16 + local.get $15 + local.get $14 call $~lib/util/number/utoa32_lut - local.get $5 + local.get $11 i32.const 45 i32.const 43 - local.get $4 + local.get $12 select i32.store16 - local.get $7 + local.get $13 local.set $1 local.get $1 i32.const 2 @@ -14235,14 +14583,14 @@ local.get $1 i32.const 1 i32.shl - local.set $7 + local.set $17 local.get $0 i32.const 4 i32.add local.get $0 i32.const 2 i32.add - local.get $7 + local.get $17 i32.const 2 i32.sub call $~lib/memory/memory.copy @@ -14250,58 +14598,58 @@ i32.const 46 i32.store16 offset=2 local.get $0 - local.get $7 + local.get $17 i32.add i32.const 101 i32.store16 offset=2 local.get $1 local.get $0 - local.get $7 + local.get $17 i32.add i32.const 4 i32.add - local.set $9 + local.set $19 local.get $3 i32.const 1 i32.sub - local.set $8 - local.get $8 + local.set $18 + local.get $18 i32.const 0 i32.lt_s - local.set $4 - local.get $4 + local.set $20 + local.get $20 if i32.const 0 - local.get $8 + local.get $18 i32.sub - local.set $8 + local.set $18 end - local.get $8 + local.get $18 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $5 - local.get $9 - local.set $11 - local.get $8 - local.set $6 - local.get $5 - local.set $10 + local.set $21 + local.get $19 + local.set $24 + local.get $18 + local.set $23 + local.get $21 + local.set $22 i32.const 0 i32.const 1 i32.ge_s drop - local.get $11 - local.get $6 - local.get $10 + local.get $24 + local.get $23 + local.get $22 call $~lib/util/number/utoa32_lut - local.get $9 + local.get $19 i32.const 45 i32.const 43 - local.get $4 + local.get $20 select i32.store16 - local.get $5 + local.get $21 i32.add local.set $1 local.get $1 @@ -14332,19 +14680,51 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 f64) - (local $17 i64) - (local $18 i64) - (local $19 i64) - (local $20 i64) + (local $16 i32) + (local $17 f64) + (local $18 i32) + (local $19 i32) + (local $20 i32) (local $21 i64) - (local $22 i64) + (local $22 i32) (local $23 i64) (local $24 i64) (local $25 i64) - (local $26 i32) + (local $26 i64) (local $27 i64) - (local $28 i32) + (local $28 i64) + (local $29 i64) + (local $30 i64) + (local $31 i64) + (local $32 i64) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i64) + (local $37 i64) + (local $38 i64) + (local $39 i64) + (local $40 i64) + (local $41 i64) + (local $42 i64) + (local $43 i64) + (local $44 i64) + (local $45 i64) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i64) + (local $50 i64) + (local $51 i64) + (local $52 i64) + (local $53 i64) + (local $54 i64) + (local $55 i64) + (local $56 i64) + (local $57 i64) + (local $58 i64) + (local $59 i64) + (local $60 i32) local.get $1 f64.const 0 f64.lt @@ -14448,47 +14828,47 @@ local.get $13 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp - local.set $10 + local.set $16 i32.const -61 - local.get $10 + local.get $16 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 f64.mul f64.const 347 f64.add - local.set $16 - local.get $16 + local.set $17 + local.get $17 i32.trunc_f64_s - local.set $15 - local.get $15 - local.get $15 + local.set $18 + local.get $18 + local.get $18 f64.convert_i32_s - local.get $16 + local.get $17 f64.ne i32.add - local.set $15 - local.get $15 + local.set $18 + local.get $18 i32.const 3 i32.shr_s i32.const 1 i32.add - local.set $14 + local.set $19 i32.const 348 - local.get $14 + local.get $19 i32.const 3 i32.shl i32.sub global.set $~lib/util/number/_K i32.const 6288 - local.get $14 + local.get $19 i32.const 3 i32.shl i32.add i64.load global.set $~lib/util/number/_frc_pow i32.const 6984 - local.get $14 + local.get $19 i32.const 1 i32.shl i32.add @@ -14497,249 +14877,249 @@ local.get $9 i64.clz i32.wrap_i64 - local.set $14 + local.set $20 local.get $9 - local.get $14 + local.get $20 i64.extend_i32_s i64.shl local.set $9 local.get $7 - local.get $14 + local.get $20 i32.sub local.set $7 global.get $~lib/util/number/_frc_pow - local.set $12 + local.set $21 global.get $~lib/util/number/_exp_pow - local.set $15 + local.set $22 local.get $9 - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $24 + local.get $21 + local.set $23 + local.get $24 i64.const 4294967295 i64.and - local.set $18 - local.get $11 + local.set $25 + local.get $23 i64.const 4294967295 i64.and - local.set $19 - local.get $17 + local.set $26 + local.get $24 i64.const 32 i64.shr_u - local.set $20 - local.get $11 + local.set $27 + local.get $23 i64.const 32 i64.shr_u - local.set $21 - local.get $18 - local.get $19 + local.set $28 + local.get $25 + local.get $26 i64.mul - local.set $22 - local.get $20 - local.get $19 + local.set $29 + local.get $27 + local.get $26 i64.mul - local.get $22 + local.get $29 i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $18 - local.get $21 + local.set $30 + local.get $25 + local.get $28 i64.mul - local.get $23 + local.get $30 i64.const 4294967295 i64.and i64.add - local.set $24 - local.get $24 + local.set $31 + local.get $31 i64.const 2147483647 i64.add - local.set $24 - local.get $23 + local.set $31 + local.get $30 i64.const 32 i64.shr_u - local.set $23 - local.get $24 + local.set $30 + local.get $31 i64.const 32 i64.shr_u - local.set $24 - local.get $20 - local.get $21 + local.set $31 + local.get $27 + local.get $28 i64.mul - local.get $23 + local.get $30 i64.add - local.get $24 + local.get $31 i64.add - local.set $24 + local.set $32 local.get $7 - local.set $10 - local.get $15 - local.set $13 - local.get $10 - local.get $13 + local.set $34 + local.get $22 + local.set $33 + local.get $34 + local.get $33 i32.add i32.const 64 i32.add - local.set $10 + local.set $35 global.get $~lib/util/number/_frc_plus - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $37 + local.get $21 + local.set $36 + local.get $37 i64.const 4294967295 i64.and - local.set $23 - local.get $11 + local.set $38 + local.get $36 i64.const 4294967295 i64.and - local.set $22 - local.get $17 + local.set $39 + local.get $37 i64.const 32 i64.shr_u - local.set $21 - local.get $11 + local.set $40 + local.get $36 i64.const 32 i64.shr_u - local.set $20 - local.get $23 - local.get $22 + local.set $41 + local.get $38 + local.get $39 i64.mul - local.set $19 - local.get $21 - local.get $22 + local.set $42 + local.get $40 + local.get $39 i64.mul - local.get $19 + local.get $42 i64.const 32 i64.shr_u i64.add - local.set $18 - local.get $23 - local.get $20 + local.set $43 + local.get $38 + local.get $41 i64.mul - local.get $18 + local.get $43 i64.const 4294967295 i64.and i64.add - local.set $25 - local.get $25 + local.set $44 + local.get $44 i64.const 2147483647 i64.add - local.set $25 - local.get $18 + local.set $44 + local.get $43 i64.const 32 i64.shr_u - local.set $18 - local.get $25 + local.set $43 + local.get $44 i64.const 32 i64.shr_u - local.set $25 - local.get $21 - local.get $20 + local.set $44 + local.get $40 + local.get $41 i64.mul - local.get $18 + local.get $43 i64.add - local.get $25 + local.get $44 i64.add i64.const 1 i64.sub - local.set $25 + local.set $45 global.get $~lib/util/number/_exp - local.set $26 - local.get $15 - local.set $13 - local.get $26 - local.get $13 + local.set $47 + local.get $22 + local.set $46 + local.get $47 + local.get $46 i32.add i32.const 64 i32.add - local.set $26 + local.set $48 global.get $~lib/util/number/_frc_minus - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $50 + local.get $21 + local.set $49 + local.get $50 i64.const 4294967295 i64.and - local.set $18 - local.get $11 + local.set $51 + local.get $49 i64.const 4294967295 i64.and - local.set $19 - local.get $17 + local.set $52 + local.get $50 i64.const 32 i64.shr_u - local.set $20 - local.get $11 + local.set $53 + local.get $49 i64.const 32 i64.shr_u - local.set $21 - local.get $18 - local.get $19 + local.set $54 + local.get $51 + local.get $52 i64.mul - local.set $22 - local.get $20 - local.get $19 + local.set $55 + local.get $53 + local.get $52 i64.mul - local.get $22 + local.get $55 i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $18 - local.get $21 + local.set $56 + local.get $51 + local.get $54 i64.mul - local.get $23 + local.get $56 i64.const 4294967295 i64.and i64.add - local.set $27 - local.get $27 + local.set $57 + local.get $57 i64.const 2147483647 i64.add - local.set $27 - local.get $23 + local.set $57 + local.get $56 i64.const 32 i64.shr_u - local.set $23 - local.get $27 + local.set $56 + local.get $57 i64.const 32 i64.shr_u - local.set $27 - local.get $20 - local.get $21 + local.set $57 + local.get $53 + local.get $54 i64.mul - local.get $23 + local.get $56 i64.add - local.get $27 + local.get $57 i64.add i64.const 1 i64.add - local.set $27 - local.get $25 - local.get $27 + local.set $58 + local.get $45 + local.get $58 i64.sub - local.set $23 + local.set $59 local.get $4 - local.get $24 - local.get $10 - local.get $25 - local.get $26 - local.get $23 + local.get $32 + local.get $35 + local.get $45 + local.get $48 + local.get $59 local.get $3 call $~lib/util/number/genDigits - local.set $28 + local.set $60 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $28 + local.get $60 local.get $2 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.set $28 - local.get $28 + local.set $60 + local.get $60 local.get $2 i32.add ) @@ -14890,7 +15270,12 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 f64) + (local $10 i32) + (local $11 f64) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -14915,77 +15300,77 @@ local.get $0 f64.load call $~lib/util/number/dtoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 28 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 28 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 3 i32.shl i32.add f64.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/dtoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -14995,35 +15380,35 @@ i32.shl i32.add f64.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/dtoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -15065,6 +15450,17 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -15088,75 +15484,75 @@ if local.get $0 i32.load - local.tee $4 + local.tee $5 if (result i32) - local.get $4 + local.get $5 call $~lib/rt/pure/__retain else i32.const 5056 end - local.set $4 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $6 return end i32.const 0 - local.set $5 + local.set $7 i32.const 0 - local.set $6 + local.set $8 i32.const 0 - local.set $4 + local.set $9 loop $for-loop|0 - local.get $4 + local.get $9 local.get $1 i32.lt_s - local.set $7 - local.get $7 + local.set $10 + local.get $10 if local.get $0 - local.get $4 + local.get $9 i32.const 2 i32.shl i32.add i32.load - local.tee $8 - local.get $6 - local.tee $9 + local.tee $11 + local.get $8 + local.tee $12 i32.ne if - local.get $8 + local.get $11 call $~lib/rt/pure/__retain - local.set $8 - local.get $9 + local.set $11 + local.get $12 call $~lib/rt/pure/__release end + local.get $11 + local.set $8 local.get $8 - local.set $6 - local.get $6 i32.const 0 i32.ne if - local.get $5 - local.get $6 + local.get $7 + local.get $8 call $~lib/string/String#get:length i32.add - local.set $5 + local.set $7 end - local.get $4 + local.get $9 i32.const 1 i32.add - local.set $4 + local.set $9 br $for-loop|0 end end i32.const 0 - local.set $10 + local.set $13 local.get $2 call $~lib/string/String#get:length - local.set $11 - local.get $5 - local.get $11 + local.set $14 + local.get $7 + local.get $14 local.get $3 i32.mul i32.add @@ -15164,78 +15560,78 @@ i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $12 + local.set $15 i32.const 0 - local.set $4 + local.set $16 loop $for-loop|1 - local.get $4 + local.get $16 local.get $3 i32.lt_s - local.set $7 - local.get $7 + local.set $17 + local.get $17 if local.get $0 - local.get $4 + local.get $16 i32.const 2 i32.shl i32.add i32.load - local.tee $9 - local.get $6 - local.tee $8 + local.tee $18 + local.get $8 + local.tee $19 i32.ne if - local.get $9 + local.get $18 call $~lib/rt/pure/__retain - local.set $9 - local.get $8 + local.set $18 + local.get $19 call $~lib/rt/pure/__release end - local.get $9 - local.set $6 - local.get $6 + local.get $18 + local.set $8 + local.get $8 i32.const 0 i32.ne if - local.get $6 + local.get $8 call $~lib/string/String#get:length - local.set $9 - local.get $12 - local.get $10 + local.set $20 + local.get $15 + local.get $13 i32.const 1 i32.shl i32.add - local.get $6 - local.get $9 + local.get $8 + local.get $20 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $10 - local.get $9 + local.get $13 + local.get $20 i32.add - local.set $10 + local.set $13 end - local.get $11 + local.get $14 if - local.get $12 - local.get $10 + local.get $15 + local.get $13 i32.const 1 i32.shl i32.add local.get $2 - local.get $11 + local.get $14 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $10 - local.get $11 + local.get $13 + local.get $14 i32.add - local.set $10 + local.set $13 end - local.get $4 + local.get $16 i32.const 1 i32.add - local.set $4 + local.set $16 br $for-loop|1 end end @@ -15245,43 +15641,43 @@ i32.shl i32.add i32.load - local.tee $8 - local.get $6 - local.tee $4 + local.tee $21 + local.get $8 + local.tee $22 i32.ne if - local.get $8 + local.get $21 call $~lib/rt/pure/__retain - local.set $8 - local.get $4 + local.set $21 + local.get $22 call $~lib/rt/pure/__release end + local.get $21 + local.set $8 local.get $8 - local.set $6 - local.get $6 i32.const 0 i32.ne if - local.get $12 - local.get $10 + local.get $15 + local.get $13 i32.const 1 i32.shl i32.add - local.get $6 - local.get $6 + local.get $8 + local.get $8 call $~lib/string/String#get:length i32.const 1 i32.shl call $~lib/memory/memory.copy end - local.get $12 + local.get $15 call $~lib/rt/pure/__retain - local.set $8 + local.set $23 local.get $2 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release local.get $8 + call $~lib/rt/pure/__release + local.get $23 ) (func $~lib/array/Array<~lib/string/String | null>#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -15332,6 +15728,22 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -15357,18 +15769,18 @@ if local.get $0 i32.load - local.tee $4 - local.get $5 local.tee $6 + local.get $5 + local.tee $7 i32.ne if - local.get $4 - call $~lib/rt/pure/__retain - local.set $4 local.get $6 + call $~lib/rt/pure/__retain + local.set $6 + local.get $7 call $~lib/rt/pure/__release end - local.get $4 + local.get $6 local.set $5 local.get $5 i32.const 0 @@ -15379,101 +15791,101 @@ else i32.const 5056 end - local.set $4 + local.set $8 local.get $2 call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $4 + local.get $8 return end i32.const 5056 - local.set $7 + local.set $9 local.get $2 call $~lib/string/String#get:length - local.set $8 + local.set $10 i32.const 0 - local.set $4 + local.set $11 loop $for-loop|0 - local.get $4 + local.get $11 local.get $3 i32.lt_s - local.set $6 - local.get $6 + local.set $12 + local.get $12 if local.get $0 - local.get $4 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.tee $9 + local.tee $13 local.get $5 - local.tee $10 + local.tee $14 i32.ne if - local.get $9 + local.get $13 call $~lib/rt/pure/__retain - local.set $9 - local.get $10 + local.set $13 + local.get $14 call $~lib/rt/pure/__release end - local.get $9 + local.get $13 local.set $5 local.get $5 i32.const 0 i32.ne if - local.get $7 + local.get $9 local.get $5 call $std/array/Ref#toString - local.tee $9 + local.tee $15 call $~lib/string/String.__concat - local.tee $10 - local.tee $11 - local.get $7 - local.tee $12 + local.tee $16 + local.tee $17 + local.get $9 + local.tee $18 i32.ne if - local.get $11 + local.get $17 call $~lib/rt/pure/__retain - local.set $11 - local.get $12 + local.set $17 + local.get $18 call $~lib/rt/pure/__release end - local.get $11 - local.set $7 - local.get $9 + local.get $17 + local.set $9 + local.get $15 call $~lib/rt/pure/__release - local.get $10 + local.get $16 call $~lib/rt/pure/__release end - local.get $8 + local.get $10 if - local.get $7 + local.get $9 local.get $2 call $~lib/string/String.__concat - local.tee $10 - local.tee $12 - local.get $7 - local.tee $9 + local.tee $19 + local.tee $20 + local.get $9 + local.tee $21 i32.ne if - local.get $12 + local.get $20 call $~lib/rt/pure/__retain - local.set $12 - local.get $9 + local.set $20 + local.get $21 call $~lib/rt/pure/__release end - local.get $12 - local.set $7 - local.get $10 + local.get $20 + local.set $9 + local.get $19 call $~lib/rt/pure/__release end - local.get $4 + local.get $11 i32.const 1 i32.add - local.set $4 + local.set $11 br $for-loop|0 end end @@ -15483,54 +15895,54 @@ i32.shl i32.add i32.load - local.tee $11 + local.tee $22 local.get $5 - local.tee $4 + local.tee $23 i32.ne if - local.get $11 + local.get $22 call $~lib/rt/pure/__retain - local.set $11 - local.get $4 + local.set $22 + local.get $23 call $~lib/rt/pure/__release end - local.get $11 + local.get $22 local.set $5 local.get $5 i32.const 0 i32.ne if - local.get $7 + local.get $9 local.get $5 call $std/array/Ref#toString - local.tee $11 + local.tee $24 call $~lib/string/String.__concat - local.tee $4 - local.tee $9 - local.get $7 - local.tee $6 + local.tee $25 + local.tee $26 + local.get $9 + local.tee $27 i32.ne if - local.get $9 + local.get $26 call $~lib/rt/pure/__retain - local.set $9 - local.get $6 + local.set $26 + local.get $27 call $~lib/rt/pure/__release end - local.get $9 - local.set $7 - local.get $11 + local.get $26 + local.set $9 + local.get $24 call $~lib/rt/pure/__release - local.get $4 + local.get $25 call $~lib/rt/pure/__release end - local.get $7 - local.set $4 + local.get $9 + local.set $28 local.get $2 call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $4 + local.get $28 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -15580,6 +15992,22 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -15605,18 +16033,18 @@ if local.get $0 i32.load - local.tee $4 - local.get $5 local.tee $6 + local.get $5 + local.tee $7 i32.ne if - local.get $4 - call $~lib/rt/pure/__retain - local.set $4 local.get $6 + call $~lib/rt/pure/__retain + local.set $6 + local.get $7 call $~lib/rt/pure/__release end - local.get $4 + local.get $6 local.set $5 local.get $5 i32.const 0 @@ -15627,101 +16055,101 @@ else i32.const 5056 end - local.set $4 + local.set $8 local.get $2 call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $4 + local.get $8 return end i32.const 5056 - local.set $7 + local.set $9 local.get $2 call $~lib/string/String#get:length - local.set $8 + local.set $10 i32.const 0 - local.set $4 + local.set $11 loop $for-loop|0 - local.get $4 + local.get $11 local.get $3 i32.lt_s - local.set $6 - local.get $6 + local.set $12 + local.get $12 if local.get $0 - local.get $4 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.tee $9 + local.tee $13 local.get $5 - local.tee $10 + local.tee $14 i32.ne if - local.get $9 + local.get $13 call $~lib/rt/pure/__retain - local.set $9 - local.get $10 + local.set $13 + local.get $14 call $~lib/rt/pure/__release end - local.get $9 + local.get $13 local.set $5 local.get $5 i32.const 0 i32.ne if - local.get $7 + local.get $9 local.get $5 call $std/array/Ref#toString - local.tee $9 + local.tee $15 call $~lib/string/String.__concat - local.tee $10 - local.tee $11 - local.get $7 - local.tee $12 + local.tee $16 + local.tee $17 + local.get $9 + local.tee $18 i32.ne if - local.get $11 + local.get $17 call $~lib/rt/pure/__retain - local.set $11 - local.get $12 + local.set $17 + local.get $18 call $~lib/rt/pure/__release end - local.get $11 - local.set $7 - local.get $9 + local.get $17 + local.set $9 + local.get $15 call $~lib/rt/pure/__release - local.get $10 + local.get $16 call $~lib/rt/pure/__release end - local.get $8 + local.get $10 if - local.get $7 + local.get $9 local.get $2 call $~lib/string/String.__concat - local.tee $10 - local.tee $12 - local.get $7 - local.tee $9 + local.tee $19 + local.tee $20 + local.get $9 + local.tee $21 i32.ne if - local.get $12 + local.get $20 call $~lib/rt/pure/__retain - local.set $12 - local.get $9 + local.set $20 + local.get $21 call $~lib/rt/pure/__release end - local.get $12 - local.set $7 - local.get $10 + local.get $20 + local.set $9 + local.get $19 call $~lib/rt/pure/__release end - local.get $4 + local.get $11 i32.const 1 i32.add - local.set $4 + local.set $11 br $for-loop|0 end end @@ -15731,54 +16159,54 @@ i32.shl i32.add i32.load - local.tee $11 + local.tee $22 local.get $5 - local.tee $4 + local.tee $23 i32.ne if - local.get $11 + local.get $22 call $~lib/rt/pure/__retain - local.set $11 - local.get $4 + local.set $22 + local.get $23 call $~lib/rt/pure/__release end - local.get $11 + local.get $22 local.set $5 local.get $5 i32.const 0 i32.ne if - local.get $7 + local.get $9 local.get $5 call $std/array/Ref#toString - local.tee $11 + local.tee $24 call $~lib/string/String.__concat - local.tee $4 - local.tee $9 - local.get $7 - local.tee $6 + local.tee $25 + local.tee $26 + local.get $9 + local.tee $27 i32.ne if - local.get $9 + local.get $26 call $~lib/rt/pure/__retain - local.set $9 - local.get $6 + local.set $26 + local.get $27 call $~lib/rt/pure/__release end - local.get $9 - local.set $7 - local.get $11 + local.get $26 + local.set $9 + local.get $24 call $~lib/rt/pure/__release - local.get $4 + local.get $25 call $~lib/rt/pure/__release end - local.get $7 - local.set $4 + local.get $9 + local.set $28 local.get $2 call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $4 + local.get $28 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -15954,6 +16382,11 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -15978,77 +16411,77 @@ local.get $0 i32.load8_s call $~lib/util/number/itoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 11 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 11 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 0 i32.shl i32.add i32.load8_s - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -16058,35 +16491,35 @@ i32.shl i32.add i32.load8_s - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -16214,6 +16647,11 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -16238,77 +16676,77 @@ local.get $0 i32.load16_u call $~lib/util/number/itoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 10 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 10 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 1 i32.shl i32.add - i32.load16_u - local.set $10 - local.get $9 - local.get $8 + i32.load16_u + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -16318,35 +16756,35 @@ i32.shl i32.add i32.load16_u - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -16569,7 +17007,10 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i64) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) local.get $0 i64.const 0 i64.ne @@ -16612,26 +17053,26 @@ else local.get $0 call $~lib/util/number/decimalCount64High - local.set $3 - local.get $3 + local.set $7 + local.get $7 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc local.set $1 local.get $1 - local.set $5 + local.set $10 local.get $0 - local.set $7 - local.get $3 - local.set $4 + local.set $9 + local.get $7 + local.set $8 i32.const 0 i32.const 1 i32.ge_s drop - local.get $5 - local.get $7 - local.get $4 + local.get $10 + local.get $9 + local.get $8 call $~lib/util/number/utoa64_lut end local.get $1 @@ -16658,7 +17099,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) + (local $10 i64) + (local $11 i32) local.get $0 local.get $1 i32.const 1 @@ -16727,18 +17170,18 @@ i32.add local.set $4 local.get $0 - local.set $7 + local.set $11 local.get $2 - local.set $9 + local.set $10 local.get $4 - local.set $6 + local.set $9 i32.const 0 i32.const 1 i32.ge_s drop - local.get $7 + local.get $11 + local.get $10 local.get $9 - local.get $6 call $~lib/util/number/utoa64_lut end local.get $4 @@ -16751,7 +17194,12 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i64) + (local $10 i32) + (local $11 i64) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -16776,77 +17224,77 @@ local.get $0 i64.load call $~lib/util/number/itoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 20 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 20 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 3 i32.shl i32.add i64.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -16856,35 +17304,35 @@ i32.shl i32.add i64.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -16926,7 +17374,10 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i64) + (local $8 i32) + (local $9 i32) + (local $10 i64) + (local $11 i32) local.get $0 i64.const 0 i64.ne @@ -16985,26 +17436,26 @@ call $~lib/util/number/decimalCount64High local.get $1 i32.add - local.set $4 - local.get $4 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc local.set $2 local.get $2 - local.set $6 + local.set $11 local.get $0 - local.set $8 - local.get $4 - local.set $5 + local.set $10 + local.get $8 + local.set $9 i32.const 0 i32.const 1 i32.ge_s drop - local.get $6 - local.get $8 - local.get $5 + local.get $11 + local.get $10 + local.get $9 call $~lib/util/number/utoa64_lut end local.get $1 @@ -17037,7 +17488,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) + (local $10 i64) + (local $11 i32) local.get $0 local.get $1 i32.const 1 @@ -17130,18 +17583,18 @@ i32.add local.set $4 local.get $0 - local.set $7 + local.set $11 local.get $2 - local.set $9 + local.set $10 local.get $4 - local.set $6 + local.set $9 i32.const 0 i32.const 1 i32.ge_s drop - local.get $7 + local.get $11 + local.get $10 local.get $9 - local.get $6 call $~lib/util/number/utoa64_lut end local.get $4 @@ -17154,7 +17607,12 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i64) + (local $10 i32) + (local $11 i64) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -17179,77 +17637,77 @@ local.get $0 i64.load call $~lib/util/number/itoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 21 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 21 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 3 i32.shl i32.add i64.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -17259,35 +17717,35 @@ i32.shl i32.add i64.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -17337,6 +17795,22 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -17362,18 +17836,18 @@ if local.get $0 i32.load - local.tee $4 - local.get $5 local.tee $6 + local.get $5 + local.tee $7 i32.ne if - local.get $4 - call $~lib/rt/pure/__retain - local.set $4 local.get $6 + call $~lib/rt/pure/__retain + local.set $6 + local.get $7 call $~lib/rt/pure/__release end - local.get $4 + local.get $6 local.set $5 local.get $5 i32.const 0 @@ -17384,101 +17858,101 @@ else i32.const 5056 end - local.set $4 + local.set $8 local.get $2 call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $4 + local.get $8 return end i32.const 5056 - local.set $7 + local.set $9 local.get $2 call $~lib/string/String#get:length - local.set $8 + local.set $10 i32.const 0 - local.set $4 + local.set $11 loop $for-loop|0 - local.get $4 + local.get $11 local.get $3 i32.lt_s - local.set $6 - local.get $6 + local.set $12 + local.get $12 if local.get $0 - local.get $4 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.tee $9 + local.tee $13 local.get $5 - local.tee $10 + local.tee $14 i32.ne if - local.get $9 + local.get $13 call $~lib/rt/pure/__retain - local.set $9 - local.get $10 + local.set $13 + local.get $14 call $~lib/rt/pure/__release end - local.get $9 + local.get $13 local.set $5 local.get $5 i32.const 0 i32.ne if - local.get $7 + local.get $9 local.get $5 call $~lib/array/Array#toString - local.tee $9 + local.tee $15 call $~lib/string/String.__concat - local.tee $10 - local.tee $11 - local.get $7 - local.tee $12 + local.tee $16 + local.tee $17 + local.get $9 + local.tee $18 i32.ne if - local.get $11 + local.get $17 call $~lib/rt/pure/__retain - local.set $11 - local.get $12 + local.set $17 + local.get $18 call $~lib/rt/pure/__release end - local.get $11 - local.set $7 - local.get $9 + local.get $17 + local.set $9 + local.get $15 call $~lib/rt/pure/__release - local.get $10 + local.get $16 call $~lib/rt/pure/__release end - local.get $8 + local.get $10 if - local.get $7 + local.get $9 local.get $2 call $~lib/string/String.__concat - local.tee $10 - local.tee $12 - local.get $7 - local.tee $9 + local.tee $19 + local.tee $20 + local.get $9 + local.tee $21 i32.ne if - local.get $12 + local.get $20 call $~lib/rt/pure/__retain - local.set $12 - local.get $9 + local.set $20 + local.get $21 call $~lib/rt/pure/__release end - local.get $12 - local.set $7 - local.get $10 + local.get $20 + local.set $9 + local.get $19 call $~lib/rt/pure/__release end - local.get $4 + local.get $11 i32.const 1 i32.add - local.set $4 + local.set $11 br $for-loop|0 end end @@ -17488,54 +17962,54 @@ i32.shl i32.add i32.load - local.tee $11 + local.tee $22 local.get $5 - local.tee $4 + local.tee $23 i32.ne if - local.get $11 + local.get $22 call $~lib/rt/pure/__retain - local.set $11 - local.get $4 + local.set $22 + local.get $23 call $~lib/rt/pure/__release end - local.get $11 + local.get $22 local.set $5 local.get $5 i32.const 0 i32.ne if - local.get $7 + local.get $9 local.get $5 call $~lib/array/Array#toString - local.tee $11 + local.tee $24 call $~lib/string/String.__concat - local.tee $4 - local.tee $9 - local.get $7 - local.tee $6 + local.tee $25 + local.tee $26 + local.get $9 + local.tee $27 i32.ne if - local.get $9 + local.get $26 call $~lib/rt/pure/__retain - local.set $9 - local.get $6 + local.set $26 + local.get $27 call $~lib/rt/pure/__release end - local.get $9 - local.set $7 - local.get $11 + local.get $26 + local.set $9 + local.get $24 call $~lib/rt/pure/__release - local.get $4 + local.get $25 call $~lib/rt/pure/__release end - local.get $7 - local.set $4 + local.get $9 + local.set $28 local.get $2 call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $4 + local.get $28 ) (func $~lib/array/Array<~lib/array/Array>#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -17673,6 +18147,11 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -17697,77 +18176,77 @@ local.get $0 i32.load8_u call $~lib/util/number/itoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 10 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 10 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 0 i32.shl i32.add i32.load8_u - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -17777,35 +18256,35 @@ i32.shl i32.add i32.load8_u - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -17850,6 +18329,22 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -17875,18 +18370,18 @@ if local.get $0 i32.load - local.tee $4 - local.get $5 local.tee $6 + local.get $5 + local.tee $7 i32.ne if - local.get $4 - call $~lib/rt/pure/__retain - local.set $4 local.get $6 + call $~lib/rt/pure/__retain + local.set $6 + local.get $7 call $~lib/rt/pure/__release end - local.get $4 + local.get $6 local.set $5 local.get $5 i32.const 0 @@ -17897,101 +18392,101 @@ else i32.const 5056 end - local.set $4 + local.set $8 local.get $2 call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $4 + local.get $8 return end i32.const 5056 - local.set $7 + local.set $9 local.get $2 call $~lib/string/String#get:length - local.set $8 + local.set $10 i32.const 0 - local.set $4 + local.set $11 loop $for-loop|0 - local.get $4 + local.get $11 local.get $3 i32.lt_s - local.set $6 - local.get $6 + local.set $12 + local.get $12 if local.get $0 - local.get $4 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.tee $9 + local.tee $13 local.get $5 - local.tee $10 + local.tee $14 i32.ne if - local.get $9 + local.get $13 call $~lib/rt/pure/__retain - local.set $9 - local.get $10 + local.set $13 + local.get $14 call $~lib/rt/pure/__release end - local.get $9 + local.get $13 local.set $5 local.get $5 i32.const 0 i32.ne if - local.get $7 + local.get $9 local.get $5 call $~lib/array/Array#toString - local.tee $9 + local.tee $15 call $~lib/string/String.__concat - local.tee $10 - local.tee $11 - local.get $7 - local.tee $12 + local.tee $16 + local.tee $17 + local.get $9 + local.tee $18 i32.ne if - local.get $11 + local.get $17 call $~lib/rt/pure/__retain - local.set $11 - local.get $12 + local.set $17 + local.get $18 call $~lib/rt/pure/__release end - local.get $11 - local.set $7 - local.get $9 + local.get $17 + local.set $9 + local.get $15 call $~lib/rt/pure/__release - local.get $10 + local.get $16 call $~lib/rt/pure/__release end - local.get $8 + local.get $10 if - local.get $7 + local.get $9 local.get $2 call $~lib/string/String.__concat - local.tee $10 - local.tee $12 - local.get $7 - local.tee $9 + local.tee $19 + local.tee $20 + local.get $9 + local.tee $21 i32.ne if - local.get $12 + local.get $20 call $~lib/rt/pure/__retain - local.set $12 - local.get $9 + local.set $20 + local.get $21 call $~lib/rt/pure/__release end - local.get $12 - local.set $7 - local.get $10 + local.get $20 + local.set $9 + local.get $19 call $~lib/rt/pure/__release end - local.get $4 + local.get $11 i32.const 1 i32.add - local.set $4 + local.set $11 br $for-loop|0 end end @@ -18001,54 +18496,54 @@ i32.shl i32.add i32.load - local.tee $11 + local.tee $22 local.get $5 - local.tee $4 + local.tee $23 i32.ne if - local.get $11 + local.get $22 call $~lib/rt/pure/__retain - local.set $11 - local.get $4 + local.set $22 + local.get $23 call $~lib/rt/pure/__release end - local.get $11 + local.get $22 local.set $5 local.get $5 i32.const 0 i32.ne if - local.get $7 + local.get $9 local.get $5 call $~lib/array/Array#toString - local.tee $11 + local.tee $24 call $~lib/string/String.__concat - local.tee $4 - local.tee $9 - local.get $7 - local.tee $6 + local.tee $25 + local.tee $26 + local.get $9 + local.tee $27 i32.ne if - local.get $9 + local.get $26 call $~lib/rt/pure/__retain - local.set $9 - local.get $6 + local.set $26 + local.get $27 call $~lib/rt/pure/__release end - local.get $9 - local.set $7 - local.get $11 + local.get $26 + local.set $9 + local.get $24 call $~lib/rt/pure/__release - local.get $4 + local.get $25 call $~lib/rt/pure/__release end - local.get $7 - local.set $4 + local.get $9 + local.set $28 local.get $2 call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $4 + local.get $28 ) (func $~lib/array/Array<~lib/array/Array>#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -18108,6 +18603,22 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -18133,18 +18644,18 @@ if local.get $0 i32.load - local.tee $4 - local.get $5 local.tee $6 + local.get $5 + local.tee $7 i32.ne if - local.get $4 - call $~lib/rt/pure/__retain - local.set $4 local.get $6 + call $~lib/rt/pure/__retain + local.set $6 + local.get $7 call $~lib/rt/pure/__release end - local.get $4 + local.get $6 local.set $5 local.get $5 i32.const 0 @@ -18155,101 +18666,101 @@ else i32.const 5056 end - local.set $4 + local.set $8 local.get $2 call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $4 + local.get $8 return end i32.const 5056 - local.set $7 + local.set $9 local.get $2 call $~lib/string/String#get:length - local.set $8 + local.set $10 i32.const 0 - local.set $4 + local.set $11 loop $for-loop|0 - local.get $4 + local.get $11 local.get $3 i32.lt_s - local.set $6 - local.get $6 + local.set $12 + local.get $12 if local.get $0 - local.get $4 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.tee $9 + local.tee $13 local.get $5 - local.tee $10 + local.tee $14 i32.ne if - local.get $9 + local.get $13 call $~lib/rt/pure/__retain - local.set $9 - local.get $10 + local.set $13 + local.get $14 call $~lib/rt/pure/__release end - local.get $9 + local.get $13 local.set $5 local.get $5 i32.const 0 i32.ne if - local.get $7 + local.get $9 local.get $5 call $~lib/array/Array#toString - local.tee $9 + local.tee $15 call $~lib/string/String.__concat - local.tee $10 - local.tee $11 - local.get $7 - local.tee $12 + local.tee $16 + local.tee $17 + local.get $9 + local.tee $18 i32.ne if - local.get $11 + local.get $17 call $~lib/rt/pure/__retain - local.set $11 - local.get $12 + local.set $17 + local.get $18 call $~lib/rt/pure/__release end - local.get $11 - local.set $7 - local.get $9 + local.get $17 + local.set $9 + local.get $15 call $~lib/rt/pure/__release - local.get $10 + local.get $16 call $~lib/rt/pure/__release end - local.get $8 + local.get $10 if - local.get $7 + local.get $9 local.get $2 call $~lib/string/String.__concat - local.tee $10 - local.tee $12 - local.get $7 - local.tee $9 + local.tee $19 + local.tee $20 + local.get $9 + local.tee $21 i32.ne if - local.get $12 + local.get $20 call $~lib/rt/pure/__retain - local.set $12 - local.get $9 + local.set $20 + local.get $21 call $~lib/rt/pure/__release end - local.get $12 - local.set $7 - local.get $10 + local.get $20 + local.set $9 + local.get $19 call $~lib/rt/pure/__release end - local.get $4 + local.get $11 i32.const 1 i32.add - local.set $4 + local.set $11 br $for-loop|0 end end @@ -18259,54 +18770,54 @@ i32.shl i32.add i32.load - local.tee $11 + local.tee $22 local.get $5 - local.tee $4 + local.tee $23 i32.ne if - local.get $11 + local.get $22 call $~lib/rt/pure/__retain - local.set $11 - local.get $4 + local.set $22 + local.get $23 call $~lib/rt/pure/__release end - local.get $11 + local.get $22 local.set $5 local.get $5 i32.const 0 i32.ne if - local.get $7 + local.get $9 local.get $5 call $~lib/array/Array#toString - local.tee $11 + local.tee $24 call $~lib/string/String.__concat - local.tee $4 - local.tee $9 - local.get $7 - local.tee $6 + local.tee $25 + local.tee $26 + local.get $9 + local.tee $27 i32.ne if - local.get $9 + local.get $26 call $~lib/rt/pure/__retain - local.set $9 - local.get $6 + local.set $26 + local.get $27 call $~lib/rt/pure/__release end - local.get $9 - local.set $7 - local.get $11 + local.get $26 + local.set $9 + local.get $24 call $~lib/rt/pure/__release - local.get $4 + local.get $25 call $~lib/rt/pure/__release end - local.get $7 - local.set $4 + local.get $9 + local.set $28 local.get $2 call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $4 + local.get $28 ) (func $~lib/array/Array<~lib/array/Array>#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -18361,6 +18872,22 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -18386,18 +18913,18 @@ if local.get $0 i32.load - local.tee $4 - local.get $5 local.tee $6 + local.get $5 + local.tee $7 i32.ne - if - local.get $4 - call $~lib/rt/pure/__retain - local.set $4 + if local.get $6 + call $~lib/rt/pure/__retain + local.set $6 + local.get $7 call $~lib/rt/pure/__release end - local.get $4 + local.get $6 local.set $5 local.get $5 i32.const 0 @@ -18408,101 +18935,101 @@ else i32.const 5056 end - local.set $4 + local.set $8 local.get $2 call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $4 + local.get $8 return end i32.const 5056 - local.set $7 + local.set $9 local.get $2 call $~lib/string/String#get:length - local.set $8 + local.set $10 i32.const 0 - local.set $4 + local.set $11 loop $for-loop|0 - local.get $4 + local.get $11 local.get $3 i32.lt_s - local.set $6 - local.get $6 + local.set $12 + local.get $12 if local.get $0 - local.get $4 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.tee $9 + local.tee $13 local.get $5 - local.tee $10 + local.tee $14 i32.ne if - local.get $9 + local.get $13 call $~lib/rt/pure/__retain - local.set $9 - local.get $10 + local.set $13 + local.get $14 call $~lib/rt/pure/__release end - local.get $9 + local.get $13 local.set $5 local.get $5 i32.const 0 i32.ne if - local.get $7 + local.get $9 local.get $5 call $~lib/array/Array<~lib/array/Array>#toString - local.tee $9 + local.tee $15 call $~lib/string/String.__concat - local.tee $10 - local.tee $11 - local.get $7 - local.tee $12 + local.tee $16 + local.tee $17 + local.get $9 + local.tee $18 i32.ne if - local.get $11 + local.get $17 call $~lib/rt/pure/__retain - local.set $11 - local.get $12 + local.set $17 + local.get $18 call $~lib/rt/pure/__release end - local.get $11 - local.set $7 - local.get $9 + local.get $17 + local.set $9 + local.get $15 call $~lib/rt/pure/__release - local.get $10 + local.get $16 call $~lib/rt/pure/__release end - local.get $8 + local.get $10 if - local.get $7 + local.get $9 local.get $2 call $~lib/string/String.__concat - local.tee $10 - local.tee $12 - local.get $7 - local.tee $9 + local.tee $19 + local.tee $20 + local.get $9 + local.tee $21 i32.ne if - local.get $12 + local.get $20 call $~lib/rt/pure/__retain - local.set $12 - local.get $9 + local.set $20 + local.get $21 call $~lib/rt/pure/__release end - local.get $12 - local.set $7 - local.get $10 + local.get $20 + local.set $9 + local.get $19 call $~lib/rt/pure/__release end - local.get $4 + local.get $11 i32.const 1 i32.add - local.set $4 + local.set $11 br $for-loop|0 end end @@ -18512,54 +19039,54 @@ i32.shl i32.add i32.load - local.tee $11 + local.tee $22 local.get $5 - local.tee $4 + local.tee $23 i32.ne if - local.get $11 + local.get $22 call $~lib/rt/pure/__retain - local.set $11 - local.get $4 + local.set $22 + local.get $23 call $~lib/rt/pure/__release end - local.get $11 + local.get $22 local.set $5 local.get $5 i32.const 0 i32.ne if - local.get $7 + local.get $9 local.get $5 call $~lib/array/Array<~lib/array/Array>#toString - local.tee $11 + local.tee $24 call $~lib/string/String.__concat - local.tee $4 - local.tee $9 - local.get $7 - local.tee $6 + local.tee $25 + local.tee $26 + local.get $9 + local.tee $27 i32.ne if - local.get $9 + local.get $26 call $~lib/rt/pure/__retain - local.set $9 - local.get $6 + local.set $26 + local.get $27 call $~lib/rt/pure/__release end - local.get $9 - local.set $7 - local.get $11 + local.get $26 + local.set $9 + local.get $24 call $~lib/rt/pure/__release - local.get $4 + local.get $25 call $~lib/rt/pure/__release end - local.get $7 - local.set $4 + local.get $9 + local.set $28 local.get $2 call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $4 + local.get $28 ) (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -18615,6 +19142,9 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) i32.const 1 i32.eqz drop @@ -18689,47 +19219,47 @@ i32.const 0 local.set $10 i32.const 0 - local.set $4 + local.set $11 loop $for-loop|1 - local.get $4 + local.get $11 local.get $1 i32.lt_s - local.set $5 - local.get $5 + local.set $12 + local.get $12 if block $for-continue|1 local.get $2 - local.get $4 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.set $6 - local.get $6 + local.set $13 + local.get $13 i32.const 0 i32.eq if br $for-continue|1 end - local.get $6 + local.get $13 i32.load offset=8 - local.set $11 + local.set $14 local.get $8 local.get $10 i32.add - local.get $6 + local.get $13 i32.load offset=4 - local.get $11 + local.get $14 call $~lib/memory/memory.copy local.get $10 - local.get $11 + local.get $14 i32.add local.set $10 end - local.get $4 + local.get $11 i32.const 1 i32.add - local.set $4 + local.set $11 br $for-loop|1 end end @@ -18750,6 +19280,11 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) i32.const 1 i32.eqz drop @@ -18824,73 +19359,73 @@ i32.const 0 local.set $10 i32.const 0 - local.set $4 + local.set $11 loop $for-loop|1 - local.get $4 + local.get $11 local.get $1 i32.lt_s - local.set $5 - local.get $5 + local.set $12 + local.get $12 if block $for-continue|1 local.get $2 - local.get $4 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.set $6 - local.get $6 + local.set $13 + local.get $13 i32.const 0 i32.eq if br $for-continue|1 end - local.get $6 + local.get $13 i32.load offset=8 - local.set $11 + local.set $14 local.get $8 local.get $10 i32.add - local.get $6 + local.get $13 i32.load offset=4 - local.get $11 + local.get $14 call $~lib/memory/memory.copy local.get $10 - local.get $11 + local.get $14 i32.add local.set $10 end - local.get $4 + local.get $11 i32.const 1 i32.add - local.set $4 + local.set $11 br $for-loop|1 end end i32.const 1 drop i32.const 0 - local.set $4 + local.set $15 loop $for-loop|2 - local.get $4 + local.get $15 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $16 + local.get $16 if local.get $8 - local.get $4 + local.get $15 i32.const 2 i32.shl i32.add i32.load call $~lib/rt/pure/__retain drop - local.get $4 + local.get $15 i32.const 1 i32.add - local.set $4 + local.set $15 br $for-loop|2 end end @@ -18962,6 +19497,459 @@ (local $61 i32) (local $62 i32) (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) + (local $89 i32) + (local $90 i32) + (local $91 i32) + (local $92 i32) + (local $93 i32) + (local $94 i32) + (local $95 i32) + (local $96 i32) + (local $97 i32) + (local $98 i32) + (local $99 i32) + (local $100 i32) + (local $101 i32) + (local $102 i32) + (local $103 i32) + (local $104 i32) + (local $105 i32) + (local $106 i32) + (local $107 i32) + (local $108 i32) + (local $109 i32) + (local $110 i32) + (local $111 i32) + (local $112 i32) + (local $113 i32) + (local $114 i32) + (local $115 i32) + (local $116 i32) + (local $117 i32) + (local $118 i32) + (local $119 i32) + (local $120 i32) + (local $121 i32) + (local $122 i32) + (local $123 i32) + (local $124 i32) + (local $125 i32) + (local $126 i32) + (local $127 i32) + (local $128 i32) + (local $129 i32) + (local $130 i32) + (local $131 i32) + (local $132 i32) + (local $133 i32) + (local $134 i32) + (local $135 i32) + (local $136 i32) + (local $137 i32) + (local $138 i32) + (local $139 i32) + (local $140 i32) + (local $141 i32) + (local $142 i32) + (local $143 i32) + (local $144 i32) + (local $145 i32) + (local $146 i32) + (local $147 i32) + (local $148 i32) + (local $149 i32) + (local $150 i32) + (local $151 i32) + (local $152 i32) + (local $153 i32) + (local $154 i32) + (local $155 i32) + (local $156 i32) + (local $157 i32) + (local $158 i32) + (local $159 i32) + (local $160 i32) + (local $161 i32) + (local $162 i32) + (local $163 i32) + (local $164 i32) + (local $165 i32) + (local $166 i32) + (local $167 i32) + (local $168 i32) + (local $169 i32) + (local $170 i32) + (local $171 i32) + (local $172 i32) + (local $173 i32) + (local $174 i32) + (local $175 i32) + (local $176 i32) + (local $177 i32) + (local $178 i32) + (local $179 i32) + (local $180 i32) + (local $181 i32) + (local $182 i32) + (local $183 i32) + (local $184 i32) + (local $185 i32) + (local $186 i32) + (local $187 i32) + (local $188 i32) + (local $189 i32) + (local $190 i32) + (local $191 i32) + (local $192 i32) + (local $193 i32) + (local $194 i32) + (local $195 i32) + (local $196 i32) + (local $197 i32) + (local $198 i32) + (local $199 i32) + (local $200 i32) + (local $201 i32) + (local $202 i32) + (local $203 i32) + (local $204 i32) + (local $205 i32) + (local $206 i32) + (local $207 i32) + (local $208 i32) + (local $209 i32) + (local $210 i32) + (local $211 i32) + (local $212 i32) + (local $213 i32) + (local $214 i32) + (local $215 i32) + (local $216 i32) + (local $217 i32) + (local $218 i32) + (local $219 i32) + (local $220 i32) + (local $221 i32) + (local $222 i32) + (local $223 i32) + (local $224 i32) + (local $225 i32) + (local $226 i32) + (local $227 i32) + (local $228 i32) + (local $229 i32) + (local $230 i32) + (local $231 i32) + (local $232 i32) + (local $233 i32) + (local $234 i32) + (local $235 i32) + (local $236 i32) + (local $237 i32) + (local $238 i32) + (local $239 i32) + (local $240 i32) + (local $241 i32) + (local $242 i32) + (local $243 i32) + (local $244 i32) + (local $245 i32) + (local $246 i32) + (local $247 i32) + (local $248 i32) + (local $249 i32) + (local $250 i32) + (local $251 i32) + (local $252 i32) + (local $253 i32) + (local $254 i32) + (local $255 i32) + (local $256 i32) + (local $257 i32) + (local $258 i32) + (local $259 i32) + (local $260 i32) + (local $261 i32) + (local $262 i32) + (local $263 i32) + (local $264 i32) + (local $265 i32) + (local $266 i32) + (local $267 i32) + (local $268 i32) + (local $269 i32) + (local $270 i32) + (local $271 i32) + (local $272 i32) + (local $273 i32) + (local $274 i32) + (local $275 i32) + (local $276 i32) + (local $277 i32) + (local $278 i32) + (local $279 i32) + (local $280 i32) + (local $281 i32) + (local $282 i32) + (local $283 i32) + (local $284 i32) + (local $285 i32) + (local $286 i32) + (local $287 i32) + (local $288 i32) + (local $289 i32) + (local $290 i32) + (local $291 i32) + (local $292 i32) + (local $293 i32) + (local $294 i32) + (local $295 i32) + (local $296 i32) + (local $297 i32) + (local $298 i32) + (local $299 i32) + (local $300 i32) + (local $301 i32) + (local $302 i32) + (local $303 i32) + (local $304 i32) + (local $305 i32) + (local $306 i32) + (local $307 i32) + (local $308 i32) + (local $309 i32) + (local $310 i32) + (local $311 i32) + (local $312 i32) + (local $313 i32) + (local $314 i32) + (local $315 i32) + (local $316 i32) + (local $317 i32) + (local $318 i32) + (local $319 i32) + (local $320 i32) + (local $321 i32) + (local $322 i32) + (local $323 i32) + (local $324 i32) + (local $325 i32) + (local $326 i32) + (local $327 i32) + (local $328 i32) + (local $329 i32) + (local $330 i32) + (local $331 i32) + (local $332 i32) + (local $333 i32) + (local $334 i32) + (local $335 i32) + (local $336 i32) + (local $337 i32) + (local $338 i32) + (local $339 i32) + (local $340 i32) + (local $341 i32) + (local $342 i32) + (local $343 i32) + (local $344 i32) + (local $345 i32) + (local $346 i32) + (local $347 i32) + (local $348 i32) + (local $349 i32) + (local $350 i32) + (local $351 i32) + (local $352 i32) + (local $353 i32) + (local $354 i32) + (local $355 i32) + (local $356 i32) + (local $357 i32) + (local $358 i32) + (local $359 i32) + (local $360 i32) + (local $361 i32) + (local $362 i32) + (local $363 i32) + (local $364 i32) + (local $365 i32) + (local $366 i32) + (local $367 i32) + (local $368 i32) + (local $369 i32) + (local $370 i32) + (local $371 i32) + (local $372 i32) + (local $373 i32) + (local $374 i32) + (local $375 i32) + (local $376 i32) + (local $377 i32) + (local $378 i32) + (local $379 i32) + (local $380 i32) + (local $381 i32) + (local $382 i32) + (local $383 i32) + (local $384 i32) + (local $385 i32) + (local $386 i32) + (local $387 i32) + (local $388 i32) + (local $389 i32) + (local $390 i32) + (local $391 i32) + (local $392 i32) + (local $393 i32) + (local $394 i32) + (local $395 i32) + (local $396 i32) + (local $397 i32) + (local $398 i32) + (local $399 i32) + (local $400 i32) + (local $401 i32) + (local $402 i32) + (local $403 i32) + (local $404 i32) + (local $405 i32) + (local $406 i32) + (local $407 i32) + (local $408 i32) + (local $409 i32) + (local $410 i32) + (local $411 i32) + (local $412 i32) + (local $413 i32) + (local $414 i32) + (local $415 i32) + (local $416 i32) + (local $417 i32) + (local $418 i32) + (local $419 i32) + (local $420 i32) + (local $421 i32) + (local $422 i32) + (local $423 i32) + (local $424 i32) + (local $425 i32) + (local $426 i32) + (local $427 i32) + (local $428 i32) + (local $429 i32) + (local $430 i32) + (local $431 i32) + (local $432 i32) + (local $433 i32) + (local $434 i32) + (local $435 i32) + (local $436 i32) + (local $437 i32) + (local $438 i32) + (local $439 i32) + (local $440 i32) + (local $441 i32) + (local $442 i32) + (local $443 i32) + (local $444 i32) + (local $445 i32) + (local $446 i32) + (local $447 i32) + (local $448 i32) + (local $449 i32) + (local $450 i32) + (local $451 i32) + (local $452 i32) + (local $453 i32) + (local $454 i32) + (local $455 i32) + (local $456 i32) + (local $457 i32) + (local $458 i32) + (local $459 i32) + (local $460 i32) + (local $461 i32) + (local $462 i32) + (local $463 i32) + (local $464 i32) + (local $465 i32) + (local $466 i32) + (local $467 i32) + (local $468 i32) + (local $469 i32) + (local $470 i32) + (local $471 i32) + (local $472 i32) + (local $473 i32) + (local $474 i32) + (local $475 i32) + (local $476 i32) + (local $477 i32) + (local $478 i32) + (local $479 i32) + (local $480 i32) + (local $481 i32) + (local $482 i32) + (local $483 i32) + (local $484 i32) + (local $485 i32) + (local $486 i32) + (local $487 i32) + (local $488 i32) + (local $489 i32) + (local $490 i32) + (local $491 i32) + (local $492 i32) + (local $493 i32) + (local $494 i32) + (local $495 i32) + (local $496 i32) + (local $497 i32) + (local $498 i32) + (local $499 i32) + (local $500 i32) + (local $501 i32) + (local $502 i32) + (local $503 i32) + (local $504 i32) + (local $505 i32) + (local $506 i32) + (local $507 i32) + (local $508 i32) + (local $509 i32) + (local $510 i32) + (local $511 i32) + (local $512 i32) + (local $513 i32) + (local $514 i32) + (local $515 i32) + (local $516 i32) i32.const 0 i32.const 0 i32.eq @@ -19065,21 +20053,21 @@ i32.const 432 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $0 - local.get $0 + local.set $4 + local.get $4 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $0 + local.get $4 i32.const 5 i32.const 0 i32.const 6 i32.const 464 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $2 + local.tee $7 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19091,20 +20079,20 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $4 i32.const 0 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $0 + local.get $4 i32.const 5 i32.const 0 i32.const 6 i32.const 560 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19116,20 +20104,20 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $4 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $0 + local.get $4 i32.const 5 i32.const 0 i32.const 6 i32.const 592 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $13 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19141,20 +20129,20 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $4 i32.const 2 i32.const -2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $0 + local.get $4 i32.const 5 i32.const 0 i32.const 6 i32.const 624 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $16 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19166,20 +20154,20 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $4 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $0 + local.get $4 i32.const 5 i32.const 0 i32.const 6 i32.const 656 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $19 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19191,17 +20179,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $4 call $~lib/rt/pure/__release - local.get $2 + local.get $7 call $~lib/rt/pure/__release - local.get $3 + local.get $10 call $~lib/rt/pure/__release - local.get $4 + local.get $13 call $~lib/rt/pure/__release - local.get $5 + local.get $16 call $~lib/rt/pure/__release - local.get $6 + local.get $19 call $~lib/rt/pure/__release i32.const 5 i32.const 2 @@ -19209,21 +20197,21 @@ i32.const 688 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $5 - local.get $5 + local.set $22 + local.get $22 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $5 + local.get $22 i32.const 5 i32.const 2 i32.const 7 i32.const 736 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $25 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19235,20 +20223,20 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $22 i32.const 0 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $5 + local.get $22 i32.const 5 i32.const 2 i32.const 7 i32.const 784 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $28 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19260,20 +20248,20 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $22 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $5 + local.get $22 i32.const 5 i32.const 2 i32.const 7 i32.const 832 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $2 + local.tee $31 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19285,20 +20273,20 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $22 i32.const 2 i32.const -2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $5 + local.get $22 i32.const 5 i32.const 2 i32.const 7 i32.const 880 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $34 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19310,20 +20298,20 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $22 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $5 + local.get $22 i32.const 5 i32.const 2 i32.const 7 i32.const 928 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $37 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19335,17 +20323,17 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $22 call $~lib/rt/pure/__release - local.get $4 + local.get $25 call $~lib/rt/pure/__release - local.get $3 + local.get $28 call $~lib/rt/pure/__release - local.get $2 + local.get $31 call $~lib/rt/pure/__release - local.get $0 + local.get $34 call $~lib/rt/pure/__release - local.get $1 + local.get $37 call $~lib/rt/pure/__release global.get $std/array/arr call $~lib/array/Array#get:length @@ -19419,8 +20407,8 @@ end global.get $std/array/arr call $~lib/array/Array#pop - local.set $1 - local.get $1 + local.set $38 + local.get $38 i32.const 42 i32.eq i32.eqz @@ -19638,26 +20626,26 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $1 - local.get $1 + local.set $39 + local.get $39 i32.load offset=4 - local.set $0 - local.get $0 + local.set $40 + local.get $40 i32.const 0 i32.const 0 call $std/array/Ref#constructor i32.store - local.get $0 + local.get $40 i32.const 0 i32.const 0 call $std/array/Ref#constructor i32.store offset=4 - local.get $1 - local.set $0 - local.get $0 + local.get $39 + local.set $41 + local.get $41 i32.const 0 call $~lib/array/Array#set:length - local.get $0 + local.get $41 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -19670,16 +20658,16 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $41 call $~lib/rt/pure/__release i32.const 0 i32.const 0 call $~lib/array/Array#constructor - local.set $0 + local.set $42 global.get $std/array/arr - local.get $0 + local.get $42 call $~lib/array/Array#concat - local.set $1 + local.set $43 global.get $std/array/arr call $std/array/internalCapacity i32.const 3 @@ -19706,7 +20694,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $43 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -19719,14 +20707,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $43 i32.const 0 i32.const 2 i32.const 3 i32.const 1024 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $46 call $~lib/array/Array#concat call $~lib/rt/pure/__release global.get $std/array/arr @@ -19742,7 +20730,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $43 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -19756,7 +20744,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $43 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -19770,7 +20758,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $43 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -19784,22 +20772,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $42 i32.const 46 call $~lib/array/Array#push drop - local.get $0 + local.get $42 i32.const 47 call $~lib/array/Array#push drop global.get $std/array/arr - local.get $0 + local.get $42 call $~lib/array/Array#concat - local.set $6 - local.get $1 + local.set $47 + local.get $43 call $~lib/rt/pure/__release - local.get $6 - local.set $1 + local.get $47 + local.set $43 global.get $std/array/arr call $std/array/internalCapacity i32.const 3 @@ -19813,7 +20801,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $42 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -19826,7 +20814,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $43 call $~lib/array/Array#get:length i32.const 5 i32.eq @@ -19839,7 +20827,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $43 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -19853,7 +20841,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $43 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -19867,7 +20855,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $43 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -19881,7 +20869,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $43 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -19895,7 +20883,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $43 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -19909,10 +20897,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $43 call $~lib/array/Array#pop drop - local.get $1 + local.get $43 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -19931,8 +20919,8 @@ i32.const 1040 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $2 - local.get $2 + local.set $50 + local.get $50 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -19945,15 +20933,15 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $50 global.get $std/array/arr call $~lib/array/Array#concat - local.set $5 - local.get $1 + local.set $51 + local.get $43 call $~lib/rt/pure/__release - local.get $5 - local.set $1 - local.get $1 + local.get $51 + local.set $43 + local.get $43 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -19966,7 +20954,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $50 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -19979,13 +20967,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $42 call $~lib/rt/pure/__release - local.get $1 + local.get $43 call $~lib/rt/pure/__release - local.get $3 + local.get $46 call $~lib/rt/pure/__release - local.get $2 + local.get $50 call $~lib/rt/pure/__release i32.const 5 i32.const 2 @@ -19993,20 +20981,20 @@ i32.const 1056 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $3 - local.get $3 + local.set $54 + local.get $54 i32.const 0 i32.const 3 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin - local.tee $2 + local.tee $55 i32.const 5 i32.const 2 i32.const 3 i32.const 1104 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $58 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20024,24 +21012,24 @@ i32.const 1152 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $4 - local.get $3 + local.set $61 + local.get $54 call $~lib/rt/pure/__release - local.get $4 - local.set $3 - local.get $3 + local.get $61 + local.set $54 + local.get $54 i32.const 1 i32.const 3 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin - local.tee $4 + local.tee $62 i32.const 5 i32.const 2 i32.const 3 i32.const 1200 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $65 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20059,24 +21047,24 @@ i32.const 1248 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $5 - local.get $3 + local.set $68 + local.get $54 call $~lib/rt/pure/__release - local.get $5 - local.set $3 - local.get $3 + local.get $68 + local.set $54 + local.get $54 i32.const 1 i32.const 2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin - local.tee $5 + local.tee $69 i32.const 5 i32.const 2 i32.const 3 i32.const 1296 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $72 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20094,24 +21082,24 @@ i32.const 1344 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $6 - local.get $3 + local.set $75 + local.get $54 call $~lib/rt/pure/__release - local.get $6 - local.set $3 - local.get $3 + local.get $75 + local.set $54 + local.get $54 i32.const 2 i32.const 2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin - local.tee $6 + local.tee $76 i32.const 5 i32.const 2 i32.const 3 i32.const 1392 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $79 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20129,24 +21117,24 @@ i32.const 1440 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $8 - local.get $3 + local.set $82 + local.get $54 call $~lib/rt/pure/__release - local.get $8 - local.set $3 - local.get $3 + local.get $82 + local.set $54 + local.get $54 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $8 + local.tee $83 i32.const 5 i32.const 2 i32.const 3 i32.const 1488 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $11 + local.tee $86 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20164,24 +21152,24 @@ i32.const 1536 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $10 - local.get $3 + local.set $89 + local.get $54 call $~lib/rt/pure/__release - local.get $10 - local.set $3 - local.get $3 + local.get $89 + local.set $54 + local.get $54 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $10 + local.tee $90 i32.const 5 i32.const 2 i32.const 3 i32.const 1584 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $13 + local.tee $93 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20199,24 +21187,24 @@ i32.const 1632 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $12 - local.get $3 + local.set $96 + local.get $54 call $~lib/rt/pure/__release - local.get $12 - local.set $3 - local.get $3 + local.get $96 + local.set $54 + local.get $54 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $12 + local.tee $97 i32.const 5 i32.const 2 i32.const 3 i32.const 1680 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $15 + local.tee $100 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20234,24 +21222,24 @@ i32.const 1728 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $14 - local.get $3 + local.set $103 + local.get $54 call $~lib/rt/pure/__release - local.get $14 - local.set $3 - local.get $3 + local.get $103 + local.set $54 + local.get $54 i32.const 0 i32.const -2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin - local.tee $14 + local.tee $104 i32.const 5 i32.const 2 i32.const 3 i32.const 1776 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $17 + local.tee $107 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20269,24 +21257,24 @@ i32.const 1824 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $16 - local.get $3 + local.set $110 + local.get $54 call $~lib/rt/pure/__release - local.get $16 - local.set $3 - local.get $3 + local.get $110 + local.set $54 + local.get $54 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.tee $16 + local.tee $111 i32.const 5 i32.const 2 i32.const 3 i32.const 1872 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $19 + local.tee $114 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20304,24 +21292,24 @@ i32.const 1920 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $18 - local.get $3 + local.set $117 + local.get $54 call $~lib/rt/pure/__release - local.get $18 - local.set $3 - local.get $3 + local.get $117 + local.set $54 + local.get $54 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.tee $18 + local.tee $118 i32.const 5 i32.const 2 i32.const 3 i32.const 1968 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $21 + local.tee $121 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20339,24 +21327,24 @@ i32.const 2016 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $20 - local.get $3 + local.set $124 + local.get $54 call $~lib/rt/pure/__release - local.get $20 - local.set $3 - local.get $3 + local.get $124 + local.set $54 + local.get $54 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.tee $20 + local.tee $125 i32.const 5 i32.const 2 i32.const 3 i32.const 2064 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $23 + local.tee $128 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20374,24 +21362,24 @@ i32.const 2112 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $22 - local.get $3 + local.set $131 + local.get $54 call $~lib/rt/pure/__release - local.get $22 - local.set $3 - local.get $3 + local.get $131 + local.set $54 + local.get $54 i32.const -4 i32.const -3 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin - local.tee $22 + local.tee $132 i32.const 5 i32.const 2 i32.const 3 i32.const 2160 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $25 + local.tee $135 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20403,55 +21391,55 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $54 call $~lib/rt/pure/__release - local.get $2 + local.get $55 call $~lib/rt/pure/__release - local.get $0 + local.get $58 call $~lib/rt/pure/__release - local.get $4 + local.get $62 call $~lib/rt/pure/__release - local.get $1 + local.get $65 call $~lib/rt/pure/__release - local.get $5 + local.get $69 call $~lib/rt/pure/__release - local.get $7 + local.get $72 call $~lib/rt/pure/__release - local.get $6 + local.get $76 call $~lib/rt/pure/__release - local.get $9 + local.get $79 call $~lib/rt/pure/__release - local.get $8 + local.get $83 call $~lib/rt/pure/__release - local.get $11 + local.get $86 call $~lib/rt/pure/__release - local.get $10 + local.get $90 call $~lib/rt/pure/__release - local.get $13 + local.get $93 call $~lib/rt/pure/__release - local.get $12 + local.get $97 call $~lib/rt/pure/__release - local.get $15 + local.get $100 call $~lib/rt/pure/__release - local.get $14 + local.get $104 call $~lib/rt/pure/__release - local.get $17 + local.get $107 call $~lib/rt/pure/__release - local.get $16 + local.get $111 call $~lib/rt/pure/__release - local.get $19 + local.get $114 call $~lib/rt/pure/__release - local.get $18 + local.get $118 call $~lib/rt/pure/__release - local.get $21 + local.get $121 call $~lib/rt/pure/__release - local.get $20 + local.get $125 call $~lib/rt/pure/__release - local.get $23 + local.get $128 call $~lib/rt/pure/__release - local.get $22 + local.get $132 call $~lib/rt/pure/__release - local.get $25 + local.get $135 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 42 @@ -21074,7 +22062,7 @@ i32.const 2208 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $22 + local.tee $138 f32.const nan:0x400000 i32.const 0 call $~lib/array/Array#indexOf @@ -21095,7 +22083,7 @@ i32.const 2240 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $23 + local.tee $141 f64.const nan:0x8000000000000 i32.const 0 call $~lib/array/Array#indexOf @@ -21110,16 +22098,16 @@ call $~lib/builtins/abort unreachable end - local.get $22 + local.get $138 call $~lib/rt/pure/__release - local.get $23 + local.get $141 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 44 i32.const 0 call $~lib/array/Array#includes - local.set $23 - local.get $23 + local.set $142 + local.get $142 i32.const 1 i32.eq i32.eqz @@ -21135,8 +22123,8 @@ i32.const 42 i32.const 0 call $~lib/array/Array#includes - local.set $23 - local.get $23 + local.set $142 + local.get $142 i32.const 1 i32.eq i32.eqz @@ -21152,8 +22140,8 @@ i32.const 45 i32.const 0 call $~lib/array/Array#includes - local.set $23 - local.get $23 + local.set $142 + local.get $142 i32.const 0 i32.eq i32.eqz @@ -21169,8 +22157,8 @@ i32.const 43 i32.const 100 call $~lib/array/Array#includes - local.set $23 - local.get $23 + local.set $142 + local.get $142 i32.const 0 i32.eq i32.eqz @@ -21186,8 +22174,8 @@ i32.const 43 i32.const -100 call $~lib/array/Array#includes - local.set $23 - local.get $23 + local.set $142 + local.get $142 i32.const 1 i32.eq i32.eqz @@ -21203,8 +22191,8 @@ i32.const 43 i32.const -2 call $~lib/array/Array#includes - local.set $23 - local.get $23 + local.set $142 + local.get $142 i32.const 1 i32.eq i32.eqz @@ -21220,8 +22208,8 @@ i32.const 43 i32.const -4 call $~lib/array/Array#includes - local.set $23 - local.get $23 + local.set $142 + local.get $142 i32.const 1 i32.eq i32.eqz @@ -21237,8 +22225,8 @@ i32.const 43 i32.const 0 call $~lib/array/Array#includes - local.set $23 - local.get $23 + local.set $142 + local.get $142 i32.const 1 i32.eq i32.eqz @@ -21254,8 +22242,8 @@ i32.const 43 i32.const 1 call $~lib/array/Array#includes - local.set $23 - local.get $23 + local.set $142 + local.get $142 i32.const 1 i32.eq i32.eqz @@ -21271,8 +22259,8 @@ i32.const 43 i32.const 2 call $~lib/array/Array#includes - local.set $23 - local.get $23 + local.set $142 + local.get $142 i32.const 1 i32.eq i32.eqz @@ -21290,7 +22278,7 @@ i32.const 2272 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $25 + local.tee $145 f32.const nan:0x400000 i32.const 0 call $~lib/array/Array#includes @@ -21309,7 +22297,7 @@ i32.const 2304 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $20 + local.tee $148 f64.const nan:0x8000000000000 i32.const 0 call $~lib/array/Array#includes @@ -21381,9 +22369,9 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $145 call $~lib/rt/pure/__release - local.get $20 + local.get $148 call $~lib/rt/pure/__release i32.const 5 i32.const 2 @@ -21391,19 +22379,19 @@ i32.const 2336 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $25 - local.get $25 + local.set $151 + local.get $151 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice - local.tee $20 + local.tee $152 i32.const 5 i32.const 2 i32.const 3 i32.const 2384 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $22 + local.tee $155 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21415,14 +22403,14 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $151 i32.const 0 i32.const 2 i32.const 3 i32.const 2432 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $21 + local.tee $158 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21440,23 +22428,23 @@ i32.const 2448 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $24 - local.get $25 + local.set $161 + local.get $151 call $~lib/rt/pure/__release - local.get $24 - local.set $25 - local.get $25 + local.get $161 + local.set $151 + local.get $151 i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.tee $24 + local.tee $162 i32.const 0 i32.const 2 i32.const 3 i32.const 2496 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $23 + local.tee $165 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21468,14 +22456,14 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $151 i32.const 5 i32.const 2 i32.const 3 i32.const 2512 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $19 + local.tee $168 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21493,23 +22481,23 @@ i32.const 2560 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $3 - local.get $25 + local.set $171 + local.get $151 call $~lib/rt/pure/__release - local.get $3 - local.set $25 - local.get $25 + local.get $171 + local.set $151 + local.get $151 i32.const 2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice - local.tee $3 + local.tee $172 i32.const 3 i32.const 2 i32.const 3 i32.const 2608 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $18 + local.tee $175 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21521,14 +22509,14 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $151 i32.const 2 i32.const 2 i32.const 3 i32.const 2640 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $17 + local.tee $178 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21546,23 +22534,23 @@ i32.const 2672 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $2 - local.get $25 + local.set $181 + local.get $151 call $~lib/rt/pure/__release - local.get $2 - local.set $25 - local.get $25 + local.get $181 + local.set $151 + local.get $151 i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.tee $2 + local.tee $182 i32.const 2 i32.const 2 i32.const 3 i32.const 2720 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $16 + local.tee $185 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21574,14 +22562,14 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $151 i32.const 3 i32.const 2 i32.const 3 i32.const 2752 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $15 + local.tee $188 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21599,23 +22587,23 @@ i32.const 2784 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $0 - local.get $25 + local.set $191 + local.get $151 call $~lib/rt/pure/__release - local.get $0 - local.set $25 - local.get $25 + local.get $191 + local.set $151 + local.get $151 i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.tee $0 + local.tee $192 i32.const 1 i32.const 2 i32.const 3 i32.const 2832 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $14 + local.tee $195 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21627,14 +22615,14 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $151 i32.const 4 i32.const 2 i32.const 3 i32.const 2864 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $13 + local.tee $198 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21652,23 +22640,23 @@ i32.const 2896 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $4 - local.get $25 + local.set $201 + local.get $151 call $~lib/rt/pure/__release - local.get $4 - local.set $25 - local.get $25 + local.get $201 + local.set $151 + local.get $151 i32.const -1 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice - local.tee $4 + local.tee $202 i32.const 1 i32.const 2 i32.const 3 i32.const 2944 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $12 + local.tee $205 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21680,14 +22668,14 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $151 i32.const 4 i32.const 2 i32.const 3 i32.const 2976 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $11 + local.tee $208 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21705,23 +22693,23 @@ i32.const 3008 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $1 - local.get $25 + local.set $211 + local.get $151 call $~lib/rt/pure/__release - local.get $1 - local.set $25 - local.get $25 + local.get $211 + local.set $151 + local.get $151 i32.const -2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice - local.tee $1 + local.tee $212 i32.const 2 i32.const 2 i32.const 3 i32.const 3056 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 + local.tee $215 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21733,14 +22721,14 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $151 i32.const 3 i32.const 2 i32.const 3 i32.const 3088 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $218 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21758,23 +22746,23 @@ i32.const 3120 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $5 - local.get $25 + local.set $221 + local.get $151 call $~lib/rt/pure/__release - local.get $5 - local.set $25 - local.get $25 + local.get $221 + local.set $151 + local.get $151 i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.tee $5 + local.tee $222 i32.const 1 i32.const 2 i32.const 3 i32.const 3168 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $225 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21786,14 +22774,14 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $151 i32.const 4 i32.const 2 i32.const 3 i32.const 3200 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $228 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21811,23 +22799,23 @@ i32.const 3232 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $6 - local.get $25 + local.set $231 + local.get $151 call $~lib/rt/pure/__release - local.get $6 - local.set $25 - local.get $25 + local.get $231 + local.set $151 + local.get $151 i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.tee $6 + local.tee $232 i32.const 1 i32.const 2 i32.const 3 i32.const 3280 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $27 + local.tee $235 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21839,14 +22827,14 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $151 i32.const 4 i32.const 2 i32.const 3 i32.const 3312 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $28 + local.tee $238 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21864,23 +22852,23 @@ i32.const 3344 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $26 - local.get $25 + local.set $241 + local.get $151 call $~lib/rt/pure/__release - local.get $26 - local.set $25 - local.get $25 + local.get $241 + local.set $151 + local.get $151 i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.tee $26 + local.tee $242 i32.const 0 i32.const 2 i32.const 3 i32.const 3392 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $30 + local.tee $245 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21892,14 +22880,14 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $151 i32.const 5 i32.const 2 i32.const 3 i32.const 3408 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $31 + local.tee $248 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21917,23 +22905,23 @@ i32.const 3456 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $29 - local.get $25 + local.set $251 + local.get $151 call $~lib/rt/pure/__release - local.get $29 - local.set $25 - local.get $25 + local.get $251 + local.set $151 + local.get $151 i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.tee $29 + local.tee $252 i32.const 0 i32.const 2 i32.const 3 i32.const 3504 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $33 + local.tee $255 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21945,14 +22933,14 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $151 i32.const 5 i32.const 2 i32.const 3 i32.const 3520 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $34 + local.tee $258 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21970,23 +22958,23 @@ i32.const 3568 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $32 - local.get $25 + local.set $261 + local.get $151 call $~lib/rt/pure/__release - local.get $32 - local.set $25 - local.get $25 + local.get $261 + local.set $151 + local.get $151 i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.tee $32 + local.tee $262 i32.const 0 i32.const 2 i32.const 3 i32.const 3616 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $36 + local.tee $265 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21998,14 +22986,14 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $151 i32.const 5 i32.const 2 i32.const 3 i32.const 3632 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $37 + local.tee $268 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22023,23 +23011,23 @@ i32.const 3680 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $35 - local.get $25 + local.set $271 + local.get $151 call $~lib/rt/pure/__release - local.get $35 - local.set $25 - local.get $25 + local.get $271 + local.set $151 + local.get $151 i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.tee $35 + local.tee $272 i32.const 0 i32.const 2 i32.const 3 i32.const 3728 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $39 + local.tee $275 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22051,14 +23039,14 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $151 i32.const 5 i32.const 2 i32.const 3 i32.const 3744 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $40 + local.tee $278 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22076,23 +23064,23 @@ i32.const 3792 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $38 - local.get $25 + local.set $281 + local.get $151 call $~lib/rt/pure/__release - local.get $38 - local.set $25 - local.get $25 + local.get $281 + local.set $151 + local.get $151 i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.tee $38 + local.tee $282 i32.const 0 i32.const 2 i32.const 3 i32.const 3840 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $42 + local.tee $285 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22104,14 +23092,14 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $151 i32.const 5 i32.const 2 i32.const 3 i32.const 3856 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $43 + local.tee $288 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22129,13 +23117,13 @@ i32.const 3904 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $45 - local.get $45 + local.set $291 + local.get $291 i32.const 1 i32.const 2 call $~lib/array/Array#splice - local.set $46 - local.get $46 + local.set $292 + local.get $292 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -22148,7 +23136,7 @@ call $~lib/builtins/abort unreachable end - local.get $45 + local.get $291 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -22167,51 +23155,51 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $44 - local.get $44 + local.set $293 + local.get $293 i32.load offset=4 - local.set $41 - local.get $41 + local.set $294 + local.get $294 i32.const 0 i32.const 1 call $std/array/Ref#constructor i32.store - local.get $41 + local.get $294 i32.const 0 i32.const 2 call $std/array/Ref#constructor i32.store offset=4 - local.get $41 + local.get $294 i32.const 0 i32.const 3 call $std/array/Ref#constructor i32.store offset=8 - local.get $41 + local.get $294 i32.const 0 i32.const 4 call $std/array/Ref#constructor i32.store offset=12 - local.get $41 + local.get $294 i32.const 0 i32.const 5 call $std/array/Ref#constructor i32.store offset=16 - local.get $44 - local.set $44 - local.get $45 + local.get $293 + local.set $295 + local.get $291 call $~lib/rt/pure/__release - local.get $44 - local.set $45 - local.get $45 + local.get $295 + local.set $291 + local.get $291 i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $41 - local.get $46 + local.set $296 + local.get $292 call $~lib/rt/pure/__release - local.get $41 - local.set $46 - local.get $46 + local.get $296 + local.set $292 + local.get $292 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -22224,10 +23212,10 @@ call $~lib/builtins/abort unreachable end - local.get $46 + local.get $292 i32.const 0 call $~lib/array/Array#__get - local.tee $41 + local.tee $297 i32.load i32.const 3 i32.eq @@ -22240,10 +23228,10 @@ call $~lib/builtins/abort unreachable end - local.get $46 + local.get $292 i32.const 1 call $~lib/array/Array#__get - local.tee $44 + local.tee $298 i32.load i32.const 4 i32.eq @@ -22256,7 +23244,7 @@ call $~lib/builtins/abort unreachable end - local.get $45 + local.get $291 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -22269,10 +23257,10 @@ call $~lib/builtins/abort unreachable end - local.get $45 + local.get $291 i32.const 0 call $~lib/array/Array#__get - local.tee $47 + local.tee $299 i32.load i32.const 1 i32.eq @@ -22285,10 +23273,10 @@ call $~lib/builtins/abort unreachable end - local.get $45 + local.get $291 i32.const 1 call $~lib/array/Array#__get - local.tee $48 + local.tee $300 i32.load i32.const 2 i32.eq @@ -22301,10 +23289,10 @@ call $~lib/builtins/abort unreachable end - local.get $45 + local.get $291 i32.const 2 call $~lib/array/Array#__get - local.tee $49 + local.tee $301 i32.load i32.const 5 i32.eq @@ -22323,32 +23311,32 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $50 - local.get $50 + local.set $302 + local.get $302 i32.load offset=4 - local.set $51 - local.get $51 + local.set $303 + local.get $303 i32.const 0 i32.const 1 call $std/array/Ref#constructor i32.store - local.get $51 + local.get $303 i32.const 0 call $~lib/rt/pure/__retain i32.store offset=4 - local.get $51 + local.get $303 i32.const 0 i32.const 2 call $std/array/Ref#constructor i32.store offset=8 - local.get $50 - local.set $52 - local.get $52 + local.get $302 + local.set $304 + local.get $304 i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $53 - local.get $53 + local.set $305 + local.get $305 call $~lib/array/Array#get:length i32.const 1 i32.eq @@ -22361,13 +23349,13 @@ call $~lib/builtins/abort unreachable end - local.get $53 + local.get $305 i32.const 0 call $~lib/array/Array#__get - local.tee $51 - local.tee $50 + local.tee $306 + local.tee $307 if (result i32) - local.get $50 + local.get $307 else i32.const 0 i32.const 288 @@ -22388,7 +23376,7 @@ call $~lib/builtins/abort unreachable end - local.get $52 + local.get $304 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -22401,10 +23389,10 @@ call $~lib/builtins/abort unreachable end - local.get $52 + local.get $304 i32.const 0 call $~lib/array/Array#__get - local.tee $50 + local.tee $308 i32.const 0 i32.eq i32.eqz @@ -22416,13 +23404,13 @@ call $~lib/builtins/abort unreachable end - local.get $52 + local.get $304 i32.const 1 call $~lib/array/Array#__get - local.tee $54 - local.tee $55 + local.tee $309 + local.tee $310 if (result i32) - local.get $55 + local.get $310 else i32.const 0 i32.const 288 @@ -22443,107 +23431,107 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $151 call $~lib/rt/pure/__release - local.get $20 + local.get $152 call $~lib/rt/pure/__release - local.get $22 + local.get $155 call $~lib/rt/pure/__release - local.get $21 + local.get $158 call $~lib/rt/pure/__release - local.get $24 + local.get $162 call $~lib/rt/pure/__release - local.get $23 + local.get $165 call $~lib/rt/pure/__release - local.get $19 + local.get $168 call $~lib/rt/pure/__release - local.get $3 + local.get $172 call $~lib/rt/pure/__release - local.get $18 + local.get $175 call $~lib/rt/pure/__release - local.get $17 + local.get $178 call $~lib/rt/pure/__release - local.get $2 + local.get $182 call $~lib/rt/pure/__release - local.get $16 + local.get $185 call $~lib/rt/pure/__release - local.get $15 + local.get $188 call $~lib/rt/pure/__release - local.get $0 + local.get $192 call $~lib/rt/pure/__release - local.get $14 + local.get $195 call $~lib/rt/pure/__release - local.get $13 + local.get $198 call $~lib/rt/pure/__release - local.get $4 + local.get $202 call $~lib/rt/pure/__release - local.get $12 + local.get $205 call $~lib/rt/pure/__release - local.get $11 + local.get $208 call $~lib/rt/pure/__release - local.get $1 + local.get $212 call $~lib/rt/pure/__release - local.get $10 + local.get $215 call $~lib/rt/pure/__release - local.get $9 + local.get $218 call $~lib/rt/pure/__release - local.get $5 + local.get $222 call $~lib/rt/pure/__release - local.get $8 + local.get $225 call $~lib/rt/pure/__release - local.get $7 + local.get $228 call $~lib/rt/pure/__release - local.get $6 + local.get $232 call $~lib/rt/pure/__release - local.get $27 + local.get $235 call $~lib/rt/pure/__release - local.get $28 + local.get $238 call $~lib/rt/pure/__release - local.get $26 + local.get $242 call $~lib/rt/pure/__release - local.get $30 + local.get $245 call $~lib/rt/pure/__release - local.get $31 + local.get $248 call $~lib/rt/pure/__release - local.get $29 + local.get $252 call $~lib/rt/pure/__release - local.get $33 + local.get $255 call $~lib/rt/pure/__release - local.get $34 + local.get $258 call $~lib/rt/pure/__release - local.get $32 + local.get $262 call $~lib/rt/pure/__release - local.get $36 + local.get $265 call $~lib/rt/pure/__release - local.get $37 + local.get $268 call $~lib/rt/pure/__release - local.get $35 + local.get $272 call $~lib/rt/pure/__release - local.get $39 + local.get $275 call $~lib/rt/pure/__release - local.get $40 + local.get $278 call $~lib/rt/pure/__release - local.get $38 + local.get $282 call $~lib/rt/pure/__release - local.get $42 + local.get $285 call $~lib/rt/pure/__release - local.get $43 + local.get $288 call $~lib/rt/pure/__release - local.get $41 + local.get $297 call $~lib/rt/pure/__release - local.get $44 + local.get $298 call $~lib/rt/pure/__release - local.get $47 + local.get $299 call $~lib/rt/pure/__release - local.get $48 + local.get $300 call $~lib/rt/pure/__release - local.get $49 + local.get $301 call $~lib/rt/pure/__release - local.get $51 + local.get $306 call $~lib/rt/pure/__release - local.get $50 + local.get $308 call $~lib/rt/pure/__release - local.get $54 + local.get $309 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 0 @@ -22706,8 +23694,8 @@ global.get $std/array/arr i32.const 7 call $~lib/array/Array#every - local.set $54 - local.get $54 + local.set $311 + local.get $311 i32.const 1 i32.eq i32.eqz @@ -22722,8 +23710,8 @@ global.get $std/array/arr i32.const 8 call $~lib/array/Array#every - local.set $54 - local.get $54 + local.set $311 + local.get $311 i32.const 0 i32.eq i32.eqz @@ -22738,8 +23726,8 @@ global.get $std/array/arr i32.const 9 call $~lib/array/Array#every - local.set $54 - local.get $54 + local.set $311 + local.get $311 i32.const 1 i32.eq i32.eqz @@ -22767,8 +23755,8 @@ global.get $std/array/arr i32.const 10 call $~lib/array/Array#every - local.set $54 - local.get $54 + local.set $311 + local.get $311 i32.const 0 i32.eq i32.eqz @@ -22795,8 +23783,8 @@ global.get $std/array/arr i32.const 11 call $~lib/array/Array#every - local.set $54 - local.get $54 + local.set $311 + local.get $311 i32.const 1 i32.eq i32.eqz @@ -22832,8 +23820,8 @@ global.get $std/array/arr i32.const 12 call $~lib/array/Array#some - local.set $54 - local.get $54 + local.set $312 + local.get $312 i32.const 1 i32.eq i32.eqz @@ -22848,8 +23836,8 @@ global.get $std/array/arr i32.const 13 call $~lib/array/Array#some - local.set $54 - local.get $54 + local.set $312 + local.get $312 i32.const 0 i32.eq i32.eqz @@ -22864,8 +23852,8 @@ global.get $std/array/arr i32.const 14 call $~lib/array/Array#some - local.set $54 - local.get $54 + local.set $312 + local.get $312 i32.const 0 i32.eq i32.eqz @@ -22893,8 +23881,8 @@ global.get $std/array/arr i32.const 15 call $~lib/array/Array#some - local.set $54 - local.get $54 + local.set $312 + local.get $312 i32.const 1 i32.eq i32.eqz @@ -22921,8 +23909,8 @@ global.get $std/array/arr i32.const 16 call $~lib/array/Array#some - local.set $54 - local.get $54 + local.set $312 + local.get $312 i32.const 0 i32.eq i32.eqz @@ -23086,21 +24074,21 @@ unreachable end i32.const 0 - local.set $54 + local.set $313 loop $for-loop|0 - local.get $54 + local.get $313 i32.const 100 i32.lt_s - local.set $50 - local.get $50 + local.set $314 + local.get $314 if global.get $std/array/arr call $~lib/array/Array#pop drop - local.get $54 + local.get $313 i32.const 1 i32.add - local.set $54 + local.set $313 br $for-loop|0 end end @@ -23123,8 +24111,8 @@ global.get $std/array/arr i32.const 22 call $~lib/array/Array#map - local.set $54 - local.get $54 + local.set $315 + local.get $315 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -23137,7 +24125,7 @@ call $~lib/builtins/abort unreachable end - local.get $54 + local.get $315 i32.const 0 call $~lib/array/Array#__get global.get $std/array/arr @@ -23254,13 +24242,13 @@ i32.const 3 call $~lib/array/Array#push drop - local.get $54 + local.get $315 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 26 call $~lib/array/Array#filter - local.set $54 - local.get $54 + local.set $316 + local.get $316 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -23373,7 +24361,7 @@ i32.const 3 call $~lib/array/Array#push drop - local.get $54 + local.get $316 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 30 @@ -23413,8 +24401,8 @@ i32.const 32 i32.const 0 call $~lib/array/Array#reduce - local.set $54 - local.get $54 + local.set $317 + local.get $317 i32.const 0 i32.ne i32.const 1 @@ -23432,8 +24420,8 @@ i32.const 33 i32.const 0 call $~lib/array/Array#reduce - local.set $54 - local.get $54 + local.set $317 + local.get $317 i32.const 0 i32.ne i32.const 0 @@ -23582,8 +24570,8 @@ i32.const 39 i32.const 0 call $~lib/array/Array#reduceRight - local.set $54 - local.get $54 + local.set $318 + local.get $318 i32.const 0 i32.ne i32.const 1 @@ -23601,8 +24589,8 @@ i32.const 40 i32.const 0 call $~lib/array/Array#reduceRight - local.set $54 - local.get $54 + local.set $318 + local.get $318 i32.const 0 i32.ne i32.const 0 @@ -23730,21 +24718,21 @@ i32.const 4272 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $50 - local.get $50 + local.set $321 + local.get $321 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs call $~lib/rt/pure/__release - local.get $50 + local.get $321 i32.const 8 i32.const 2 i32.const 9 i32.const 4320 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $51 + local.tee $324 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23762,21 +24750,21 @@ i32.const 4368 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $49 - local.get $49 + local.set $327 + local.get $327 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs call $~lib/rt/pure/__release - local.get $49 + local.get $327 i32.const 8 i32.const 3 i32.const 10 i32.const 4448 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $48 + local.tee $330 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23794,21 +24782,21 @@ i32.const 4528 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $47 - local.get $47 + local.set $333 + local.get $333 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs call $~lib/rt/pure/__release - local.get $47 + local.get $333 i32.const 5 i32.const 2 i32.const 3 i32.const 4576 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $44 + local.tee $336 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23826,21 +24814,21 @@ i32.const 4624 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $41 - local.get $41 + local.set $339 + local.get $339 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs call $~lib/rt/pure/__release - local.get $41 + local.get $339 i32.const 5 i32.const 2 i32.const 7 i32.const 4672 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $43 + local.tee $342 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23858,62 +24846,62 @@ i32.const 4720 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $42 + local.set $345 i32.const 1 i32.const 2 i32.const 3 i32.const 4736 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $38 + local.set $348 i32.const 2 i32.const 2 i32.const 3 i32.const 4768 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $40 + local.set $351 i32.const 4 i32.const 2 i32.const 3 i32.const 4800 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $39 + local.set $354 i32.const 4 i32.const 2 i32.const 3 i32.const 4832 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $35 + local.set $357 i32.const 64 call $std/array/createReverseOrderedArray - local.set $54 + local.set $358 i32.const 128 call $std/array/createReverseOrderedArray - local.set $37 + local.set $359 i32.const 1024 call $std/array/createReverseOrderedArray - local.set $36 + local.set $360 i32.const 10000 call $std/array/createReverseOrderedArray - local.set $32 + local.set $361 i32.const 512 call $std/array/createRandomOrderedArray - local.set $34 - local.get $42 + local.set $362 + local.get $345 call $std/array/assertSortedDefault - local.get $38 + local.get $348 call $std/array/assertSortedDefault - local.get $38 + local.get $348 i32.const 1 i32.const 2 i32.const 3 i32.const 4864 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $29 + local.tee $365 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23925,16 +24913,16 @@ call $~lib/builtins/abort unreachable end - local.get $40 + local.get $351 call $std/array/assertSortedDefault - local.get $40 + local.get $351 i32.const 2 i32.const 2 i32.const 3 i32.const 4896 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $31 + local.tee $368 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23946,10 +24934,10 @@ call $~lib/builtins/abort unreachable end - local.get $39 + local.get $354 call $std/array/assertSortedDefault - local.get $39 - local.get $35 + local.get $354 + local.get $357 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23961,10 +24949,10 @@ call $~lib/builtins/abort unreachable end - local.get $54 + local.get $358 call $std/array/assertSortedDefault - local.get $54 - local.get $35 + local.get $358 + local.get $357 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -23976,10 +24964,10 @@ call $~lib/builtins/abort unreachable end - local.get $37 + local.get $359 call $std/array/assertSortedDefault - local.get $37 - local.get $35 + local.get $359 + local.get $357 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -23991,10 +24979,10 @@ call $~lib/builtins/abort unreachable end - local.get $36 + local.get $360 call $std/array/assertSortedDefault - local.get $36 - local.get $35 + local.get $360 + local.get $357 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -24006,10 +24994,10 @@ call $~lib/builtins/abort unreachable end - local.get $32 + local.get $361 call $std/array/assertSortedDefault - local.get $32 - local.get $35 + local.get $361 + local.get $357 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -24021,85 +25009,85 @@ call $~lib/builtins/abort unreachable end - local.get $34 + local.get $362 call $std/array/assertSortedDefault - local.get $50 + local.get $321 call $~lib/rt/pure/__release - local.get $51 + local.get $324 call $~lib/rt/pure/__release - local.get $49 + local.get $327 call $~lib/rt/pure/__release - local.get $48 + local.get $330 call $~lib/rt/pure/__release - local.get $47 + local.get $333 call $~lib/rt/pure/__release - local.get $44 + local.get $336 call $~lib/rt/pure/__release - local.get $41 + local.get $339 call $~lib/rt/pure/__release - local.get $43 + local.get $342 call $~lib/rt/pure/__release - local.get $42 + local.get $345 call $~lib/rt/pure/__release - local.get $38 + local.get $348 call $~lib/rt/pure/__release - local.get $40 + local.get $351 call $~lib/rt/pure/__release - local.get $39 + local.get $354 call $~lib/rt/pure/__release - local.get $35 + local.get $357 call $~lib/rt/pure/__release - local.get $54 + local.get $358 call $~lib/rt/pure/__release - local.get $37 + local.get $359 call $~lib/rt/pure/__release - local.get $36 + local.get $360 call $~lib/rt/pure/__release - local.get $32 + local.get $361 call $~lib/rt/pure/__release - local.get $34 + local.get $362 call $~lib/rt/pure/__release - local.get $29 + local.get $365 call $~lib/rt/pure/__release - local.get $31 + local.get $368 call $~lib/rt/pure/__release i32.const 64 call $std/array/createRandomOrderedArray - local.set $31 + local.set $369 i32.const 257 call $std/array/createRandomOrderedArray - local.set $29 - local.get $31 + local.set $370 + local.get $369 i32.const 49 call $std/array/assertSorted - local.get $31 + local.get $369 i32.const 50 call $std/array/assertSorted - local.get $29 + local.get $370 i32.const 51 call $std/array/assertSorted - local.get $29 + local.get $370 i32.const 52 call $std/array/assertSorted - local.get $31 + local.get $369 call $~lib/rt/pure/__release - local.get $29 + local.get $370 call $~lib/rt/pure/__release i32.const 2 call $std/array/createReverseOrderedNestedArray - local.set $29 - local.get $29 + local.set $371 + local.get $371 i32.const 53 call $std/array/assertSorted<~lib/array/Array> - local.get $29 + local.get $371 call $~lib/rt/pure/__release i32.const 512 call $std/array/createReverseOrderedElementsArray - local.set $29 - local.get $29 + local.set $372 + local.get $372 i32.const 54 call $std/array/assertSorted> - local.get $29 + local.get $372 call $~lib/rt/pure/__release i32.const 7 i32.const 2 @@ -24107,21 +25095,21 @@ i32.const 5072 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $31 + local.set $375 i32.const 7 i32.const 2 i32.const 15 i32.const 5120 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $34 - local.get $31 + local.set $378 + local.get $375 i32.const 1 global.set $~argumentsLength i32.const 0 call $std/array/assertSorted<~lib/string/String | null>@varargs - local.get $31 - local.get $34 + local.get $375 + local.get $378 i32.const 0 call $std/array/isArraysEqual<~lib/string/String | null> i32.eqz @@ -24135,17 +25123,17 @@ end i32.const 400 call $std/array/createRandomStringArray - local.set $29 - local.get $29 + local.set $379 + local.get $379 i32.const 1 global.set $~argumentsLength i32.const 0 call $std/array/assertSorted<~lib/string/String>@varargs - local.get $31 + local.get $375 call $~lib/rt/pure/__release - local.get $34 + local.get $378 call $~lib/rt/pure/__release - local.get $29 + local.get $379 call $~lib/rt/pure/__release i32.const 2 i32.const 0 @@ -24153,10 +25141,10 @@ i32.const 5200 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $34 + local.tee $382 i32.const 5296 call $~lib/array/Array#join - local.tee $29 + local.tee $383 i32.const 5328 call $~lib/string/String.__eq i32.eqz @@ -24174,10 +25162,10 @@ i32.const 5376 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $32 + local.tee $386 i32.const 5056 call $~lib/array/Array#join - local.tee $31 + local.tee $387 i32.const 5840 call $~lib/string/String.__eq i32.eqz @@ -24195,10 +25183,10 @@ i32.const 5872 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $37 + local.tee $390 i32.const 5904 call $~lib/array/Array#join - local.tee $36 + local.tee $391 i32.const 5840 call $~lib/string/String.__eq i32.eqz @@ -24216,10 +25204,10 @@ i32.const 5936 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $35 + local.tee $394 i32.const 5968 call $~lib/array/Array#join - local.tee $54 + local.tee $395 i32.const 6000 call $~lib/string/String.__eq i32.eqz @@ -24237,10 +25225,10 @@ i32.const 6064 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $40 + local.tee $398 i32.const 6128 call $~lib/array/Array#join - local.tee $39 + local.tee $399 i32.const 7216 call $~lib/string/String.__eq i32.eqz @@ -24258,10 +25246,10 @@ i32.const 7344 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $42 + local.tee $402 i32.const 5056 call $~lib/array/Array<~lib/string/String | null>#join - local.tee $38 + local.tee $403 i32.const 7312 call $~lib/string/String.__eq i32.eqz @@ -24279,30 +25267,30 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $43 - local.get $43 + local.set $404 + local.get $404 i32.load offset=4 - local.set $41 - local.get $41 + local.set $405 + local.get $405 i32.const 0 i32.const 0 call $std/array/Ref#constructor i32.store - local.get $41 + local.get $405 i32.const 0 call $~lib/rt/pure/__retain i32.store offset=4 - local.get $41 + local.get $405 i32.const 0 i32.const 0 call $std/array/Ref#constructor i32.store offset=8 - local.get $43 - local.set $41 - local.get $41 + local.get $404 + local.set $406 + local.get $406 i32.const 5296 call $~lib/array/Array#join - local.tee $43 + local.tee $407 i32.const 7424 call $~lib/string/String.__eq i32.eqz @@ -24320,26 +25308,26 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $44 - local.get $44 + local.set $408 + local.get $408 i32.load offset=4 - local.set $47 - local.get $47 + local.set $409 + local.get $409 i32.const 0 i32.const 0 call $std/array/Ref#constructor i32.store - local.get $47 + local.get $409 i32.const 0 i32.const 0 call $std/array/Ref#constructor i32.store offset=4 - local.get $44 - local.set $47 - local.get $47 + local.get $408 + local.set $410 + local.get $410 i32.const 5296 call $~lib/array/Array#join - local.tee $44 + local.tee $411 i32.const 7504 call $~lib/string/String.__eq i32.eqz @@ -24351,37 +25339,37 @@ call $~lib/builtins/abort unreachable end - local.get $34 + local.get $382 call $~lib/rt/pure/__release - local.get $29 + local.get $383 call $~lib/rt/pure/__release - local.get $32 + local.get $386 call $~lib/rt/pure/__release - local.get $31 + local.get $387 call $~lib/rt/pure/__release - local.get $37 + local.get $390 call $~lib/rt/pure/__release - local.get $36 + local.get $391 call $~lib/rt/pure/__release - local.get $35 + local.get $394 call $~lib/rt/pure/__release - local.get $54 + local.get $395 call $~lib/rt/pure/__release - local.get $40 + local.get $398 call $~lib/rt/pure/__release - local.get $39 + local.get $399 call $~lib/rt/pure/__release - local.get $42 + local.get $402 call $~lib/rt/pure/__release - local.get $38 + local.get $403 call $~lib/rt/pure/__release - local.get $41 + local.get $406 call $~lib/rt/pure/__release - local.get $43 + local.get $407 call $~lib/rt/pure/__release - local.get $47 + local.get $410 call $~lib/rt/pure/__release - local.get $44 + local.get $411 call $~lib/rt/pure/__release i32.const 0 i32.const 2 @@ -24389,31 +25377,31 @@ i32.const 7584 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $47 + local.set $414 i32.const 1 i32.const 2 i32.const 3 i32.const 7600 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $43 + local.set $417 i32.const 2 i32.const 2 i32.const 3 i32.const 7632 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $41 + local.set $420 i32.const 4 i32.const 2 i32.const 3 i32.const 7664 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $38 - local.get $47 + local.set $423 + local.get $414 call $~lib/array/Array#toString - local.tee $44 + local.tee $424 i32.const 5056 call $~lib/string/String.__eq i32.eqz @@ -24425,9 +25413,9 @@ call $~lib/builtins/abort unreachable end - local.get $43 + local.get $417 call $~lib/array/Array#toString - local.tee $42 + local.tee $425 i32.const 7312 call $~lib/string/String.__eq i32.eqz @@ -24439,9 +25427,9 @@ call $~lib/builtins/abort unreachable end - local.get $41 + local.get $420 call $~lib/array/Array#toString - local.tee $39 + local.tee $426 i32.const 7696 call $~lib/string/String.__eq i32.eqz @@ -24453,9 +25441,9 @@ call $~lib/builtins/abort unreachable end - local.get $38 + local.get $423 call $~lib/array/Array#toString - local.tee $40 + local.tee $427 i32.const 7728 call $~lib/string/String.__eq i32.eqz @@ -24473,9 +25461,9 @@ i32.const 7760 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $35 + local.tee $430 call $~lib/array/Array#toString - local.tee $54 + local.tee $431 i32.const 7792 call $~lib/string/String.__eq i32.eqz @@ -24493,9 +25481,9 @@ i32.const 7824 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $37 + local.tee $434 call $~lib/array/Array#toString - local.tee $36 + local.tee $435 i32.const 7856 call $~lib/string/String.__eq i32.eqz @@ -24513,9 +25501,9 @@ i32.const 7904 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $32 + local.tee $438 call $~lib/array/Array#toString - local.tee $31 + local.tee $439 i32.const 7952 call $~lib/string/String.__eq i32.eqz @@ -24533,9 +25521,9 @@ i32.const 8016 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $34 + local.tee $442 call $~lib/array/Array#toString - local.tee $29 + local.tee $443 i32.const 8064 call $~lib/string/String.__eq i32.eqz @@ -24553,10 +25541,10 @@ i32.const 8176 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $49 - local.get $49 + local.set $446 + local.get $446 call $~lib/array/Array<~lib/string/String | null>#toString - local.tee $48 + local.tee $447 i32.const 8224 call $~lib/string/String.__eq i32.eqz @@ -24574,9 +25562,9 @@ i32.const 8336 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $50 + local.tee $450 call $~lib/array/Array<~lib/string/String | null>#toString - local.tee $51 + local.tee $451 i32.const 8368 call $~lib/string/String.__eq i32.eqz @@ -24594,11 +25582,11 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $33 - local.get $33 + local.set $452 + local.get $452 i32.load offset=4 - local.set $30 - local.get $30 + local.set $453 + local.get $453 i32.const 2 i32.const 2 i32.const 3 @@ -24606,7 +25594,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $30 + local.get $453 i32.const 2 i32.const 2 i32.const 3 @@ -24614,11 +25602,11 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 - local.get $33 - local.set $56 - local.get $56 + local.get $452 + local.set $458 + local.get $458 call $~lib/array/Array<~lib/array/Array>#toString - local.tee $30 + local.tee $459 i32.const 8464 call $~lib/string/String.__eq i32.eqz @@ -24636,11 +25624,11 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $33 - local.get $33 + local.set $460 + local.get $460 i32.load offset=4 - local.set $26 - local.get $26 + local.set $461 + local.get $461 i32.const 2 i32.const 0 i32.const 6 @@ -24648,7 +25636,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $26 + local.get $461 i32.const 2 i32.const 0 i32.const 6 @@ -24656,11 +25644,11 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 - local.get $33 - local.set $57 - local.get $57 + local.get $460 + local.set $466 + local.get $466 call $~lib/array/Array<~lib/array/Array>#toString - local.tee $26 + local.tee $467 i32.const 8464 call $~lib/string/String.__eq i32.eqz @@ -24678,22 +25666,22 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $33 - local.get $33 + local.set $468 + local.get $468 i32.load offset=4 - local.set $28 - local.get $28 + local.set $469 + local.get $469 i32.const 1 i32.const 2 i32.const 23 i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $27 - local.get $27 + local.set $470 + local.get $470 i32.load offset=4 - local.set $6 - local.get $6 + local.set $471 + local.get $471 i32.const 1 i32.const 2 i32.const 7 @@ -24701,13 +25689,13 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $27 + local.get $470 i32.store - local.get $33 - local.set $58 - local.get $58 + local.get $468 + local.set $474 + local.get $474 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString - local.tee $28 + local.tee $475 i32.const 7312 call $~lib/string/String.__eq i32.eqz @@ -24719,51 +25707,51 @@ call $~lib/builtins/abort unreachable end - local.get $47 + local.get $414 call $~lib/rt/pure/__release - local.get $43 + local.get $417 call $~lib/rt/pure/__release - local.get $41 + local.get $420 call $~lib/rt/pure/__release - local.get $38 + local.get $423 call $~lib/rt/pure/__release - local.get $44 + local.get $424 call $~lib/rt/pure/__release - local.get $42 + local.get $425 call $~lib/rt/pure/__release - local.get $39 + local.get $426 call $~lib/rt/pure/__release - local.get $40 + local.get $427 call $~lib/rt/pure/__release - local.get $35 + local.get $430 call $~lib/rt/pure/__release - local.get $54 + local.get $431 call $~lib/rt/pure/__release - local.get $37 + local.get $434 call $~lib/rt/pure/__release - local.get $36 + local.get $435 call $~lib/rt/pure/__release - local.get $32 + local.get $438 call $~lib/rt/pure/__release - local.get $31 + local.get $439 call $~lib/rt/pure/__release - local.get $34 + local.get $442 call $~lib/rt/pure/__release - local.get $29 + local.get $443 call $~lib/rt/pure/__release - local.get $49 + local.get $446 call $~lib/rt/pure/__release - local.get $48 + local.get $447 call $~lib/rt/pure/__release - local.get $50 + local.get $450 call $~lib/rt/pure/__release - local.get $51 + local.get $451 call $~lib/rt/pure/__release - local.get $30 + local.get $459 call $~lib/rt/pure/__release - local.get $26 + local.get $467 call $~lib/rt/pure/__release - local.get $28 + local.get $475 call $~lib/rt/pure/__release global.get $std/array/arr call $~lib/rt/pure/__release @@ -24773,11 +25761,11 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $28 - local.get $28 + local.set $476 + local.get $476 i32.load offset=4 - local.set $26 - local.get $26 + local.set $477 + local.get $477 i32.const 1 i32.const 2 i32.const 3 @@ -24785,7 +25773,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $26 + local.get $477 i32.const 3 i32.const 2 i32.const 3 @@ -24793,7 +25781,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 - local.get $26 + local.get $477 i32.const 3 i32.const 2 i32.const 3 @@ -24801,7 +25789,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=8 - local.get $26 + local.get $477 i32.const 3 i32.const 2 i32.const 3 @@ -24809,12 +25797,12 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=12 - local.get $28 - local.set $59 - local.get $59 + local.get $476 + local.set $486 + local.get $486 call $~lib/array/Array<~lib/array/Array>#flat - local.set $60 - local.get $60 + local.set $487 + local.get $487 call $~lib/array/Array#get:length i32.const 10 i32.eq @@ -24828,18 +25816,18 @@ unreachable end i32.const 0 - local.set $26 + local.set $488 loop $for-loop|1 - local.get $26 + local.get $488 i32.const 10 i32.lt_s - local.set $28 - local.get $28 + local.set $489 + local.get $489 if - local.get $60 - local.get $26 + local.get $487 + local.get $488 call $~lib/array/Array#__get - local.get $26 + local.get $488 i32.eq i32.eqz if @@ -24850,10 +25838,10 @@ call $~lib/builtins/abort unreachable end - local.get $26 + local.get $488 i32.const 1 i32.add - local.set $26 + local.set $488 br $for-loop|1 end end @@ -24863,11 +25851,11 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $26 - local.get $26 + local.set $490 + local.get $490 i32.load offset=4 - local.set $28 - local.get $28 + local.set $491 + local.get $491 i32.const 1 i32.const 2 i32.const 15 @@ -24875,7 +25863,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $28 + local.get $491 i32.const 3 i32.const 2 i32.const 15 @@ -24883,7 +25871,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 - local.get $28 + local.get $491 i32.const 3 i32.const 2 i32.const 15 @@ -24891,7 +25879,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=8 - local.get $28 + local.get $491 i32.const 1 i32.const 2 i32.const 15 @@ -24899,19 +25887,19 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=12 - local.get $26 - local.set $61 - local.get $61 + local.get $490 + local.set $500 + local.get $500 call $~lib/array/Array<~lib/array/Array<~lib/string/String | null>>#flat - local.set $62 + local.set $501 i32.const 8 i32.const 2 i32.const 15 i32.const 9072 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $63 - local.get $62 + local.set $504 + local.get $501 call $~lib/array/Array<~lib/string/String | null>#get:length i32.const 8 i32.eq @@ -24925,23 +25913,23 @@ unreachable end i32.const 0 - local.set $26 + local.set $505 loop $for-loop|2 - local.get $26 - local.get $63 + local.get $505 + local.get $504 call $~lib/array/Array<~lib/string/String | null>#get:length i32.lt_s - local.set $28 - local.get $28 + local.set $506 + local.get $506 if - local.get $62 - local.get $26 + local.get $501 + local.get $505 call $~lib/array/Array<~lib/string/String | null>#__get - local.tee $30 - local.get $63 - local.get $26 + local.tee $507 + local.get $504 + local.get $505 call $~lib/array/Array<~lib/string/String | null>#__get - local.tee $51 + local.tee $508 call $~lib/string/String.__eq i32.eqz if @@ -24952,14 +25940,14 @@ call $~lib/builtins/abort unreachable end - local.get $30 + local.get $507 call $~lib/rt/pure/__release - local.get $51 + local.get $508 call $~lib/rt/pure/__release - local.get $26 + local.get $505 i32.const 1 i32.add - local.set $26 + local.set $505 br $for-loop|2 end end @@ -24969,11 +25957,11 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $26 - local.get $26 + local.set $509 + local.get $509 i32.load offset=4 - local.set $28 - local.get $28 + local.set $510 + local.get $510 i32.const 0 i32.const 2 i32.const 3 @@ -24981,7 +25969,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $28 + local.get $510 i32.const 0 i32.const 2 i32.const 3 @@ -24989,11 +25977,11 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 - local.get $26 - local.set $28 - local.get $28 + local.get $509 + local.set $515 + local.get $515 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $26 + local.tee $516 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -25006,33 +25994,33 @@ call $~lib/builtins/abort unreachable end - local.get $28 + local.get $515 call $~lib/rt/pure/__release - local.get $26 + local.get $516 call $~lib/rt/pure/__release - local.get $45 + local.get $291 call $~lib/rt/pure/__release - local.get $46 + local.get $292 call $~lib/rt/pure/__release - local.get $52 + local.get $304 call $~lib/rt/pure/__release - local.get $53 + local.get $305 call $~lib/rt/pure/__release - local.get $56 + local.get $458 call $~lib/rt/pure/__release - local.get $57 + local.get $466 call $~lib/rt/pure/__release - local.get $58 + local.get $474 call $~lib/rt/pure/__release - local.get $59 + local.get $486 call $~lib/rt/pure/__release - local.get $60 + local.get $487 call $~lib/rt/pure/__release - local.get $61 + local.get $500 call $~lib/rt/pure/__release - local.get $62 + local.get $501 call $~lib/rt/pure/__release - local.get $63 + local.get $504 call $~lib/rt/pure/__release ) (func $~start diff --git a/tests/compiler/std/arraybuffer.untouched.wat b/tests/compiler/std/arraybuffer.untouched.wat index b20781886f..90b27aa916 100644 --- a/tests/compiler/std/arraybuffer.untouched.wat +++ b/tests/compiler/std/arraybuffer.untouched.wat @@ -56,6 +56,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -192,59 +201,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -274,6 +283,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -336,8 +359,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -348,16 +371,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -375,18 +398,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -398,7 +421,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -411,23 +434,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -441,14 +464,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -468,7 +491,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -486,24 +509,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -511,21 +534,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -541,86 +564,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -631,6 +654,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -770,11 +794,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -794,6 +818,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -850,66 +880,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -922,11 +952,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -975,6 +1005,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1048,11 +1086,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1063,10 +1101,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1079,30 +1117,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1113,45 +1151,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1160,6 +1198,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1206,15 +1245,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1228,12 +1267,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1243,6 +1282,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1307,11 +1348,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1319,11 +1360,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -1793,6 +1834,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -1812,11 +1935,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -1836,8 +1959,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -1946,17 +2069,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -1973,16 +2096,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -1992,45 +2115,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -2041,8 +2164,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -2127,31 +2250,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -2162,8 +2285,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -2248,17 +2371,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -2269,8 +2392,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -2357,227 +2480,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -2586,115 +2709,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -2703,59 +2826,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -2764,31 +2887,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -2797,17 +2920,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -2818,6 +2941,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -2895,11 +3026,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -2909,8 +3040,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -2934,21 +3065,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -2977,8 +3108,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -3003,8 +3134,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -3024,8 +3155,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -3050,6 +3181,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $0 call $~lib/arraybuffer/ArrayBuffer#get:byteLength local.set $3 @@ -3069,11 +3208,11 @@ select else local.get $1 - local.tee $4 + local.tee $6 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $7 + local.get $6 + local.get $7 i32.lt_s select end @@ -3085,20 +3224,20 @@ local.get $3 local.get $2 i32.add - local.tee $4 + local.tee $8 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 + local.tee $9 + local.get $8 + local.get $9 i32.gt_s select else local.get $2 - local.tee $4 + local.tee $10 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $11 + local.get $10 + local.get $11 i32.lt_s select end @@ -3106,29 +3245,30 @@ local.get $2 local.get $1 i32.sub - local.tee $4 + local.tee $12 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 + local.tee $13 + local.get $12 + local.get $13 i32.gt_s select - local.set $6 - local.get $6 + local.set $14 + local.get $14 i32.const 0 call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 + local.set $15 + local.get $15 local.get $0 local.get $1 i32.add - local.get $6 + local.get $14 call $~lib/memory/memory.copy - local.get $7 + local.get $15 call $~lib/rt/pure/__retain ) (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/array/Array | null> (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3170,10 +3310,10 @@ i32.const 0 drop i32.const 0 - local.set $1 + local.set $2 local.get $0 call $~lib/rt/pure/__release - local.get $1 + local.get $2 ) (func $~lib/arraybuffer/ArrayBuffer.isView (param $0 i32) (result i32) i32.const 0 @@ -3206,6 +3346,7 @@ ) (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array | null> (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3227,14 +3368,15 @@ i32.const 1 drop i32.const 1 - local.set $1 + local.set $2 local.get $0 call $~lib/rt/pure/__release - local.get $1 + local.get $2 return ) (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array | null> (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3264,14 +3406,15 @@ i32.const 1 drop i32.const 1 - local.set $1 + local.set $2 local.get $0 call $~lib/rt/pure/__release - local.get $1 + local.get $2 return ) (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView | null> (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3313,10 +3456,10 @@ i32.const 1 drop i32.const 1 - local.set $1 + local.set $2 local.get $0 call $~lib/rt/pure/__release - local.get $1 + local.get $2 return ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -3708,6 +3851,15 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) i32.const 0 i32.const 8 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -3781,10 +3933,10 @@ i32.const -1 i32.const 1073741808 call $~lib/arraybuffer/ArrayBuffer#slice - local.set $2 + local.set $3 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $3 local.set $1 local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -3803,10 +3955,10 @@ i32.const 1 i32.const 3 call $~lib/arraybuffer/ArrayBuffer#slice - local.set $2 + local.set $4 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $4 local.set $1 local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -3825,10 +3977,10 @@ i32.const 1 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice - local.set $2 + local.set $5 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $5 local.set $1 local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -3847,10 +3999,10 @@ i32.const -3 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice - local.set $2 + local.set $6 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $6 local.set $1 local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -3869,10 +4021,10 @@ i32.const -4 i32.const 42 call $~lib/arraybuffer/ArrayBuffer#slice - local.set $2 + local.set $7 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $7 local.set $1 local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -3891,10 +4043,10 @@ i32.const 42 i32.const 1073741808 call $~lib/arraybuffer/ArrayBuffer#slice - local.set $2 + local.set $8 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $8 local.set $1 local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -3996,14 +4148,14 @@ i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#constructor - local.set $2 + local.set $9 i32.const 2 i32.const 2 i32.const 3 i32.const 368 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $12 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/array/Array> i32.eqz i32.eqz @@ -4015,7 +4167,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $9 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array> i32.eqz if @@ -4029,7 +4181,7 @@ i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#constructor - local.tee $3 + local.tee $13 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array> i32.eqz if @@ -4041,14 +4193,14 @@ unreachable end i32.const 0 - local.get $2 + local.get $9 i32.load i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/dataview/DataView#constructor@varargs - local.tee $5 + local.tee $14 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView> i32.eqz if @@ -4063,13 +4215,13 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $12 call $~lib/rt/pure/__release - local.get $3 + local.get $13 call $~lib/rt/pure/__release - local.get $5 + local.get $14 call $~lib/rt/pure/__release ) (func $~start diff --git a/tests/compiler/std/dataview.untouched.wat b/tests/compiler/std/dataview.untouched.wat index 8012d1d20a..90f1bf0c48 100644 --- a/tests/compiler/std/dataview.untouched.wat +++ b/tests/compiler/std/dataview.untouched.wat @@ -64,6 +64,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -200,59 +209,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -282,6 +291,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -344,8 +367,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -356,16 +379,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -383,18 +406,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -406,7 +429,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -419,23 +442,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -449,14 +472,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -476,7 +499,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -494,24 +517,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -519,21 +542,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -549,86 +572,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -639,6 +662,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -778,11 +802,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -802,6 +826,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -858,66 +888,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -930,11 +960,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -983,6 +1013,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1056,11 +1094,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1071,10 +1109,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1087,30 +1125,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1121,45 +1159,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1168,6 +1206,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1214,15 +1253,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1236,12 +1275,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1251,6 +1290,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1315,11 +1356,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1327,11 +1368,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 diff --git a/tests/compiler/std/date.untouched.wat b/tests/compiler/std/date.untouched.wat index 1455f2e847..a2d0f8effb 100644 --- a/tests/compiler/std/date.untouched.wat +++ b/tests/compiler/std/date.untouched.wat @@ -28,6 +28,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -58,8 +59,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -170,6 +171,20 @@ (local $4 i32) (local $5 i32) (local $6 i64) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i64) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) i32.const 1970 local.set $2 i32.const 0 @@ -206,26 +221,26 @@ unreachable end i32.const 1970 - local.set $5 + local.set $13 i32.const 0 - local.set $4 + local.set $12 i32.const 1 - local.set $3 + local.set $11 i32.const 0 - local.set $2 + local.set $10 i32.const 0 - local.set $1 + local.set $9 i32.const 0 - local.set $0 + local.set $8 i64.const 0 - local.set $6 - local.get $5 - local.get $4 - local.get $3 - local.get $2 - local.get $1 - local.get $0 - local.get $6 + local.set $7 + local.get $13 + local.get $12 + local.get $11 + local.get $10 + local.get $9 + local.get $8 + local.get $7 f64.convert_i64_s call $~lib/bindings/Date/UTC i64.trunc_f64_s @@ -241,26 +256,26 @@ unreachable end i32.const 2018 - local.set $5 + local.set $20 i32.const 10 - local.set $4 + local.set $19 i32.const 10 - local.set $3 + local.set $18 i32.const 11 - local.set $2 + local.set $17 i32.const 0 - local.set $1 + local.set $16 i32.const 0 - local.set $0 + local.set $15 i64.const 1 - local.set $6 - local.get $5 - local.get $4 - local.get $3 - local.get $2 - local.get $1 - local.get $0 - local.get $6 + local.set $14 + local.get $20 + local.get $19 + local.get $18 + local.get $17 + local.get $16 + local.get $15 + local.get $14 f64.convert_i64_s call $~lib/bindings/Date/UTC i64.trunc_f64_s diff --git a/tests/compiler/std/hash.untouched.wat b/tests/compiler/std/hash.untouched.wat index 542717b87e..db6dd112f5 100644 --- a/tests/compiler/std/hash.untouched.wat +++ b/tests/compiler/std/hash.untouched.wat @@ -30,6 +30,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -71,10 +72,10 @@ end end local.get $1 - local.set $3 + local.set $5 local.get $0 call $~lib/rt/stub/__release - local.get $3 + local.get $5 ) (func $std/hash/check (param $0 i32) (result i32) i32.const 1 @@ -212,8 +213,26 @@ (func $start:std/hash (local $0 i32) (local $1 i32) - (local $2 f32) - (local $3 f64) + (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 f32) + (local $11 f32) + (local $12 f32) + (local $13 f32) + (local $14 f32) + (local $15 f32) + (local $16 f64) + (local $17 f64) + (local $18 f64) + (local $19 f64) + (local $20 f64) + (local $21 f64) block $~lib/util/hash/HASH<~lib/string/String | null>|inlined.0 (result i32) i32.const 0 call $~lib/rt/stub/__retain @@ -232,67 +251,67 @@ drop block $~lib/util/hash/HASH<~lib/string/String>|inlined.0 (result i32) i32.const 32 - local.set $1 + local.set $2 i32.const 1 drop - local.get $1 + local.get $2 call $~lib/util/hash/hashStr - local.set $0 - local.get $1 + local.set $3 + local.get $2 call $~lib/rt/stub/__release - local.get $0 + local.get $3 br $~lib/util/hash/HASH<~lib/string/String>|inlined.0 end call $std/hash/check drop block $~lib/util/hash/HASH<~lib/string/String>|inlined.1 (result i32) i32.const 48 - local.set $0 + local.set $4 i32.const 1 drop - local.get $0 + local.get $4 call $~lib/util/hash/hashStr - local.set $1 - local.get $0 + local.set $5 + local.get $4 call $~lib/rt/stub/__release - local.get $1 + local.get $5 br $~lib/util/hash/HASH<~lib/string/String>|inlined.1 end call $std/hash/check drop block $~lib/util/hash/HASH<~lib/string/String>|inlined.2 (result i32) i32.const 80 - local.set $1 + local.set $6 i32.const 1 drop - local.get $1 + local.get $6 call $~lib/util/hash/hashStr - local.set $0 - local.get $1 + local.set $7 + local.get $6 call $~lib/rt/stub/__release - local.get $0 + local.get $7 br $~lib/util/hash/HASH<~lib/string/String>|inlined.2 end call $std/hash/check drop block $~lib/util/hash/HASH<~lib/string/String>|inlined.3 (result i32) i32.const 112 - local.set $0 + local.set $8 i32.const 1 drop - local.get $0 + local.get $8 call $~lib/util/hash/hashStr - local.set $1 - local.get $0 + local.set $9 + local.get $8 call $~lib/rt/stub/__release - local.get $1 + local.get $9 br $~lib/util/hash/HASH<~lib/string/String>|inlined.3 end call $std/hash/check drop block $~lib/util/hash/HASH|inlined.0 (result i32) f32.const 0 - local.set $2 + local.set $10 i32.const 0 drop i32.const 0 @@ -303,7 +322,7 @@ i32.const 4 i32.eq drop - local.get $2 + local.get $10 i32.reinterpret_f32 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.0 @@ -312,7 +331,7 @@ drop block $~lib/util/hash/HASH|inlined.1 (result i32) f32.const 1 - local.set $2 + local.set $11 i32.const 0 drop i32.const 0 @@ -323,7 +342,7 @@ i32.const 4 i32.eq drop - local.get $2 + local.get $11 i32.reinterpret_f32 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.1 @@ -332,7 +351,7 @@ drop block $~lib/util/hash/HASH|inlined.2 (result i32) f32.const 1.100000023841858 - local.set $2 + local.set $12 i32.const 0 drop i32.const 0 @@ -343,7 +362,7 @@ i32.const 4 i32.eq drop - local.get $2 + local.get $12 i32.reinterpret_f32 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.2 @@ -352,7 +371,7 @@ drop block $~lib/util/hash/HASH|inlined.3 (result i32) f32.const 0 - local.set $2 + local.set $13 i32.const 0 drop i32.const 0 @@ -363,7 +382,7 @@ i32.const 4 i32.eq drop - local.get $2 + local.get $13 i32.reinterpret_f32 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.3 @@ -372,7 +391,7 @@ drop block $~lib/util/hash/HASH|inlined.4 (result i32) f32.const inf - local.set $2 + local.set $14 i32.const 0 drop i32.const 0 @@ -383,7 +402,7 @@ i32.const 4 i32.eq drop - local.get $2 + local.get $14 i32.reinterpret_f32 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.4 @@ -392,7 +411,7 @@ drop block $~lib/util/hash/HASH|inlined.5 (result i32) f32.const nan:0x400000 - local.set $2 + local.set $15 i32.const 0 drop i32.const 0 @@ -403,7 +422,7 @@ i32.const 4 i32.eq drop - local.get $2 + local.get $15 i32.reinterpret_f32 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.5 @@ -412,7 +431,7 @@ drop block $~lib/util/hash/HASH|inlined.0 (result i32) f64.const 0 - local.set $3 + local.set $16 i32.const 0 drop i32.const 0 @@ -427,7 +446,7 @@ i32.const 8 i32.eq drop - local.get $3 + local.get $16 i64.reinterpret_f64 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.0 @@ -436,7 +455,7 @@ drop block $~lib/util/hash/HASH|inlined.1 (result i32) f64.const 1 - local.set $3 + local.set $17 i32.const 0 drop i32.const 0 @@ -451,7 +470,7 @@ i32.const 8 i32.eq drop - local.get $3 + local.get $17 i64.reinterpret_f64 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.1 @@ -460,7 +479,7 @@ drop block $~lib/util/hash/HASH|inlined.2 (result i32) f64.const 1.1 - local.set $3 + local.set $18 i32.const 0 drop i32.const 0 @@ -475,7 +494,7 @@ i32.const 8 i32.eq drop - local.get $3 + local.get $18 i64.reinterpret_f64 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.2 @@ -484,7 +503,7 @@ drop block $~lib/util/hash/HASH|inlined.3 (result i32) f64.const 0 - local.set $3 + local.set $19 i32.const 0 drop i32.const 0 @@ -499,7 +518,7 @@ i32.const 8 i32.eq drop - local.get $3 + local.get $19 i64.reinterpret_f64 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.3 @@ -508,7 +527,7 @@ drop block $~lib/util/hash/HASH|inlined.4 (result i32) f64.const inf - local.set $3 + local.set $20 i32.const 0 drop i32.const 0 @@ -523,7 +542,7 @@ i32.const 8 i32.eq drop - local.get $3 + local.get $20 i64.reinterpret_f64 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.4 @@ -532,7 +551,7 @@ drop block $~lib/util/hash/HASH|inlined.5 (result i32) f64.const nan:0x8000000000000 - local.set $3 + local.set $21 i32.const 0 drop i32.const 0 @@ -547,7 +566,7 @@ i32.const 8 i32.eq drop - local.get $3 + local.get $21 i64.reinterpret_f64 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.5 diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index a73ceeae40..c7cfd341a5 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -38401,10 +38401,8 @@ call $~lib/bindings/Math/random i64.reinterpret_f64 call $~lib/math/NativeMath.seedRandom - i32.const 0 - local.set $2 loop $for-loop|1 - local.get $2 + local.get $5 f64.convert_i32_s f64.const 1e6 f64.lt @@ -38417,11 +38415,11 @@ call $~lib/math/NativeMath.seedRandom end global.get $~lib/math/random_state0_32 - local.tee $5 + local.tee $2 global.get $~lib/math/random_state1_32 i32.xor local.tee $6 - local.get $5 + local.get $2 i32.const 26 i32.rotl i32.xor @@ -38434,7 +38432,7 @@ i32.const 13 i32.rotl global.set $~lib/math/random_state1_32 - local.get $5 + local.get $2 i32.const -1640531525 i32.mul i32.const 5 @@ -38465,10 +38463,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $5 i32.const 1 i32.add - local.set $2 + local.set $5 br $for-loop|1 end end diff --git a/tests/compiler/std/math.untouched.wat b/tests/compiler/std/math.untouched.wat index 7ee6e66b0b..685a0fb3a9 100644 --- a/tests/compiler/std/math.untouched.wat +++ b/tests/compiler/std/math.untouched.wat @@ -156,6 +156,8 @@ (local $2 f64) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 local.set $2 local.get $1 @@ -222,11 +224,11 @@ i32.add i32.const 53 i32.sub - local.tee $3 + local.tee $5 i32.const -1022 - local.tee $4 - local.get $3 - local.get $4 + local.tee $6 + local.get $5 + local.get $6 i32.gt_s select local.set $1 @@ -245,6 +247,7 @@ ) (func $std/math/ulperr (param $0 f64) (param $1 f64) (param $2 f64) (result f64) (local $3 f64) + (local $4 f64) local.get $0 local.get $0 f64.ne @@ -277,14 +280,14 @@ i32.const 0 i32.ne local.get $1 - local.set $3 - local.get $3 + local.set $4 + local.get $4 i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 - local.get $3 - local.get $3 + local.get $4 + local.get $4 f64.eq i32.and i32.const 0 @@ -391,6 +394,8 @@ (local $2 f32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 local.set $2 local.get $1 @@ -457,11 +462,11 @@ i32.add i32.const 24 i32.sub - local.tee $3 + local.tee $5 i32.const -126 - local.tee $4 - local.get $3 - local.get $4 + local.tee $6 + local.get $5 + local.get $6 i32.gt_s select local.set $1 @@ -479,6 +484,7 @@ ) (func $std/math/ulperrf (param $0 f32) (param $1 f32) (param $2 f32) (result f32) (local $3 f32) + (local $4 f32) local.get $0 local.get $0 f32.ne @@ -510,13 +516,13 @@ i32.const 0 i32.ne local.get $1 - local.set $3 - local.get $3 + local.set $4 + local.get $4 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $3 - local.get $3 + local.get $4 + local.get $4 f32.eq i32.and i32.const 0 @@ -1314,6 +1320,15 @@ (local $16 i64) (local $17 f64) (local $18 f64) + (local $19 f64) + (local $20 f64) + (local $21 f64) + (local $22 f64) + (local $23 f64) + (local $24 f64) + (local $25 f64) + (local $26 f64) + (local $27 f64) i32.const 0 i32.const 1 i32.lt_s @@ -1532,7 +1547,7 @@ i32.shl i32.add f64.load - local.set $11 + local.set $17 i32.const 56 local.get $14 i32.const 1 @@ -1541,10 +1556,10 @@ i32.shl i32.add f64.load offset=8 - local.set $10 + local.set $18 local.get $16 f64.reinterpret_i64 - local.set $9 + local.set $19 i32.const 2104 local.get $14 i32.const 1 @@ -1553,7 +1568,7 @@ i32.shl i32.add f64.load - local.set $8 + local.set $20 i32.const 2104 local.get $14 i32.const 1 @@ -1562,58 +1577,58 @@ i32.shl i32.add f64.load offset=8 - local.set $7 - local.get $9 - local.get $8 + local.set $21 + local.get $19 + local.get $20 f64.sub - local.get $7 + local.get $21 f64.sub - local.get $11 + local.get $17 f64.mul - local.set $6 + local.set $22 local.get $15 f64.convert_i64_s - local.set $5 - local.get $5 + local.set $23 + local.get $23 f64.const 0.6931471805598903 f64.mul - local.get $10 + local.get $18 f64.add - local.set $4 - local.get $4 - local.get $6 + local.set $24 + local.get $24 + local.get $22 f64.add - local.set $3 - local.get $4 - local.get $3 + local.set $25 + local.get $24 + local.get $25 f64.sub - local.get $6 + local.get $22 f64.add - local.get $5 + local.get $23 f64.const 5.497923018708371e-14 f64.mul f64.add - local.set $17 - local.get $6 - local.get $6 + local.set $26 + local.get $22 + local.get $22 f64.mul - local.set $18 - local.get $17 - local.get $18 + local.set $27 + local.get $26 + local.get $27 f64.const -0.5000000000000001 f64.mul f64.add - local.get $6 - local.get $18 + local.get $22 + local.get $27 f64.mul f64.const 0.33333333331825593 - local.get $6 + local.get $22 f64.const -0.2499999999622955 f64.mul f64.add - local.get $18 + local.get $27 f64.const 0.20000304511814496 - local.get $6 + local.get $22 f64.const -0.16667054827627667 f64.mul f64.add @@ -1621,7 +1636,7 @@ f64.add f64.mul f64.add - local.get $3 + local.get $25 f64.add end return @@ -3329,6 +3344,8 @@ (local $8 i32) (local $9 f64) (local $10 f64) + (local $11 f64) + (local $12 i32) local.get $1 local.get $1 f64.ne @@ -3506,15 +3523,15 @@ else f64.const 0 end - local.set $9 + local.set $10 local.get $7 i32.const 1 i32.and if (result f64) - local.get $9 + local.get $10 f64.neg else - local.get $9 + local.get $10 end return end @@ -3566,14 +3583,14 @@ end if f64.const 0 - local.set $10 + local.set $11 else local.get $0 local.get $1 f64.div f64.abs call $~lib/math/NativeMath.atan - local.set $10 + local.set $11 end block $break|1 block $case3|1 @@ -3581,40 +3598,40 @@ block $case1|1 block $case0|1 local.get $7 - local.set $8 - local.get $8 + local.set $12 + local.get $12 i32.const 0 i32.eq br_if $case0|1 - local.get $8 + local.get $12 i32.const 1 i32.eq br_if $case1|1 - local.get $8 + local.get $12 i32.const 2 i32.eq br_if $case2|1 - local.get $8 + local.get $12 i32.const 3 i32.eq br_if $case3|1 br $break|1 end - local.get $10 + local.get $11 return end - local.get $10 + local.get $11 f64.neg return end global.get $~lib/math/NativeMath.PI - local.get $10 + local.get $11 f64.const 1.2246467991473532e-16 f64.sub f64.sub return end - local.get $10 + local.get $11 f64.const 1.2246467991473532e-16 f64.sub global.get $~lib/math/NativeMath.PI @@ -3656,6 +3673,8 @@ (local $5 i32) (local $6 f32) (local $7 f32) + (local $8 f32) + (local $9 i32) local.get $1 local.get $1 f32.ne @@ -3808,15 +3827,15 @@ else f32.const 0 end - local.set $6 + local.set $7 local.get $4 i32.const 1 i32.and if (result f32) - local.get $6 + local.get $7 f32.neg else - local.get $6 + local.get $7 end return end @@ -3868,14 +3887,14 @@ end if f32.const 0 - local.set $7 + local.set $8 else local.get $0 local.get $1 f32.div f32.abs call $~lib/math/NativeMathf.atan - local.set $7 + local.set $8 end block $break|1 block $case3|1 @@ -3883,40 +3902,40 @@ block $case1|1 block $case0|1 local.get $4 - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.const 0 i32.eq br_if $case0|1 - local.get $5 + local.get $9 i32.const 1 i32.eq br_if $case1|1 - local.get $5 + local.get $9 i32.const 2 i32.eq br_if $case2|1 - local.get $5 + local.get $9 i32.const 3 i32.eq br_if $case3|1 br $break|1 end - local.get $7 + local.get $8 return end - local.get $7 + local.get $8 f32.neg return end f32.const 3.1415927410125732 - local.get $7 + local.get $8 f32.const -8.742277657347586e-08 f32.sub f32.sub return end - local.get $7 + local.get $8 f32.const -8.742277657347586e-08 f32.sub f32.const 3.1415927410125732 @@ -4299,7 +4318,21 @@ (local $33 i64) (local $34 i64) (local $35 i64) - (local $36 f64) + (local $36 i64) + (local $37 i64) + (local $38 i64) + (local $39 i64) + (local $40 i64) + (local $41 i64) + (local $42 i64) + (local $43 i64) + (local $44 i64) + (local $45 i64) + (local $46 i64) + (local $47 i64) + (local $48 i64) + (local $49 i64) + (local $50 f64) local.get $1 i64.const 9223372036854775807 i64.and @@ -4383,75 +4416,75 @@ i64.or local.set $14 local.get $7 - local.set $13 + local.set $16 local.get $14 - local.set $12 - local.get $13 + local.set $15 + local.get $16 i64.const 4294967295 i64.and - local.set $15 - local.get $12 + local.set $17 + local.get $15 i64.const 4294967295 i64.and - local.set $16 - local.get $13 + local.set $18 + local.get $16 i64.const 32 i64.shr_u - local.set $13 - local.get $12 + local.set $16 + local.get $15 i64.const 32 i64.shr_u - local.set $12 - local.get $15 - local.get $16 + local.set $15 + local.get $17 + local.get $18 i64.mul - local.set $19 - local.get $19 + local.set $21 + local.get $21 i64.const 4294967295 i64.and - local.set $17 - local.get $13 + local.set $19 local.get $16 + local.get $18 i64.mul - local.get $19 + local.get $21 i64.const 32 i64.shr_u i64.add - local.set $19 - local.get $19 + local.set $21 + local.get $21 i64.const 32 i64.shr_u - local.set $18 + local.set $20 + local.get $17 local.get $15 - local.get $12 i64.mul - local.get $19 + local.get $21 i64.const 4294967295 i64.and i64.add - local.set $19 - local.get $13 - local.get $12 + local.set $21 + local.get $16 + local.get $15 i64.mul - local.get $18 + local.get $20 i64.add - local.get $19 + local.get $21 i64.const 32 i64.shr_u i64.add global.set $~lib/math/res128_hi - local.get $19 + local.get $21 i64.const 32 i64.shl - local.get $17 + local.get $19 i64.add - local.set $20 + local.set $22 global.get $~lib/math/res128_hi - local.set $21 + local.set $23 local.get $6 local.get $14 i64.mul - local.set $22 + local.set $24 local.get $8 i64.const 32 i64.shr_u @@ -4459,207 +4492,207 @@ i64.const 32 i64.shr_s i64.mul - local.set $23 - local.get $20 - local.get $23 - i64.add - local.set $24 + local.set $25 local.get $22 - local.get $21 + local.get $25 i64.add + local.set $26 local.get $24 local.get $23 + i64.add + local.get $26 + local.get $25 i64.lt_u i64.extend_i32_u i64.add - local.set $25 - local.get $24 + local.set $27 + local.get $26 i64.const 2 i64.shl - local.set $26 - local.get $25 + local.set $28 + local.get $27 i64.const 2 i64.shl - local.get $24 + local.get $26 i64.const 62 i64.shr_u i64.or - local.set $27 - local.get $27 + local.set $29 + local.get $29 i64.const 63 i64.shr_s - local.set $28 - local.get $28 + local.set $30 + local.get $30 i64.const 1 i64.shr_s - local.set $29 - local.get $25 + local.set $31 + local.get $27 i64.const 62 i64.shr_s - local.get $28 + local.get $30 i64.sub - local.set $30 + local.set $32 i64.const 4372995238176751616 - local.get $26 local.get $28 + local.get $30 i64.xor - local.set $13 - local.get $27 + local.set $34 local.get $29 + local.get $31 i64.xor - local.set $12 - local.get $12 + local.set $33 + local.get $33 i64.clz - local.set $19 - local.get $12 - local.get $19 + local.set $35 + local.get $33 + local.get $35 i64.shl - local.get $13 + local.get $34 i64.const 64 - local.get $19 + local.get $35 i64.sub i64.shr_u i64.or - local.set $12 - local.get $13 - local.get $19 + local.set $33 + local.get $34 + local.get $35 i64.shl - local.set $13 + local.set $34 i64.const -3958705157555305932 - local.set $16 - local.get $12 - local.set $15 - local.get $16 + local.set $37 + local.get $33 + local.set $36 + local.get $37 i64.const 4294967295 i64.and - local.set $18 - local.get $15 + local.set $38 + local.get $36 i64.const 4294967295 i64.and - local.set $17 - local.get $16 + local.set $39 + local.get $37 i64.const 32 i64.shr_u - local.set $16 - local.get $15 + local.set $37 + local.get $36 i64.const 32 i64.shr_u - local.set $15 - local.get $18 - local.get $17 + local.set $36 + local.get $38 + local.get $39 i64.mul - local.set $33 - local.get $33 + local.set $42 + local.get $42 i64.const 4294967295 i64.and - local.set $31 - local.get $16 - local.get $17 + local.set $40 + local.get $37 + local.get $39 i64.mul - local.get $33 + local.get $42 i64.const 32 i64.shr_u i64.add - local.set $33 - local.get $33 + local.set $42 + local.get $42 i64.const 32 i64.shr_u - local.set $32 - local.get $18 - local.get $15 + local.set $41 + local.get $38 + local.get $36 i64.mul - local.get $33 + local.get $42 i64.const 4294967295 i64.and i64.add - local.set $33 - local.get $16 - local.get $15 + local.set $42 + local.get $37 + local.get $36 i64.mul - local.get $32 + local.get $41 i64.add - local.get $33 + local.get $42 i64.const 32 i64.shr_u i64.add global.set $~lib/math/res128_hi - local.get $33 + local.get $42 i64.const 32 i64.shl - local.get $31 + local.get $40 i64.add - local.set $33 + local.set $43 global.get $~lib/math/res128_hi - local.set $32 - local.get $32 + local.set $44 + local.get $44 i64.const 11 i64.shr_u - local.set $31 - local.get $33 + local.set $45 + local.get $43 i64.const 11 i64.shr_u - local.get $32 + local.get $44 i64.const 53 i64.shl i64.or - local.set $17 + local.set $46 f64.const 2.6469779601696886e-23 i64.const -4267615245585081135 f64.convert_i64_u f64.mul - local.get $12 + local.get $33 f64.convert_i64_u f64.mul f64.const 2.6469779601696886e-23 i64.const -3958705157555305932 f64.convert_i64_u f64.mul - local.get $13 + local.get $34 f64.convert_i64_u f64.mul f64.add i64.trunc_f64_u - local.set $18 - local.get $31 - local.get $33 - local.get $18 + local.set $47 + local.get $45 + local.get $43 + local.get $47 i64.lt_u i64.extend_i32_u i64.add f64.convert_i64_u global.set $~lib/math/rempio2_y0 f64.const 5.421010862427522e-20 - local.get $17 - local.get $18 + local.get $46 + local.get $47 i64.add f64.convert_i64_u f64.mul global.set $~lib/math/rempio2_y1 - local.get $19 + local.get $35 i64.const 52 i64.shl i64.sub - local.set $34 + local.set $48 local.get $1 - local.get $27 + local.get $29 i64.xor i64.const -9223372036854775808 i64.and - local.set $35 - local.get $34 - local.get $35 + local.set $49 + local.get $48 + local.get $49 i64.or f64.reinterpret_i64 - local.set $36 + local.set $50 global.get $~lib/math/rempio2_y0 - local.get $36 + local.get $50 f64.mul global.set $~lib/math/rempio2_y0 global.get $~lib/math/rempio2_y1 - local.get $36 + local.get $50 f64.mul global.set $~lib/math/rempio2_y1 - local.get $30 + local.get $32 i32.wrap_i64 ) (func $~lib/math/NativeMath.cos (param $0 f64) (result f64) @@ -4674,14 +4707,39 @@ (local $9 f64) (local $10 i32) (local $11 i64) - (local $12 i32) + (local $12 f64) (local $13 i32) (local $14 i32) - (local $15 i32) + (local $15 f64) (local $16 f64) - (local $17 i32) + (local $17 f64) (local $18 f64) (local $19 f64) + (local $20 f64) + (local $21 i32) + (local $22 f64) + (local $23 i32) + (local $24 i32) + (local $25 f64) + (local $26 f64) + (local $27 f64) + (local $28 i32) + (local $29 i32) + (local $30 f64) + (local $31 f64) + (local $32 i32) + (local $33 f64) + (local $34 f64) + (local $35 f64) + (local $36 f64) + (local $37 f64) + (local $38 f64) + (local $39 f64) + (local $40 f64) + (local $41 f64) + (local $42 f64) + (local $43 f64) + (local $44 f64) local.get $0 i64.reinterpret_f64 local.set $1 @@ -4783,7 +4841,7 @@ end block $~lib/math/rempio2|inlined.0 (result i32) local.get $0 - local.set $4 + local.set $12 local.get $1 local.set $11 local.get $3 @@ -4794,312 +4852,312 @@ i32.wrap_i64 i32.const 2147483647 i32.and - local.set $12 + local.set $13 i32.const 0 i32.const 1 i32.lt_s drop - local.get $12 + local.get $13 i32.const 1073928572 i32.lt_u if i32.const 1 - local.set $13 + local.set $14 local.get $10 i32.eqz if - local.get $4 + local.get $12 f64.const 1.5707963267341256 f64.sub - local.set $9 - local.get $12 + local.set $15 + local.get $13 i32.const 1073291771 i32.ne if - local.get $9 + local.get $15 f64.const 6.077100506506192e-11 f64.sub - local.set $8 - local.get $9 - local.get $8 + local.set $16 + local.get $15 + local.get $16 f64.sub f64.const 6.077100506506192e-11 f64.sub - local.set $7 + local.set $17 else - local.get $9 + local.get $15 f64.const 6.077100506303966e-11 f64.sub - local.set $9 - local.get $9 + local.set $15 + local.get $15 f64.const 2.0222662487959506e-21 f64.sub - local.set $8 - local.get $9 - local.get $8 + local.set $16 + local.get $15 + local.get $16 f64.sub f64.const 2.0222662487959506e-21 f64.sub - local.set $7 + local.set $17 end else - local.get $4 + local.get $12 f64.const 1.5707963267341256 f64.add - local.set $9 - local.get $12 + local.set $15 + local.get $13 i32.const 1073291771 i32.ne if - local.get $9 + local.get $15 f64.const 6.077100506506192e-11 f64.add - local.set $8 - local.get $9 - local.get $8 + local.set $16 + local.get $15 + local.get $16 f64.sub f64.const 6.077100506506192e-11 f64.add - local.set $7 + local.set $17 else - local.get $9 + local.get $15 f64.const 6.077100506303966e-11 f64.add - local.set $9 - local.get $9 + local.set $15 + local.get $15 f64.const 2.0222662487959506e-21 f64.add - local.set $8 - local.get $9 - local.get $8 + local.set $16 + local.get $15 + local.get $16 f64.sub f64.const 2.0222662487959506e-21 f64.add - local.set $7 + local.set $17 end i32.const -1 - local.set $13 + local.set $14 end - local.get $8 + local.get $16 global.set $~lib/math/rempio2_y0 - local.get $7 + local.get $17 global.set $~lib/math/rempio2_y1 - local.get $13 + local.get $14 br $~lib/math/rempio2|inlined.0 end - local.get $12 + local.get $13 i32.const 1094263291 i32.lt_u if - local.get $4 + local.get $12 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $7 - local.get $4 - local.get $7 + local.set $18 + local.get $12 + local.get $18 f64.const 1.5707963267341256 f64.mul f64.sub - local.set $8 - local.get $7 + local.set $19 + local.get $18 f64.const 6.077100506506192e-11 f64.mul - local.set $9 - local.get $12 + local.set $20 + local.get $13 i32.const 20 i32.shr_u - local.set $13 - local.get $8 - local.get $9 + local.set $21 + local.get $19 + local.get $20 f64.sub - local.set $6 - local.get $6 + local.set $22 + local.get $22 i64.reinterpret_f64 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $14 - local.get $13 - local.get $14 + local.set $23 + local.get $21 + local.get $23 i32.const 20 i32.shr_u i32.const 2047 i32.and i32.sub - local.set $15 - local.get $15 + local.set $24 + local.get $24 i32.const 16 i32.gt_u if - local.get $8 - local.set $5 - local.get $7 + local.get $19 + local.set $25 + local.get $18 f64.const 6.077100506303966e-11 f64.mul - local.set $9 - local.get $5 - local.get $9 + local.set $20 + local.get $25 + local.get $20 f64.sub - local.set $8 - local.get $7 + local.set $19 + local.get $18 f64.const 2.0222662487959506e-21 f64.mul - local.get $5 - local.get $8 + local.get $25 + local.get $19 f64.sub - local.get $9 + local.get $20 f64.sub f64.sub - local.set $9 - local.get $8 - local.get $9 + local.set $20 + local.get $19 + local.get $20 f64.sub - local.set $6 - local.get $6 + local.set $22 + local.get $22 i64.reinterpret_f64 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $14 - local.get $13 - local.get $14 + local.set $23 + local.get $21 + local.get $23 i32.const 20 i32.shr_u i32.const 2047 i32.and i32.sub - local.set $15 - local.get $15 + local.set $24 + local.get $24 i32.const 49 i32.gt_u if - local.get $8 - local.set $16 - local.get $7 + local.get $19 + local.set $26 + local.get $18 f64.const 2.0222662487111665e-21 f64.mul - local.set $9 - local.get $16 - local.get $9 + local.set $20 + local.get $26 + local.get $20 f64.sub - local.set $8 - local.get $7 + local.set $19 + local.get $18 f64.const 8.4784276603689e-32 f64.mul - local.get $16 - local.get $8 + local.get $26 + local.get $19 f64.sub - local.get $9 + local.get $20 f64.sub f64.sub - local.set $9 - local.get $8 - local.get $9 + local.set $20 + local.get $19 + local.get $20 f64.sub - local.set $6 + local.set $22 end end - local.get $8 - local.get $6 + local.get $19 + local.get $22 f64.sub - local.get $9 + local.get $20 f64.sub - local.set $5 - local.get $6 + local.set $27 + local.get $22 global.set $~lib/math/rempio2_y0 - local.get $5 + local.get $27 global.set $~lib/math/rempio2_y1 - local.get $7 + local.get $18 i32.trunc_f64_s br $~lib/math/rempio2|inlined.0 end - local.get $4 + local.get $12 local.get $11 call $~lib/math/pio2_large_quot - local.set $15 + local.set $28 i32.const 0 - local.get $15 + local.get $28 i32.sub - local.get $15 + local.get $28 local.get $10 select end - local.set $17 + local.set $29 global.get $~lib/math/rempio2_y0 - local.set $18 + local.set $30 global.get $~lib/math/rempio2_y1 - local.set $19 - local.get $17 + local.set $31 + local.get $29 i32.const 1 i32.and if (result f64) block $~lib/math/sin_kern|inlined.0 (result f64) - local.get $18 - local.set $7 - local.get $19 - local.set $16 + local.get $30 + local.set $34 + local.get $31 + local.set $33 i32.const 1 - local.set $13 - local.get $7 - local.get $7 + local.set $32 + local.get $34 + local.get $34 f64.mul - local.set $4 - local.get $4 - local.get $4 + local.set $35 + local.get $35 + local.get $35 f64.mul - local.set $5 + local.set $36 f64.const 0.00833333333332249 - local.get $4 + local.get $35 f64.const -1.984126982985795e-04 - local.get $4 + local.get $35 f64.const 2.7557313707070068e-06 f64.mul f64.add f64.mul f64.add - local.get $4 - local.get $5 + local.get $35 + local.get $36 f64.mul f64.const -2.5050760253406863e-08 - local.get $4 + local.get $35 f64.const 1.58969099521155e-10 f64.mul f64.add f64.mul f64.add - local.set $6 - local.get $4 - local.get $7 + local.set $37 + local.get $35 + local.get $34 f64.mul - local.set $9 - local.get $13 + local.set $38 + local.get $32 i32.eqz if - local.get $7 - local.get $9 + local.get $34 + local.get $38 f64.const -0.16666666666666632 - local.get $4 - local.get $6 + local.get $35 + local.get $37 f64.mul f64.add f64.mul f64.add br $~lib/math/sin_kern|inlined.0 else - local.get $7 - local.get $4 + local.get $34 + local.get $35 f64.const 0.5 - local.get $16 + local.get $33 f64.mul - local.get $9 - local.get $6 + local.get $38 + local.get $37 f64.mul f64.sub f64.mul - local.get $16 + local.get $33 f64.sub - local.get $9 + local.get $38 f64.const -0.16666666666666632 f64.mul f64.sub @@ -5109,36 +5167,36 @@ unreachable end else - local.get $18 - local.set $16 - local.get $19 - local.set $8 - local.get $16 - local.get $16 + local.get $30 + local.set $40 + local.get $31 + local.set $39 + local.get $40 + local.get $40 f64.mul - local.set $9 - local.get $9 - local.get $9 + local.set $41 + local.get $41 + local.get $41 f64.mul - local.set $6 - local.get $9 + local.set $42 + local.get $41 f64.const 0.0416666666666666 - local.get $9 + local.get $41 f64.const -0.001388888888887411 - local.get $9 + local.get $41 f64.const 2.480158728947673e-05 f64.mul f64.add f64.mul f64.add f64.mul - local.get $6 - local.get $6 + local.get $42 + local.get $42 f64.mul f64.const -2.7557314351390663e-07 - local.get $9 + local.get $41 f64.const 2.087572321298175e-09 - local.get $9 + local.get $41 f64.const -1.1359647557788195e-11 f64.mul f64.add @@ -5146,33 +5204,33 @@ f64.add f64.mul f64.add - local.set $5 + local.set $43 f64.const 0.5 - local.get $9 + local.get $41 f64.mul - local.set $4 + local.set $44 f64.const 1 - local.get $4 + local.get $44 f64.sub - local.set $6 - local.get $6 + local.set $42 + local.get $42 f64.const 1 - local.get $6 + local.get $42 f64.sub - local.get $4 + local.get $44 f64.sub - local.get $9 - local.get $5 + local.get $41 + local.get $43 f64.mul - local.get $16 - local.get $8 + local.get $40 + local.get $39 f64.mul f64.sub f64.add f64.add end local.set $0 - local.get $17 + local.get $29 i32.const 1 i32.add i32.const 2 @@ -5216,25 +5274,64 @@ (local $5 f64) (local $6 f64) (local $7 f64) - (local $8 i32) - (local $9 i32) - (local $10 f32) - (local $11 i32) - (local $12 f32) - (local $13 i32) - (local $14 i64) - (local $15 i32) - (local $16 i64) - (local $17 i64) - (local $18 i64) - (local $19 i64) - (local $20 i64) - (local $21 i64) - (local $22 i64) - (local $23 i32) - (local $24 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) + (local $16 f64) + (local $17 f64) + (local $18 f64) + (local $19 f64) + (local $20 f64) + (local $21 f64) + (local $22 f64) + (local $23 f64) + (local $24 f64) (local $25 f64) - (local $26 f32) + (local $26 f64) + (local $27 f64) + (local $28 f64) + (local $29 f64) + (local $30 f64) + (local $31 f64) + (local $32 f64) + (local $33 f64) + (local $34 f64) + (local $35 i32) + (local $36 i32) + (local $37 f32) + (local $38 f64) + (local $39 i32) + (local $40 f32) + (local $41 i32) + (local $42 i64) + (local $43 i32) + (local $44 i64) + (local $45 i64) + (local $46 i64) + (local $47 i64) + (local $48 i64) + (local $49 i64) + (local $50 i64) + (local $51 i64) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 f64) + (local $56 f64) + (local $57 f64) + (local $58 f64) + (local $59 f64) + (local $60 f64) + (local $61 f64) + (local $62 f64) + (local $63 f64) + (local $64 f64) + (local $65 f32) local.get $0 i32.reinterpret_f32 local.set $1 @@ -5317,35 +5414,35 @@ f64.const 3.141592653589793 f64.sub end - local.set $3 - local.get $3 - local.get $3 + local.set $7 + local.get $7 + local.get $7 f64.mul - local.set $6 - local.get $6 - local.get $6 + local.set $8 + local.get $8 + local.get $8 f64.mul - local.set $5 + local.set $9 f64.const -0.001388676377460993 - local.get $6 + local.get $8 f64.const 2.439044879627741e-05 f64.mul f64.add - local.set $4 + local.set $10 f32.const 1 f64.promote_f32 - local.get $6 + local.get $8 f64.const -0.499999997251031 f64.mul f64.add - local.get $5 + local.get $9 f64.const 0.04166662332373906 f64.mul f64.add - local.get $5 - local.get $6 + local.get $9 + local.get $8 f64.mul - local.get $4 + local.get $10 f64.mul f64.add f32.demote_f64 @@ -5358,38 +5455,38 @@ f64.promote_f32 f64.const 1.5707963267948966 f64.add - local.set $3 - local.get $3 - local.get $3 + local.set $11 + local.get $11 + local.get $11 f64.mul - local.set $4 - local.get $4 - local.get $4 + local.set $12 + local.get $12 + local.get $12 f64.mul - local.set $5 + local.set $13 f64.const -1.9839334836096632e-04 - local.get $4 + local.get $12 f64.const 2.718311493989822e-06 f64.mul f64.add - local.set $6 - local.get $4 - local.get $3 + local.set $14 + local.get $12 + local.get $11 f64.mul - local.set $7 - local.get $3 - local.get $7 + local.set $15 + local.get $11 + local.get $15 f64.const -0.16666666641626524 - local.get $4 + local.get $12 f64.const 0.008333329385889463 f64.mul f64.add f64.mul f64.add - local.get $7 - local.get $5 + local.get $15 + local.get $13 f64.mul - local.get $6 + local.get $14 f64.mul f64.add f32.demote_f64 @@ -5398,38 +5495,38 @@ local.get $0 f64.promote_f32 f64.sub - local.set $3 - local.get $3 - local.get $3 + local.set $16 + local.get $16 + local.get $16 f64.mul - local.set $7 - local.get $7 - local.get $7 + local.set $17 + local.get $17 + local.get $17 f64.mul - local.set $6 + local.set $18 f64.const -1.9839334836096632e-04 - local.get $7 + local.get $17 f64.const 2.718311493989822e-06 f64.mul f64.add - local.set $5 - local.get $7 - local.get $3 + local.set $19 + local.get $17 + local.get $16 f64.mul - local.set $4 - local.get $3 - local.get $4 + local.set $20 + local.get $16 + local.get $20 f64.const -0.16666666641626524 - local.get $7 + local.get $17 f64.const 0.008333329385889463 f64.mul f64.add f64.mul f64.add - local.get $4 - local.get $6 + local.get $20 + local.get $18 f64.mul - local.get $5 + local.get $19 f64.mul f64.add f32.demote_f64 @@ -5458,35 +5555,35 @@ f64.const 6.283185307179586 f64.sub end - local.set $3 - local.get $3 - local.get $3 + local.set $21 + local.get $21 + local.get $21 f64.mul - local.set $4 - local.get $4 - local.get $4 + local.set $22 + local.get $22 + local.get $22 f64.mul - local.set $5 + local.set $23 f64.const -0.001388676377460993 - local.get $4 + local.get $22 f64.const 2.439044879627741e-05 f64.mul f64.add - local.set $6 + local.set $24 f32.const 1 f64.promote_f32 - local.get $4 + local.get $22 f64.const -0.499999997251031 f64.mul f64.add - local.get $5 + local.get $23 f64.const 0.04166662332373906 f64.mul f64.add - local.get $5 - local.get $4 + local.get $23 + local.get $22 f64.mul - local.get $6 + local.get $24 f64.mul f64.add f32.demote_f64 @@ -5499,38 +5596,38 @@ f64.promote_f32 f64.const 4.71238898038469 f64.sub - local.set $7 - local.get $7 - local.get $7 + local.set $25 + local.get $25 + local.get $25 f64.mul - local.set $6 - local.get $6 - local.get $6 + local.set $26 + local.get $26 + local.get $26 f64.mul - local.set $5 + local.set $27 f64.const -1.9839334836096632e-04 - local.get $6 + local.get $26 f64.const 2.718311493989822e-06 f64.mul f64.add - local.set $4 - local.get $6 - local.get $7 + local.set $28 + local.get $26 + local.get $25 f64.mul - local.set $3 - local.get $7 - local.get $3 + local.set $29 + local.get $25 + local.get $29 f64.const -0.16666666641626524 - local.get $6 + local.get $26 f64.const 0.008333329385889463 f64.mul f64.add f64.mul f64.add - local.get $3 - local.get $5 + local.get $29 + local.get $27 f64.mul - local.get $4 + local.get $28 f64.mul f64.add f32.demote_f64 @@ -5539,38 +5636,38 @@ f64.promote_f32 f64.const 4.71238898038469 f64.sub - local.set $7 - local.get $7 - local.get $7 + local.set $30 + local.get $30 + local.get $30 f64.mul - local.set $3 - local.get $3 - local.get $3 + local.set $31 + local.get $31 + local.get $31 f64.mul - local.set $4 + local.set $32 f64.const -1.9839334836096632e-04 - local.get $3 + local.get $31 f64.const 2.718311493989822e-06 f64.mul f64.add - local.set $5 - local.get $3 - local.get $7 + local.set $33 + local.get $31 + local.get $30 f64.mul - local.set $6 - local.get $7 - local.get $6 + local.set $34 + local.get $30 + local.get $34 f64.const -0.16666666641626524 - local.get $3 + local.get $31 f64.const 0.008333329385889463 f64.mul f64.add f64.mul f64.add - local.get $6 - local.get $4 + local.get $34 + local.get $32 f64.mul - local.get $5 + local.get $33 f64.mul f64.add f32.demote_f64 @@ -5590,240 +5687,240 @@ end block $~lib/math/rempio2f|inlined.0 (result i32) local.get $0 - local.set $10 + local.set $37 local.get $1 - local.set $9 + local.set $36 local.get $2 - local.set $8 - local.get $9 + local.set $35 + local.get $36 i32.const 1305022427 i32.lt_u if - local.get $10 + local.get $37 f64.promote_f32 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $6 - local.get $10 + local.set $38 + local.get $37 f64.promote_f32 - local.get $6 + local.get $38 f64.const 1.5707963109016418 f64.mul f64.sub - local.get $6 + local.get $38 f64.const 1.5893254773528196e-08 f64.mul f64.sub global.set $~lib/math/rempio2f_y - local.get $6 + local.get $38 i32.trunc_f64_s br $~lib/math/rempio2f|inlined.0 end - local.get $10 - local.set $12 - local.get $9 - local.set $11 - local.get $11 + local.get $37 + local.set $40 + local.get $36 + local.set $39 + local.get $39 i32.const 23 i32.shr_s i32.const 152 i32.sub - local.set $13 - local.get $13 + local.set $41 + local.get $41 i32.const 63 i32.and i64.extend_i32_s - local.set $14 + local.set $42 i32.const 4600 - local.get $13 + local.get $41 i32.const 6 i32.shr_s i32.const 3 i32.shl i32.add - local.set $15 - local.get $15 + local.set $43 + local.get $43 i64.load - local.set $16 - local.get $15 + local.set $44 + local.get $43 i64.load offset=8 - local.set $17 - local.get $14 + local.set $45 + local.get $42 i64.const 32 i64.gt_u if - local.get $15 + local.get $43 i64.load offset=16 - local.set $19 - local.get $19 + local.set $47 + local.get $47 i64.const 96 - local.get $14 + local.get $42 i64.sub i64.shr_u - local.set $18 - local.get $18 - local.get $17 - local.get $14 + local.set $46 + local.get $46 + local.get $45 + local.get $42 i64.const 32 i64.sub i64.shl i64.or - local.set $18 + local.set $46 else - local.get $17 + local.get $45 i64.const 32 - local.get $14 + local.get $42 i64.sub i64.shr_u - local.set $18 + local.set $46 end - local.get $17 + local.get $45 i64.const 64 - local.get $14 + local.get $42 i64.sub i64.shr_u - local.get $16 - local.get $14 + local.get $44 + local.get $42 i64.shl i64.or - local.set $19 - local.get $11 + local.set $48 + local.get $39 i32.const 8388607 i32.and i32.const 8388608 i32.or i64.extend_i32_s - local.set $20 - local.get $20 - local.get $19 + local.set $49 + local.get $49 + local.get $48 i64.mul - local.get $20 - local.get $18 + local.get $49 + local.get $46 i64.mul i64.const 32 i64.shr_u i64.add - local.set $21 - local.get $21 + local.set $50 + local.get $50 i64.const 2 i64.shl - local.set $22 - local.get $21 + local.set $51 + local.get $50 i64.const 62 i64.shr_u - local.get $22 + local.get $51 i64.const 63 i64.shr_u i64.add i32.wrap_i64 - local.set $23 + local.set $52 f64.const 8.515303950216386e-20 - local.get $12 + local.get $40 f64.promote_f32 f64.copysign - local.get $22 + local.get $51 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y - local.get $23 - local.set $23 + local.get $52 + local.set $53 i32.const 0 - local.get $23 + local.get $53 i32.sub - local.get $23 - local.get $8 + local.get $53 + local.get $35 select end - local.set $24 + local.set $54 global.get $~lib/math/rempio2f_y - local.set $25 - local.get $24 + local.set $55 + local.get $54 i32.const 1 i32.and if (result f32) - local.get $25 - local.set $7 - local.get $7 - local.get $7 + local.get $55 + local.set $56 + local.get $56 + local.get $56 f64.mul - local.set $6 - local.get $6 - local.get $6 + local.set $57 + local.get $57 + local.get $57 f64.mul - local.set $5 + local.set $58 f64.const -1.9839334836096632e-04 - local.get $6 + local.get $57 f64.const 2.718311493989822e-06 f64.mul f64.add - local.set $4 - local.get $6 - local.get $7 + local.set $59 + local.get $57 + local.get $56 f64.mul - local.set $3 - local.get $7 - local.get $3 + local.set $60 + local.get $56 + local.get $60 f64.const -0.16666666641626524 - local.get $6 + local.get $57 f64.const 0.008333329385889463 f64.mul f64.add f64.mul f64.add - local.get $3 - local.get $5 + local.get $60 + local.get $58 f64.mul - local.get $4 + local.get $59 f64.mul f64.add f32.demote_f64 else - local.get $25 - local.set $7 - local.get $7 - local.get $7 + local.get $55 + local.set $61 + local.get $61 + local.get $61 f64.mul - local.set $3 - local.get $3 - local.get $3 + local.set $62 + local.get $62 + local.get $62 f64.mul - local.set $4 + local.set $63 f64.const -0.001388676377460993 - local.get $3 + local.get $62 f64.const 2.439044879627741e-05 f64.mul f64.add - local.set $5 + local.set $64 f32.const 1 f64.promote_f32 - local.get $3 + local.get $62 f64.const -0.499999997251031 f64.mul f64.add - local.get $4 + local.get $63 f64.const 0.04166662332373906 f64.mul f64.add - local.get $4 - local.get $3 + local.get $63 + local.get $62 f64.mul - local.get $5 + local.get $64 f64.mul f64.add f32.demote_f64 end - local.set $26 - local.get $24 + local.set $65 + local.get $54 i32.const 1 i32.add i32.const 2 i32.and if (result f32) - local.get $26 + local.get $65 f32.neg else - local.get $26 + local.get $65 end ) (func $std/math/test_cosf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) @@ -6169,6 +6266,7 @@ (local $19 f64) (local $20 f64) (local $21 f64) + (local $22 f64) i32.const 0 i32.const 1 i32.lt_s @@ -6420,9 +6518,9 @@ end local.get $11 f64.reinterpret_i64 - local.set $18 - local.get $18 - local.get $18 + local.set $22 + local.get $22 + local.get $22 local.get $13 f64.mul f64.add @@ -6980,6 +7078,8 @@ (local $1 i32) (local $2 f32) (local $3 f32) + (local $4 f32) + (local $5 f32) local.get $0 i32.reinterpret_f32 local.set $1 @@ -7027,18 +7127,18 @@ if local.get $0 call $~lib/math/NativeMathf.exp - local.set $2 + local.set $3 f32.const 0.5 - local.get $2 + local.get $3 f32.mul f32.const 0.5 - local.get $2 + local.get $3 f32.div f32.add return end local.get $0 - local.set $2 + local.set $4 i32.const 127 i32.const 235 i32.const 1 @@ -7047,14 +7147,14 @@ i32.const 23 i32.shl f32.reinterpret_i32 - local.set $3 - local.get $2 + local.set $5 + local.get $4 f32.const 162.88958740234375 f32.sub call $~lib/math/NativeMathf.exp - local.get $3 + local.get $5 f32.mul - local.get $3 + local.get $5 f32.mul ) (func $std/math/test_coshf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) @@ -7149,6 +7249,7 @@ (local $17 f64) (local $18 f64) (local $19 f64) + (local $20 f64) block $~lib/util/math/exp2_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -7388,11 +7489,11 @@ end local.get $10 f64.reinterpret_i64 - local.set $17 - local.get $17 + local.set $20 + local.get $20 local.get $12 f64.mul - local.get $17 + local.get $20 f64.add end ) @@ -8518,6 +8619,15 @@ (local $21 f64) (local $22 f64) (local $23 f64) + (local $24 f64) + (local $25 f64) + (local $26 f64) + (local $27 f64) + (local $28 f64) + (local $29 f64) + (local $30 f64) + (local $31 f64) + (local $32 f64) i32.const 0 i32.const 1 i32.lt_s @@ -8727,7 +8837,7 @@ i32.shl i32.add f64.load - local.set $11 + local.set $17 i32.const 6936 local.get $14 i32.const 1 @@ -8736,13 +8846,13 @@ i32.shl i32.add f64.load offset=8 - local.set $10 + local.set $18 local.get $16 f64.reinterpret_i64 - local.set $9 + local.set $19 local.get $15 f64.convert_i64_s - local.set $8 + local.set $20 i32.const 7960 local.get $14 i32.const 1 @@ -8751,7 +8861,7 @@ i32.shl i32.add f64.load - local.set $7 + local.set $21 i32.const 7960 local.get $14 i32.const 1 @@ -8760,87 +8870,87 @@ i32.shl i32.add f64.load offset=8 - local.set $6 - local.get $9 - local.get $7 + local.set $22 + local.get $19 + local.get $21 f64.sub - local.get $6 + local.get $22 f64.sub - local.get $11 + local.get $17 f64.mul - local.set $5 - local.get $5 + local.set $23 + local.get $23 i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 - local.set $4 - local.get $5 - local.get $4 + local.set $24 + local.get $23 + local.get $24 f64.sub - local.set $3 - local.get $4 + local.set $25 + local.get $24 f64.const 1.4426950407214463 f64.mul - local.set $17 - local.get $3 + local.set $26 + local.get $25 f64.const 1.4426950407214463 f64.mul - local.get $5 + local.get $23 f64.const 1.6751713164886512e-10 f64.mul f64.add - local.set $18 - local.get $8 - local.get $10 + local.set $27 + local.get $20 + local.get $18 f64.add - local.set $19 - local.get $19 - local.get $17 + local.set $28 + local.get $28 + local.get $26 f64.add - local.set $20 - local.get $19 - local.get $20 + local.set $29 + local.get $28 + local.get $29 f64.sub - local.get $17 + local.get $26 f64.add - local.get $18 + local.get $27 f64.add - local.set $21 - local.get $5 - local.get $5 + local.set $30 + local.get $23 + local.get $23 f64.mul - local.set $22 + local.set $31 f64.const -0.7213475204444882 - local.get $5 + local.get $23 f64.const 0.4808983469629985 f64.mul f64.add - local.get $22 + local.get $31 f64.const -0.36067375954075914 - local.get $5 + local.get $23 f64.const 0.2885390073180969 f64.mul f64.add f64.mul f64.add - local.get $22 - local.get $22 + local.get $31 + local.get $31 f64.mul f64.const -0.2404693555628422 - local.get $5 + local.get $23 f64.const 0.2061202382173603 f64.mul f64.add f64.mul f64.add - local.set $23 - local.get $21 - local.get $22 - local.get $23 + local.set $32 + local.get $30 + local.get $31 + local.get $32 f64.mul f64.add - local.get $20 + local.get $29 f64.add end return @@ -9692,18 +9802,18 @@ (local $7 i64) (local $8 i64) (local $9 i64) - (local $10 f64) - (local $11 i64) - (local $12 i32) + (local $10 i64) + (local $11 f64) + (local $12 i64) (local $13 i64) (local $14 i64) - (local $15 f64) - (local $16 f64) - (local $17 f64) - (local $18 f64) - (local $19 f64) - (local $20 f64) - (local $21 f64) + (local $15 i64) + (local $16 i32) + (local $17 i64) + (local $18 i64) + (local $19 i32) + (local $20 i64) + (local $21 i64) (local $22 f64) (local $23 f64) (local $24 f64) @@ -9721,12 +9831,52 @@ (local $36 f64) (local $37 f64) (local $38 f64) - (local $39 i32) - (local $40 i32) - (local $41 i32) - (local $42 i32) - (local $43 i64) - (local $44 i64) + (local $39 f64) + (local $40 f64) + (local $41 f64) + (local $42 f64) + (local $43 f64) + (local $44 f64) + (local $45 f64) + (local $46 f64) + (local $47 f64) + (local $48 f64) + (local $49 f64) + (local $50 f64) + (local $51 f64) + (local $52 f64) + (local $53 f64) + (local $54 f64) + (local $55 i32) + (local $56 f64) + (local $57 f64) + (local $58 i32) + (local $59 i64) + (local $60 i64) + (local $61 i64) + (local $62 i32) + (local $63 f64) + (local $64 f64) + (local $65 f64) + (local $66 f64) + (local $67 f64) + (local $68 f64) + (local $69 f64) + (local $70 i64) + (local $71 i32) + (local $72 f64) + (local $73 i32) + (local $74 i32) + (local $75 f64) + (local $76 i32) + (local $77 i64) + (local $78 i64) + (local $79 f64) + (local $80 f64) + (local $81 f64) + (local $82 f64) + (local $83 f64) + (local $84 f64) local.get $1 f64.abs f64.const 2 @@ -9905,8 +10055,8 @@ br $~lib/util/math/pow_lut|inlined.0 end local.get $5 - local.set $9 - local.get $9 + local.set $10 + local.get $10 i64.const 1 i64.shl i64.const 1 @@ -9919,7 +10069,7 @@ local.get $3 local.get $3 f64.mul - local.set $10 + local.set $11 local.get $5 i64.const 63 i64.shr_u @@ -9927,21 +10077,21 @@ if (result i32) block $~lib/util/math/checkint|inlined.0 (result i32) local.get $6 - local.set $9 - local.get $9 + local.set $12 + local.get $12 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.set $11 - local.get $11 + local.set $13 + local.get $13 i64.const 1023 i64.lt_u if i32.const 0 br $~lib/util/math/checkint|inlined.0 end - local.get $11 + local.get $13 i64.const 1023 i64.const 52 i64.add @@ -9954,12 +10104,12 @@ i64.const 1023 i64.const 52 i64.add - local.get $11 + local.get $13 i64.sub i64.shl - local.set $11 - local.get $9 - local.get $11 + local.set $13 + local.get $12 + local.get $13 i64.const 1 i64.sub i64.and @@ -9969,8 +10119,8 @@ i32.const 0 br $~lib/util/math/checkint|inlined.0 end - local.get $9 - local.get $11 + local.get $12 + local.get $13 i64.and i64.const 0 i64.ne @@ -9986,9 +10136,9 @@ i32.const 0 end if - local.get $10 + local.get $11 f64.neg - local.set $10 + local.set $11 end local.get $6 i64.const 63 @@ -9997,10 +10147,10 @@ i64.ne if (result f64) f64.const 1 - local.get $10 + local.get $11 f64.div else - local.get $10 + local.get $11 end br $~lib/util/math/pow_lut|inlined.0 end @@ -10012,21 +10162,21 @@ if block $~lib/util/math/checkint|inlined.1 (result i32) local.get $6 - local.set $9 - local.get $9 + local.set $14 + local.get $14 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.set $11 - local.get $11 + local.set $15 + local.get $15 i64.const 1023 i64.lt_u if i32.const 0 br $~lib/util/math/checkint|inlined.1 end - local.get $11 + local.get $15 i64.const 1023 i64.const 52 i64.add @@ -10039,12 +10189,12 @@ i64.const 1023 i64.const 52 i64.add - local.get $11 + local.get $15 i64.sub i64.shl - local.set $11 - local.get $9 - local.get $11 + local.set $15 + local.get $14 + local.get $15 i64.const 1 i64.sub i64.and @@ -10054,8 +10204,8 @@ i32.const 0 br $~lib/util/math/checkint|inlined.1 end - local.get $9 - local.get $11 + local.get $14 + local.get $15 i64.and i64.const 0 i64.ne @@ -10065,8 +10215,8 @@ end i32.const 2 end - local.set $12 - local.get $12 + local.set $16 + local.get $16 i32.const 0 i32.eq if @@ -10079,7 +10229,7 @@ f64.div br $~lib/util/math/pow_lut|inlined.0 end - local.get $12 + local.get $16 i32.const 1 i32.eq if @@ -10157,12 +10307,12 @@ end end local.get $5 - local.set $9 - local.get $9 + local.set $17 + local.get $17 i64.const 4604531861337669632 i64.sub - local.set $11 - local.get $11 + local.set $18 + local.get $18 i64.const 52 i64.const 7 i64.sub @@ -10170,150 +10320,150 @@ i64.const 127 i64.and i32.wrap_i64 - local.set $12 - local.get $11 + local.set $19 + local.get $18 i64.const 52 i64.shr_s - local.set $13 - local.get $9 - local.get $11 + local.set $20 + local.get $17 + local.get $18 i64.const 4095 i64.const 52 i64.shl i64.and i64.sub - local.set $14 - local.get $14 + local.set $21 + local.get $21 f64.reinterpret_i64 - local.set $10 - local.get $13 + local.set $22 + local.get $20 f64.convert_i64_s - local.set $15 + local.set $23 i32.const 9240 - local.get $12 + local.get $19 i32.const 2 i32.const 3 i32.add i32.shl i32.add f64.load - local.set $16 + local.set $24 i32.const 9240 - local.get $12 + local.get $19 i32.const 2 i32.const 3 i32.add i32.shl i32.add f64.load offset=16 - local.set $17 + local.set $25 i32.const 9240 - local.get $12 + local.get $19 i32.const 2 i32.const 3 i32.add i32.shl i32.add f64.load offset=24 - local.set $18 - local.get $14 + local.set $26 + local.get $21 i64.const 2147483648 i64.add i64.const -4294967296 i64.and f64.reinterpret_i64 - local.set $19 - local.get $10 - local.get $19 + local.set $27 + local.get $22 + local.get $27 f64.sub - local.set $20 - local.get $19 - local.get $16 + local.set $28 + local.get $27 + local.get $24 f64.mul f64.const 1 f64.sub - local.set $21 - local.get $20 - local.get $16 + local.set $29 + local.get $28 + local.get $24 f64.mul - local.set $22 - local.get $21 - local.get $22 + local.set $30 + local.get $29 + local.get $30 f64.add - local.set $23 - local.get $15 + local.set $31 + local.get $23 f64.const 0.6931471805598903 f64.mul - local.get $17 + local.get $25 f64.add - local.set $24 - local.get $24 - local.get $23 + local.set $32 + local.get $32 + local.get $31 f64.add - local.set $25 - local.get $15 + local.set $33 + local.get $23 f64.const 5.497923018708371e-14 f64.mul - local.get $18 + local.get $26 f64.add - local.set $26 - local.get $24 - local.get $25 + local.set $34 + local.get $32 + local.get $33 f64.sub - local.get $23 + local.get $31 f64.add - local.set $27 + local.set $35 f64.const -0.5 - local.get $23 + local.get $31 f64.mul - local.set $28 - local.get $23 - local.get $28 + local.set $36 + local.get $31 + local.get $36 f64.mul - local.set $29 - local.get $23 - local.get $29 + local.set $37 + local.get $31 + local.get $37 f64.mul - local.set $30 + local.set $38 f64.const -0.5 - local.get $21 + local.get $29 f64.mul - local.set $31 - local.get $21 - local.get $31 + local.set $39 + local.get $29 + local.get $39 f64.mul - local.set $32 - local.get $25 - local.get $32 + local.set $40 + local.get $33 + local.get $40 f64.add - local.set $33 - local.get $22 - local.get $28 - local.get $31 + local.set $41 + local.get $30 + local.get $36 + local.get $39 f64.add f64.mul - local.set $34 - local.get $25 + local.set $42 local.get $33 + local.get $41 f64.sub - local.get $32 + local.get $40 f64.add - local.set $35 - local.get $30 + local.set $43 + local.get $38 f64.const -0.6666666666666679 - local.get $23 + local.get $31 f64.const 0.5000000000000007 f64.mul f64.add - local.get $29 + local.get $37 f64.const 0.7999999995323976 - local.get $23 + local.get $31 f64.const -0.6666666663487739 f64.mul f64.add - local.get $29 + local.get $37 f64.const -1.142909628459501 - local.get $23 + local.get $31 f64.const 1.0000415263675542 f64.mul f64.add @@ -10322,88 +10472,88 @@ f64.mul f64.add f64.mul - local.set $36 - local.get $26 - local.get $27 - f64.add + local.set $44 local.get $34 - f64.add local.get $35 f64.add - local.get $36 + local.get $42 f64.add - local.set $37 - local.get $33 - local.get $37 + local.get $43 f64.add - local.set $38 - local.get $33 - local.get $38 + local.get $44 + f64.add + local.set $45 + local.get $41 + local.get $45 + f64.add + local.set $46 + local.get $41 + local.get $46 f64.sub - local.get $37 + local.get $45 f64.add global.set $~lib/util/math/log_tail - local.get $38 - local.set $38 + local.get $46 + local.set $47 global.get $~lib/util/math/log_tail - local.set $37 + local.set $48 local.get $6 i64.const -134217728 i64.and f64.reinterpret_i64 - local.set $34 + local.set $51 local.get $2 - local.get $34 + local.get $51 f64.sub - local.set $33 - local.get $38 + local.set $52 + local.get $47 i64.reinterpret_f64 i64.const -134217728 i64.and f64.reinterpret_i64 - local.set $32 - local.get $38 - local.get $32 + local.set $53 + local.get $47 + local.get $53 f64.sub - local.get $37 + local.get $48 f64.add - local.set $31 - local.get $34 - local.get $32 + local.set $54 + local.get $51 + local.get $53 f64.mul - local.set $36 - local.get $33 - local.get $32 + local.set $49 + local.get $52 + local.get $53 f64.mul local.get $2 - local.get $31 + local.get $54 f64.mul f64.add - local.set $35 + local.set $50 block $~lib/util/math/exp_inline|inlined.0 (result f64) - local.get $36 - local.set $15 - local.get $35 - local.set $10 + local.get $49 + local.set $57 + local.get $50 + local.set $56 local.get $4 - local.set $12 - local.get $15 + local.set $55 + local.get $57 i64.reinterpret_f64 - local.set $9 - local.get $9 + local.set $70 + local.get $70 i64.const 52 i64.shr_u i32.wrap_i64 i32.const 2047 i32.and - local.set $39 - local.get $39 + local.set $58 + local.get $58 i32.const 969 i32.sub i32.const 63 i32.ge_u if - local.get $39 + local.get $58 i32.const 969 i32.sub i32.const -2147483648 @@ -10411,252 +10561,252 @@ if f64.const -1 f64.const 1 - local.get $12 + local.get $55 select br $~lib/util/math/exp_inline|inlined.0 end - local.get $39 + local.get $58 i32.const 1033 i32.ge_u if - local.get $9 + local.get $70 i64.const 63 i64.shr_u i64.const 0 i64.ne if (result f64) - local.get $12 - local.set $41 - local.get $41 - local.set $42 + local.get $55 + local.set $71 + local.get $71 + local.set $73 i64.const 1152921504606846976 f64.reinterpret_i64 - local.set $16 - local.get $16 + local.set $72 + local.get $72 f64.neg - local.get $16 - local.get $42 + local.get $72 + local.get $73 select - local.get $16 + local.get $72 f64.mul else - local.get $12 - local.set $42 - local.get $42 - local.set $41 + local.get $55 + local.set $74 + local.get $74 + local.set $76 i64.const 8070450532247928832 f64.reinterpret_i64 - local.set $17 - local.get $17 + local.set $75 + local.get $75 f64.neg - local.get $17 - local.get $41 + local.get $75 + local.get $76 select - local.get $17 + local.get $75 f64.mul end br $~lib/util/math/exp_inline|inlined.0 end i32.const 0 - local.set $39 + local.set $58 end f64.const 184.6649652337873 - local.get $15 + local.get $57 f64.mul - local.set $29 - local.get $29 + local.set $64 + local.get $64 f64.const 6755399441055744 f64.add - local.set $30 - local.get $30 + local.set $63 + local.get $63 i64.reinterpret_f64 - local.set $14 - local.get $30 + local.set $59 + local.get $63 f64.const 6755399441055744 f64.sub - local.set $30 - local.get $15 - local.get $30 + local.set $63 + local.get $57 + local.get $63 f64.const -0.005415212348111709 f64.mul f64.add - local.get $30 + local.get $63 f64.const -1.2864023111638346e-14 f64.mul f64.add - local.set $28 - local.get $28 - local.get $10 + local.set $65 + local.get $65 + local.get $56 f64.add - local.set $28 - local.get $14 + local.set $65 + local.get $59 i64.const 127 i64.and i64.const 1 i64.shl i32.wrap_i64 - local.set $40 - local.get $14 - local.get $12 + local.set $62 + local.get $59 + local.get $55 i64.extend_i32_u i64.add i64.const 52 i64.const 7 i64.sub i64.shl - local.set $13 + local.set $60 i32.const 4632 - local.get $40 + local.get $62 i32.const 3 i32.shl i32.add i64.load f64.reinterpret_i64 - local.set $25 + local.set $68 i32.const 4632 - local.get $40 + local.get $62 i32.const 3 i32.shl i32.add i64.load offset=8 - local.get $13 + local.get $60 i64.add - local.set $11 - local.get $28 - local.get $28 + local.set $61 + local.get $65 + local.get $65 f64.mul - local.set $27 - local.get $25 - local.get $28 + local.set $66 + local.get $68 + local.get $65 f64.add - local.get $27 + local.get $66 f64.const 0.49999999999996786 - local.get $28 + local.get $65 f64.const 0.16666666666665886 f64.mul f64.add f64.mul f64.add - local.get $27 - local.get $27 + local.get $66 + local.get $66 f64.mul f64.const 0.0416666808410674 - local.get $28 + local.get $65 f64.const 0.008333335853059549 f64.mul f64.add f64.mul f64.add - local.set $24 - local.get $39 + local.set $69 + local.get $58 i32.const 0 i32.eq if block $~lib/util/math/specialcase|inlined.1 (result f64) - local.get $24 - local.set $18 - local.get $11 - local.set $44 - local.get $14 - local.set $43 - local.get $43 + local.get $69 + local.set $79 + local.get $61 + local.set $78 + local.get $59 + local.set $77 + local.get $77 i64.const 2147483648 i64.and i64.const 0 i64.ne i32.eqz if - local.get $44 + local.get $78 i64.const 1009 i64.const 52 i64.shl i64.sub - local.set $44 - local.get $44 + local.set $78 + local.get $78 f64.reinterpret_i64 - local.set $17 + local.set $80 f64.const 5486124068793688683255936e279 - local.get $17 - local.get $17 - local.get $18 + local.get $80 + local.get $80 + local.get $79 f64.mul f64.add f64.mul br $~lib/util/math/specialcase|inlined.1 end - local.get $44 + local.get $78 i64.const 1022 i64.const 52 i64.shl i64.add - local.set $44 - local.get $44 + local.set $78 + local.get $78 f64.reinterpret_i64 - local.set $17 - local.get $17 - local.get $17 - local.get $18 + local.set $80 + local.get $80 + local.get $80 + local.get $79 f64.mul f64.add - local.set $16 - local.get $16 + local.set $81 + local.get $81 f64.abs f64.const 1 f64.lt if f64.const 1 - local.get $16 + local.get $81 f64.copysign - local.set $23 - local.get $17 - local.get $16 + local.set $82 + local.get $80 + local.get $81 f64.sub - local.get $17 - local.get $18 + local.get $80 + local.get $79 f64.mul f64.add - local.set $22 - local.get $23 - local.get $16 + local.set $83 + local.get $82 + local.get $81 f64.add - local.set $21 - local.get $23 - local.get $21 + local.set $84 + local.get $82 + local.get $84 f64.sub - local.get $16 + local.get $81 f64.add - local.get $22 + local.get $83 f64.add - local.set $22 - local.get $21 - local.get $22 + local.set $83 + local.get $84 + local.get $83 f64.add - local.get $23 + local.get $82 f64.sub - local.set $16 - local.get $16 + local.set $81 + local.get $81 f64.const 0 f64.eq if - local.get $44 + local.get $78 i64.const -9223372036854775808 i64.and f64.reinterpret_i64 - local.set $16 + local.set $81 end end - local.get $16 + local.get $81 f64.const 2.2250738585072014e-308 f64.mul end br $~lib/util/math/exp_inline|inlined.0 end - local.get $11 + local.get $61 f64.reinterpret_i64 - local.set $26 - local.get $26 - local.get $26 - local.get $24 + local.set $67 + local.get $67 + local.get $67 + local.get $69 f64.mul f64.add end @@ -10697,22 +10847,44 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f32) - (local $10 i32) + (local $9 i32) + (local $10 f32) (local $11 i32) (local $12 i32) (local $13 i32) (local $14 i32) - (local $15 f64) - (local $16 f64) - (local $17 f64) - (local $18 f64) - (local $19 f64) - (local $20 f64) - (local $21 f64) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) (local $22 f64) - (local $23 i64) - (local $24 i64) + (local $23 f64) + (local $24 f64) + (local $25 f64) + (local $26 f64) + (local $27 f64) + (local $28 f64) + (local $29 f64) + (local $30 f64) + (local $31 f64) + (local $32 i32) + (local $33 f32) + (local $34 i32) + (local $35 i32) + (local $36 f32) + (local $37 i32) + (local $38 i32) + (local $39 f64) + (local $40 f64) + (local $41 i64) + (local $42 f64) + (local $43 i64) + (local $44 f64) + (local $45 f64) + (local $46 f64) local.get $1 f32.abs f32.const 2 @@ -10885,8 +11057,8 @@ br $~lib/util/math/powf_lut|inlined.0 end local.get $5 - local.set $8 - local.get $8 + local.set $9 + local.get $9 i32.const 1 i32.shl i32.const 1 @@ -10901,28 +11073,28 @@ local.get $3 local.get $3 f32.mul - local.set $9 + local.set $10 local.get $5 i32.const 31 i32.shr_u if (result i32) block $~lib/util/math/checkintf|inlined.0 (result i32) local.get $6 - local.set $8 - local.get $8 + local.set $11 + local.get $11 i32.const 23 i32.shr_u i32.const 255 i32.and - local.set $10 - local.get $10 + local.set $12 + local.get $12 i32.const 127 i32.lt_u if i32.const 0 br $~lib/util/math/checkintf|inlined.0 end - local.get $10 + local.get $12 i32.const 127 i32.const 23 i32.add @@ -10935,12 +11107,12 @@ i32.const 127 i32.const 23 i32.add - local.get $10 + local.get $12 i32.sub i32.shl - local.set $10 - local.get $8 - local.get $10 + local.set $12 + local.get $11 + local.get $12 i32.const 1 i32.sub i32.and @@ -10948,8 +11120,8 @@ i32.const 0 br $~lib/util/math/checkintf|inlined.0 end - local.get $8 - local.get $10 + local.get $11 + local.get $12 i32.and if i32.const 1 @@ -10963,19 +11135,19 @@ i32.const 0 end if - local.get $9 + local.get $10 f32.neg - local.set $9 + local.set $10 end local.get $6 i32.const 31 i32.shr_u if (result f32) f32.const 1 - local.get $9 + local.get $10 f32.div else - local.get $9 + local.get $10 end br $~lib/util/math/powf_lut|inlined.0 end @@ -10985,21 +11157,21 @@ if block $~lib/util/math/checkintf|inlined.1 (result i32) local.get $6 - local.set $8 - local.get $8 + local.set $13 + local.get $13 i32.const 23 i32.shr_u i32.const 255 i32.and - local.set $10 - local.get $10 + local.set $14 + local.get $14 i32.const 127 i32.lt_u if i32.const 0 br $~lib/util/math/checkintf|inlined.1 end - local.get $10 + local.get $14 i32.const 127 i32.const 23 i32.add @@ -11012,12 +11184,12 @@ i32.const 127 i32.const 23 i32.add - local.get $10 + local.get $14 i32.sub i32.shl - local.set $10 - local.get $8 - local.get $10 + local.set $14 + local.get $13 + local.get $14 i32.const 1 i32.sub i32.and @@ -11025,8 +11197,8 @@ i32.const 0 br $~lib/util/math/checkintf|inlined.1 end - local.get $8 - local.get $10 + local.get $13 + local.get $14 i32.and if i32.const 1 @@ -11034,8 +11206,8 @@ end i32.const 2 end - local.set $10 - local.get $10 + local.set $15 + local.get $15 i32.const 0 i32.eq if @@ -11048,7 +11220,7 @@ f32.div br $~lib/util/math/powf_lut|inlined.0 end - local.get $10 + local.get $15 i32.const 1 i32.eq if @@ -11082,108 +11254,108 @@ end end local.get $5 - local.set $8 - local.get $8 + local.set $16 + local.get $16 i32.const 1060306944 i32.sub - local.set $10 - local.get $10 + local.set $17 + local.get $17 i32.const 23 i32.const 4 i32.sub i32.shr_u i32.const 15 i32.and - local.set $11 - local.get $10 + local.set $18 + local.get $17 i32.const -8388608 i32.and - local.set $12 - local.get $8 - local.get $12 + local.set $19 + local.get $16 + local.get $19 i32.sub - local.set $13 - local.get $12 + local.set $20 + local.get $19 i32.const 23 i32.shr_s - local.set $14 + local.set $21 i32.const 8984 - local.get $11 + local.get $18 i32.const 1 i32.const 3 i32.add i32.shl i32.add f64.load - local.set $15 + local.set $22 i32.const 8984 - local.get $11 + local.get $18 i32.const 1 i32.const 3 i32.add i32.shl i32.add f64.load offset=8 - local.set $16 - local.get $13 + local.set $23 + local.get $20 f32.reinterpret_i32 f64.promote_f32 - local.set $17 - local.get $17 - local.get $15 + local.set $24 + local.get $24 + local.get $22 f64.mul f64.const 1 f64.sub - local.set $18 - local.get $16 - local.get $14 + local.set $25 + local.get $23 + local.get $21 f64.convert_i32_s f64.add - local.set $19 + local.set $26 f64.const 0.288457581109214 - local.get $18 + local.get $25 f64.mul f64.const -0.36092606229713164 f64.add - local.set $20 + local.set $27 f64.const 0.480898481472577 - local.get $18 + local.get $25 f64.mul f64.const -0.7213474675006291 f64.add - local.set $21 + local.set $28 f64.const 1.4426950408774342 - local.get $18 + local.get $25 f64.mul - local.get $19 + local.get $26 f64.add - local.set $22 - local.get $18 - local.get $18 + local.set $29 + local.get $25 + local.get $25 f64.mul - local.set $18 - local.get $22 - local.get $21 - local.get $18 + local.set $25 + local.get $29 + local.get $28 + local.get $25 f64.mul f64.add - local.set $22 - local.get $20 - local.get $18 - local.get $18 + local.set $29 + local.get $27 + local.get $25 + local.get $25 f64.mul f64.mul - local.get $22 + local.get $29 f64.add - local.set $20 - local.get $20 - local.set $22 + local.set $27 + local.get $27 + local.set $30 local.get $2 f64.promote_f32 - local.get $22 + local.get $30 f64.mul - local.set $21 - local.get $21 + local.set $31 + local.get $31 i64.reinterpret_f64 i64.const 47 i64.shr_u @@ -11192,66 +11364,66 @@ i64.const 32959 i64.ge_u if - local.get $21 + local.get $31 f64.const 127.99999995700433 f64.gt if local.get $4 - local.set $8 - local.get $8 - local.set $10 + local.set $32 + local.get $32 + local.set $34 i32.const 1879048192 f32.reinterpret_i32 - local.set $9 - local.get $9 + local.set $33 + local.get $33 f32.neg - local.get $9 - local.get $10 + local.get $33 + local.get $34 select - local.get $9 + local.get $33 f32.mul br $~lib/util/math/powf_lut|inlined.0 end - local.get $21 + local.get $31 f64.const -150 f64.le if local.get $4 - local.set $11 - local.get $11 - local.set $12 + local.set $35 + local.get $35 + local.set $37 i32.const 268435456 f32.reinterpret_i32 - local.set $9 - local.get $9 + local.set $36 + local.get $36 f32.neg - local.get $9 - local.get $12 + local.get $36 + local.get $37 select - local.get $9 + local.get $36 f32.mul br $~lib/util/math/powf_lut|inlined.0 end end - local.get $21 - local.set $15 + local.get $31 + local.set $39 local.get $4 - local.set $13 - local.get $15 + local.set $38 + local.get $39 f64.const 211106232532992 f64.add - local.set $20 - local.get $20 + local.set $40 + local.get $40 i64.reinterpret_f64 - local.set $23 - local.get $15 - local.get $20 + local.set $41 + local.get $39 + local.get $40 f64.const 211106232532992 f64.sub f64.sub - local.set $19 + local.set $42 i32.const 6680 - local.get $23 + local.get $41 i32.wrap_i64 i32.const 31 i32.and @@ -11259,10 +11431,10 @@ i32.shl i32.add i64.load - local.set $24 - local.get $24 - local.get $23 - local.get $13 + local.set $43 + local.get $43 + local.get $41 + local.get $38 i64.extend_i32_u i64.add i64.const 52 @@ -11270,35 +11442,35 @@ i64.sub i64.shl i64.add - local.set $24 - local.get $24 + local.set $43 + local.get $43 f64.reinterpret_i64 - local.set $16 + local.set $46 f64.const 0.05550361559341535 - local.get $19 + local.get $42 f64.mul f64.const 0.2402284522445722 f64.add - local.set $18 + local.set $44 f64.const 0.6931471806916203 - local.get $19 + local.get $42 f64.mul f64.const 1 f64.add - local.set $17 - local.get $17 - local.get $18 - local.get $19 - local.get $19 + local.set $45 + local.get $45 + local.get $44 + local.get $42 + local.get $42 f64.mul f64.mul f64.add - local.set $17 - local.get $17 - local.get $16 + local.set $45 + local.get $45 + local.get $46 f64.mul - local.set $17 - local.get $17 + local.set $45 + local.get $45 f32.demote_f64 end return @@ -11979,7 +12151,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 f32) + (local $10 i32) + (local $11 f32) local.get $0 i32.reinterpret_f32 local.set $2 @@ -12184,13 +12357,13 @@ i32.const 8 i32.shl i32.clz - local.set $9 + local.set $10 local.get $4 - local.get $9 + local.get $10 i32.sub local.set $4 local.get $7 - local.get $9 + local.get $10 i32.shl local.set $7 end @@ -12233,7 +12406,7 @@ local.get $0 local.get $0 f32.add - local.set $10 + local.set $11 local.get $4 local.get $5 i32.eq @@ -12246,13 +12419,13 @@ local.get $5 i32.eq if (result i32) - local.get $10 + local.get $11 local.get $1 f32.gt if (result i32) i32.const 1 else - local.get $10 + local.get $11 local.get $1 f32.eq if (result i32) @@ -12301,15 +12474,41 @@ (local $8 f64) (local $9 f64) (local $10 f64) - (local $11 i64) - (local $12 i32) - (local $13 i32) + (local $11 i32) + (local $12 i64) + (local $13 f64) (local $14 i32) (local $15 i32) (local $16 f64) - (local $17 i32) + (local $17 f64) (local $18 f64) (local $19 f64) + (local $20 f64) + (local $21 f64) + (local $22 i32) + (local $23 f64) + (local $24 i32) + (local $25 i32) + (local $26 f64) + (local $27 f64) + (local $28 f64) + (local $29 i32) + (local $30 i32) + (local $31 f64) + (local $32 f64) + (local $33 f64) + (local $34 f64) + (local $35 f64) + (local $36 f64) + (local $37 f64) + (local $38 f64) + (local $39 i32) + (local $40 f64) + (local $41 f64) + (local $42 f64) + (local $43 f64) + (local $44 f64) + (local $45 f64) local.get $0 i64.reinterpret_f64 local.set $1 @@ -12424,287 +12623,287 @@ end block $~lib/math/rempio2|inlined.1 (result i32) local.get $0 - local.set $5 + local.set $13 local.get $1 - local.set $11 + local.set $12 local.get $3 - local.set $4 - local.get $11 + local.set $11 + local.get $12 i64.const 32 i64.shr_u i32.wrap_i64 i32.const 2147483647 i32.and - local.set $12 + local.set $14 i32.const 0 i32.const 1 i32.lt_s drop - local.get $12 + local.get $14 i32.const 1073928572 i32.lt_u if i32.const 1 - local.set $13 - local.get $4 + local.set $15 + local.get $11 i32.eqz if - local.get $5 + local.get $13 f64.const 1.5707963267341256 f64.sub - local.set $10 - local.get $12 + local.set $16 + local.get $14 i32.const 1073291771 i32.ne if - local.get $10 + local.get $16 f64.const 6.077100506506192e-11 f64.sub - local.set $9 - local.get $10 - local.get $9 + local.set $17 + local.get $16 + local.get $17 f64.sub f64.const 6.077100506506192e-11 f64.sub - local.set $8 + local.set $18 else - local.get $10 + local.get $16 f64.const 6.077100506303966e-11 f64.sub - local.set $10 - local.get $10 + local.set $16 + local.get $16 f64.const 2.0222662487959506e-21 f64.sub - local.set $9 - local.get $10 - local.get $9 + local.set $17 + local.get $16 + local.get $17 f64.sub f64.const 2.0222662487959506e-21 f64.sub - local.set $8 + local.set $18 end else - local.get $5 + local.get $13 f64.const 1.5707963267341256 f64.add - local.set $10 - local.get $12 + local.set $16 + local.get $14 i32.const 1073291771 i32.ne if - local.get $10 + local.get $16 f64.const 6.077100506506192e-11 f64.add - local.set $9 - local.get $10 - local.get $9 + local.set $17 + local.get $16 + local.get $17 f64.sub f64.const 6.077100506506192e-11 f64.add - local.set $8 + local.set $18 else - local.get $10 + local.get $16 f64.const 6.077100506303966e-11 f64.add - local.set $10 - local.get $10 + local.set $16 + local.get $16 f64.const 2.0222662487959506e-21 f64.add - local.set $9 - local.get $10 - local.get $9 + local.set $17 + local.get $16 + local.get $17 f64.sub f64.const 2.0222662487959506e-21 f64.add - local.set $8 + local.set $18 end i32.const -1 - local.set $13 + local.set $15 end - local.get $9 + local.get $17 global.set $~lib/math/rempio2_y0 - local.get $8 + local.get $18 global.set $~lib/math/rempio2_y1 - local.get $13 + local.get $15 br $~lib/math/rempio2|inlined.1 end - local.get $12 + local.get $14 i32.const 1094263291 i32.lt_u if - local.get $5 + local.get $13 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $8 - local.get $5 - local.get $8 + local.set $19 + local.get $13 + local.get $19 f64.const 1.5707963267341256 f64.mul f64.sub - local.set $9 - local.get $8 + local.set $20 + local.get $19 f64.const 6.077100506506192e-11 f64.mul - local.set $10 - local.get $12 + local.set $21 + local.get $14 i32.const 20 i32.shr_u - local.set $13 - local.get $9 - local.get $10 + local.set $22 + local.get $20 + local.get $21 f64.sub - local.set $7 - local.get $7 + local.set $23 + local.get $23 i64.reinterpret_f64 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $14 - local.get $13 - local.get $14 + local.set $24 + local.get $22 + local.get $24 i32.const 20 i32.shr_u i32.const 2047 i32.and i32.sub - local.set $15 - local.get $15 + local.set $25 + local.get $25 i32.const 16 i32.gt_u if - local.get $9 - local.set $6 - local.get $8 + local.get $20 + local.set $26 + local.get $19 f64.const 6.077100506303966e-11 f64.mul - local.set $10 - local.get $6 - local.get $10 + local.set $21 + local.get $26 + local.get $21 f64.sub - local.set $9 - local.get $8 + local.set $20 + local.get $19 f64.const 2.0222662487959506e-21 f64.mul - local.get $6 - local.get $9 + local.get $26 + local.get $20 f64.sub - local.get $10 + local.get $21 f64.sub f64.sub - local.set $10 - local.get $9 - local.get $10 + local.set $21 + local.get $20 + local.get $21 f64.sub - local.set $7 - local.get $7 + local.set $23 + local.get $23 i64.reinterpret_f64 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $14 - local.get $13 - local.get $14 + local.set $24 + local.get $22 + local.get $24 i32.const 20 i32.shr_u i32.const 2047 i32.and i32.sub - local.set $15 - local.get $15 + local.set $25 + local.get $25 i32.const 49 i32.gt_u if - local.get $9 - local.set $16 - local.get $8 + local.get $20 + local.set $27 + local.get $19 f64.const 2.0222662487111665e-21 f64.mul - local.set $10 - local.get $16 - local.get $10 + local.set $21 + local.get $27 + local.get $21 f64.sub - local.set $9 - local.get $8 + local.set $20 + local.get $19 f64.const 8.4784276603689e-32 f64.mul - local.get $16 - local.get $9 + local.get $27 + local.get $20 f64.sub - local.get $10 + local.get $21 f64.sub f64.sub - local.set $10 - local.get $9 - local.get $10 + local.set $21 + local.get $20 + local.get $21 f64.sub - local.set $7 + local.set $23 end end - local.get $9 - local.get $7 + local.get $20 + local.get $23 f64.sub - local.get $10 + local.get $21 f64.sub - local.set $6 - local.get $7 + local.set $28 + local.get $23 global.set $~lib/math/rempio2_y0 - local.get $6 + local.get $28 global.set $~lib/math/rempio2_y1 - local.get $8 + local.get $19 i32.trunc_f64_s br $~lib/math/rempio2|inlined.1 end - local.get $5 - local.get $11 + local.get $13 + local.get $12 call $~lib/math/pio2_large_quot - local.set $15 + local.set $29 i32.const 0 - local.get $15 + local.get $29 i32.sub - local.get $15 - local.get $4 + local.get $29 + local.get $11 select end - local.set $17 + local.set $30 global.get $~lib/math/rempio2_y0 - local.set $18 + local.set $31 global.get $~lib/math/rempio2_y1 - local.set $19 - local.get $17 + local.set $32 + local.get $30 i32.const 1 i32.and if (result f64) - local.get $18 - local.set $8 - local.get $19 - local.set $16 - local.get $8 - local.get $8 + local.get $31 + local.set $34 + local.get $32 + local.set $33 + local.get $34 + local.get $34 f64.mul - local.set $5 - local.get $5 - local.get $5 + local.set $35 + local.get $35 + local.get $35 f64.mul - local.set $6 - local.get $5 + local.set $36 + local.get $35 f64.const 0.0416666666666666 - local.get $5 + local.get $35 f64.const -0.001388888888887411 - local.get $5 + local.get $35 f64.const 2.480158728947673e-05 f64.mul f64.add f64.mul f64.add f64.mul - local.get $6 - local.get $6 + local.get $36 + local.get $36 f64.mul f64.const -2.7557314351390663e-07 - local.get $5 + local.get $35 f64.const 2.087572321298175e-09 - local.get $5 + local.get $35 f64.const -1.1359647557788195e-11 f64.mul f64.add @@ -12712,97 +12911,97 @@ f64.add f64.mul f64.add - local.set $7 + local.set $37 f64.const 0.5 - local.get $5 + local.get $35 f64.mul - local.set $10 + local.set $38 f64.const 1 - local.get $10 + local.get $38 f64.sub - local.set $6 - local.get $6 + local.set $36 + local.get $36 f64.const 1 - local.get $6 + local.get $36 f64.sub - local.get $10 + local.get $38 f64.sub - local.get $5 - local.get $7 + local.get $35 + local.get $37 f64.mul - local.get $8 - local.get $16 + local.get $34 + local.get $33 f64.mul f64.sub f64.add f64.add else block $~lib/math/sin_kern|inlined.2 (result f64) - local.get $18 - local.set $16 - local.get $19 - local.set $9 + local.get $31 + local.set $41 + local.get $32 + local.set $40 i32.const 1 - local.set $13 - local.get $16 - local.get $16 + local.set $39 + local.get $41 + local.get $41 f64.mul - local.set $10 - local.get $10 - local.get $10 + local.set $42 + local.get $42 + local.get $42 f64.mul - local.set $7 + local.set $43 f64.const 0.00833333333332249 - local.get $10 + local.get $42 f64.const -1.984126982985795e-04 - local.get $10 + local.get $42 f64.const 2.7557313707070068e-06 f64.mul f64.add f64.mul f64.add - local.get $10 - local.get $7 + local.get $42 + local.get $43 f64.mul f64.const -2.5050760253406863e-08 - local.get $10 + local.get $42 f64.const 1.58969099521155e-10 f64.mul f64.add f64.mul f64.add - local.set $6 - local.get $10 - local.get $16 + local.set $44 + local.get $42 + local.get $41 f64.mul - local.set $5 - local.get $13 + local.set $45 + local.get $39 i32.eqz if - local.get $16 - local.get $5 + local.get $41 + local.get $45 f64.const -0.16666666666666632 - local.get $10 - local.get $6 + local.get $42 + local.get $44 f64.mul f64.add f64.mul f64.add br $~lib/math/sin_kern|inlined.2 else - local.get $16 - local.get $10 + local.get $41 + local.get $42 f64.const 0.5 - local.get $9 + local.get $40 f64.mul - local.get $5 - local.get $6 + local.get $45 + local.get $44 f64.mul f64.sub f64.mul - local.get $9 + local.get $40 f64.sub - local.get $5 + local.get $45 f64.const -0.16666666666666632 f64.mul f64.sub @@ -12813,7 +13012,7 @@ end end local.set $0 - local.get $17 + local.get $30 i32.const 2 i32.and if (result f64) @@ -12855,25 +13054,63 @@ (local $5 f64) (local $6 f64) (local $7 f64) - (local $8 i32) - (local $9 i32) - (local $10 f32) - (local $11 i32) - (local $12 f32) - (local $13 i32) - (local $14 i64) - (local $15 i32) - (local $16 i64) - (local $17 i64) - (local $18 i64) - (local $19 i64) - (local $20 i64) - (local $21 i64) - (local $22 i64) - (local $23 i32) - (local $24 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) + (local $16 f64) + (local $17 f64) + (local $18 f64) + (local $19 f64) + (local $20 f64) + (local $21 f64) + (local $22 f64) + (local $23 f64) + (local $24 f64) (local $25 f64) - (local $26 f32) + (local $26 f64) + (local $27 f64) + (local $28 f64) + (local $29 f64) + (local $30 f64) + (local $31 f64) + (local $32 f64) + (local $33 f64) + (local $34 i32) + (local $35 i32) + (local $36 f32) + (local $37 f64) + (local $38 i32) + (local $39 f32) + (local $40 i32) + (local $41 i64) + (local $42 i32) + (local $43 i64) + (local $44 i64) + (local $45 i64) + (local $46 i64) + (local $47 i64) + (local $48 i64) + (local $49 i64) + (local $50 i64) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 f64) + (local $55 f64) + (local $56 f64) + (local $57 f64) + (local $58 f64) + (local $59 f64) + (local $60 f64) + (local $61 f64) + (local $62 f64) + (local $63 f64) + (local $64 f32) local.get $0 i32.reinterpret_f32 local.set $1 @@ -12953,35 +13190,35 @@ f64.promote_f32 f64.const 1.5707963267948966 f64.add - local.set $3 - local.get $3 - local.get $3 + local.set $8 + local.get $8 + local.get $8 f64.mul - local.set $7 - local.get $7 - local.get $7 + local.set $9 + local.get $9 + local.get $9 f64.mul - local.set $6 + local.set $10 f64.const -0.001388676377460993 - local.get $7 + local.get $9 f64.const 2.439044879627741e-05 f64.mul f64.add - local.set $5 + local.set $11 f32.const 1 f64.promote_f32 - local.get $7 + local.get $9 f64.const -0.499999997251031 f64.mul f64.add - local.get $6 + local.get $10 f64.const 0.04166662332373906 f64.mul f64.add - local.get $6 - local.get $7 + local.get $10 + local.get $9 f64.mul - local.get $5 + local.get $11 f64.mul f64.add f32.demote_f64 @@ -12991,35 +13228,35 @@ f64.promote_f32 f64.const 1.5707963267948966 f64.sub - local.set $4 - local.get $4 - local.get $4 + local.set $12 + local.get $12 + local.get $12 f64.mul - local.set $5 - local.get $5 - local.get $5 + local.set $13 + local.get $13 + local.get $13 f64.mul - local.set $6 + local.set $14 f64.const -0.001388676377460993 - local.get $5 + local.get $13 f64.const 2.439044879627741e-05 f64.mul f64.add - local.set $7 + local.set $15 f32.const 1 f64.promote_f32 - local.get $5 + local.get $13 f64.const -0.499999997251031 f64.mul f64.add - local.get $6 + local.get $14 f64.const 0.04166662332373906 f64.mul f64.add - local.get $6 - local.get $5 + local.get $14 + local.get $13 f64.mul - local.get $7 + local.get $15 f64.mul f64.add f32.demote_f64 @@ -13039,38 +13276,38 @@ f64.sub end f64.neg - local.set $3 - local.get $3 - local.get $3 + local.set $16 + local.get $16 + local.get $16 f64.mul - local.set $7 - local.get $7 - local.get $7 + local.set $17 + local.get $17 + local.get $17 f64.mul - local.set $6 + local.set $18 f64.const -1.9839334836096632e-04 - local.get $7 + local.get $17 f64.const 2.718311493989822e-06 f64.mul f64.add - local.set $5 - local.get $7 - local.get $3 + local.set $19 + local.get $17 + local.get $16 f64.mul - local.set $4 - local.get $3 - local.get $4 + local.set $20 + local.get $16 + local.get $20 f64.const -0.16666666641626524 - local.get $7 + local.get $17 f64.const 0.008333329385889463 f64.mul f64.add f64.mul f64.add - local.get $4 - local.get $6 + local.get $20 + local.get $18 f64.mul - local.get $5 + local.get $19 f64.mul f64.add f32.demote_f64 @@ -13090,35 +13327,35 @@ f64.promote_f32 f64.const 4.71238898038469 f64.add - local.set $3 - local.get $3 - local.get $3 + local.set $21 + local.get $21 + local.get $21 f64.mul - local.set $4 - local.get $4 - local.get $4 + local.set $22 + local.get $22 + local.get $22 f64.mul - local.set $5 + local.set $23 f64.const -0.001388676377460993 - local.get $4 + local.get $22 f64.const 2.439044879627741e-05 f64.mul f64.add - local.set $6 + local.set $24 f32.const 1 f64.promote_f32 - local.get $4 + local.get $22 f64.const -0.499999997251031 f64.mul f64.add - local.get $5 + local.get $23 f64.const 0.04166662332373906 f64.mul f64.add - local.get $5 - local.get $4 + local.get $23 + local.get $22 f64.mul - local.get $6 + local.get $24 f64.mul f64.add f32.demote_f64 @@ -13127,35 +13364,35 @@ f64.promote_f32 f64.const 4.71238898038469 f64.sub - local.set $7 - local.get $7 - local.get $7 + local.set $25 + local.get $25 + local.get $25 f64.mul - local.set $6 - local.get $6 - local.get $6 + local.set $26 + local.get $26 + local.get $26 f64.mul - local.set $5 + local.set $27 f64.const -0.001388676377460993 - local.get $6 + local.get $26 f64.const 2.439044879627741e-05 f64.mul f64.add - local.set $4 + local.set $28 f32.const 1 f64.promote_f32 - local.get $6 + local.get $26 f64.const -0.499999997251031 f64.mul f64.add - local.get $5 + local.get $27 f64.const 0.04166662332373906 f64.mul f64.add - local.get $5 - local.get $6 + local.get $27 + local.get $26 f64.mul - local.get $4 + local.get $28 f64.mul f64.add f32.demote_f64 @@ -13175,38 +13412,38 @@ f64.const 6.283185307179586 f64.sub end - local.set $3 - local.get $3 - local.get $3 + local.set $29 + local.get $29 + local.get $29 f64.mul - local.set $4 - local.get $4 - local.get $4 + local.set $30 + local.get $30 + local.get $30 f64.mul - local.set $5 + local.set $31 f64.const -1.9839334836096632e-04 - local.get $4 + local.get $30 f64.const 2.718311493989822e-06 f64.mul f64.add - local.set $6 - local.get $4 - local.get $3 + local.set $32 + local.get $30 + local.get $29 f64.mul - local.set $7 - local.get $3 - local.get $7 + local.set $33 + local.get $29 + local.get $33 f64.const -0.16666666641626524 - local.get $4 + local.get $30 f64.const 0.008333329385889463 f64.mul f64.add f64.mul f64.add - local.get $7 - local.get $5 + local.get $33 + local.get $31 f64.mul - local.get $6 + local.get $32 f64.mul f64.add f32.demote_f64 @@ -13223,238 +13460,238 @@ end block $~lib/math/rempio2f|inlined.1 (result i32) local.get $0 - local.set $10 + local.set $36 local.get $1 - local.set $9 + local.set $35 local.get $2 - local.set $8 - local.get $9 + local.set $34 + local.get $35 i32.const 1305022427 i32.lt_u if - local.get $10 + local.get $36 f64.promote_f32 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $7 - local.get $10 + local.set $37 + local.get $36 f64.promote_f32 - local.get $7 + local.get $37 f64.const 1.5707963109016418 f64.mul f64.sub - local.get $7 + local.get $37 f64.const 1.5893254773528196e-08 f64.mul f64.sub global.set $~lib/math/rempio2f_y - local.get $7 + local.get $37 i32.trunc_f64_s br $~lib/math/rempio2f|inlined.1 end - local.get $10 - local.set $12 - local.get $9 - local.set $11 - local.get $11 + local.get $36 + local.set $39 + local.get $35 + local.set $38 + local.get $38 i32.const 23 i32.shr_s i32.const 152 i32.sub - local.set $13 - local.get $13 + local.set $40 + local.get $40 i32.const 63 i32.and i64.extend_i32_s - local.set $14 + local.set $41 i32.const 4600 - local.get $13 + local.get $40 i32.const 6 i32.shr_s i32.const 3 i32.shl i32.add - local.set $15 - local.get $15 + local.set $42 + local.get $42 i64.load - local.set $16 - local.get $15 + local.set $43 + local.get $42 i64.load offset=8 - local.set $17 - local.get $14 + local.set $44 + local.get $41 i64.const 32 i64.gt_u if - local.get $15 + local.get $42 i64.load offset=16 - local.set $19 - local.get $19 + local.set $46 + local.get $46 i64.const 96 - local.get $14 + local.get $41 i64.sub i64.shr_u - local.set $18 - local.get $18 - local.get $17 - local.get $14 + local.set $45 + local.get $45 + local.get $44 + local.get $41 i64.const 32 i64.sub i64.shl i64.or - local.set $18 + local.set $45 else - local.get $17 + local.get $44 i64.const 32 - local.get $14 + local.get $41 i64.sub i64.shr_u - local.set $18 + local.set $45 end - local.get $17 + local.get $44 i64.const 64 - local.get $14 + local.get $41 i64.sub i64.shr_u - local.get $16 - local.get $14 + local.get $43 + local.get $41 i64.shl i64.or - local.set $19 - local.get $11 + local.set $47 + local.get $38 i32.const 8388607 i32.and i32.const 8388608 i32.or i64.extend_i32_s - local.set $20 - local.get $20 - local.get $19 + local.set $48 + local.get $48 + local.get $47 i64.mul - local.get $20 - local.get $18 + local.get $48 + local.get $45 i64.mul i64.const 32 i64.shr_u i64.add - local.set $21 - local.get $21 + local.set $49 + local.get $49 i64.const 2 i64.shl - local.set $22 - local.get $21 + local.set $50 + local.get $49 i64.const 62 i64.shr_u - local.get $22 + local.get $50 i64.const 63 i64.shr_u i64.add i32.wrap_i64 - local.set $23 + local.set $51 f64.const 8.515303950216386e-20 - local.get $12 + local.get $39 f64.promote_f32 f64.copysign - local.get $22 + local.get $50 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y - local.get $23 - local.set $23 + local.get $51 + local.set $52 i32.const 0 - local.get $23 + local.get $52 i32.sub - local.get $23 - local.get $8 + local.get $52 + local.get $34 select end - local.set $24 + local.set $53 global.get $~lib/math/rempio2f_y - local.set $25 - local.get $24 + local.set $54 + local.get $53 i32.const 1 i32.and if (result f32) - local.get $25 - local.set $3 - local.get $3 - local.get $3 + local.get $54 + local.set $55 + local.get $55 + local.get $55 f64.mul - local.set $7 - local.get $7 - local.get $7 + local.set $56 + local.get $56 + local.get $56 f64.mul - local.set $6 + local.set $57 f64.const -0.001388676377460993 - local.get $7 + local.get $56 f64.const 2.439044879627741e-05 f64.mul f64.add - local.set $5 + local.set $58 f32.const 1 f64.promote_f32 - local.get $7 + local.get $56 f64.const -0.499999997251031 f64.mul f64.add - local.get $6 + local.get $57 f64.const 0.04166662332373906 f64.mul f64.add - local.get $6 - local.get $7 + local.get $57 + local.get $56 f64.mul - local.get $5 + local.get $58 f64.mul f64.add f32.demote_f64 else - local.get $25 - local.set $4 - local.get $4 - local.get $4 + local.get $54 + local.set $59 + local.get $59 + local.get $59 f64.mul - local.set $5 - local.get $5 - local.get $5 + local.set $60 + local.get $60 + local.get $60 f64.mul - local.set $6 + local.set $61 f64.const -1.9839334836096632e-04 - local.get $5 + local.get $60 f64.const 2.718311493989822e-06 f64.mul f64.add - local.set $7 - local.get $5 - local.get $4 + local.set $62 + local.get $60 + local.get $59 f64.mul - local.set $3 - local.get $4 - local.get $3 + local.set $63 + local.get $59 + local.get $63 f64.const -0.16666666641626524 - local.get $5 + local.get $60 f64.const 0.008333329385889463 f64.mul f64.add f64.mul f64.add - local.get $3 - local.get $6 + local.get $63 + local.get $61 f64.mul - local.get $7 + local.get $62 f64.mul f64.add f32.demote_f64 end - local.set $26 - local.get $24 + local.set $64 + local.get $53 i32.const 2 i32.and if (result f32) - local.get $26 + local.get $64 f32.neg else - local.get $26 + local.get $64 end ) (func $std/math/test_sinf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) @@ -13956,11 +14193,17 @@ (local $10 f64) (local $11 f64) (local $12 f64) - (local $13 i32) - (local $14 i32) - (local $15 f64) + (local $13 f64) + (local $14 f64) + (local $15 i32) (local $16 f64) (local $17 i32) + (local $18 i32) + (local $19 f64) + (local $20 f64) + (local $21 f64) + (local $22 i32) + (local $23 i32) local.get $0 i64.reinterpret_f64 local.set $1 @@ -14117,141 +14360,141 @@ f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $11 + local.set $12 local.get $6 - local.get $11 + local.get $12 f64.const 1.5707963267341256 f64.mul f64.sub - local.set $10 - local.get $11 + local.set $13 + local.get $12 f64.const 6.077100506506192e-11 f64.mul - local.set $9 + local.set $14 local.get $7 i32.const 20 i32.shr_u - local.set $8 - local.get $10 - local.get $9 + local.set $15 + local.get $13 + local.get $14 f64.sub - local.set $12 - local.get $12 + local.set $16 + local.get $16 i64.reinterpret_f64 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $13 - local.get $8 - local.get $13 + local.set $17 + local.get $15 + local.get $17 i32.const 20 i32.shr_u i32.const 2047 i32.and i32.sub - local.set $14 - local.get $14 + local.set $18 + local.get $18 i32.const 16 i32.gt_u if - local.get $10 - local.set $15 - local.get $11 + local.get $13 + local.set $19 + local.get $12 f64.const 6.077100506303966e-11 f64.mul - local.set $9 - local.get $15 - local.get $9 + local.set $14 + local.get $19 + local.get $14 f64.sub - local.set $10 - local.get $11 + local.set $13 + local.get $12 f64.const 2.0222662487959506e-21 f64.mul - local.get $15 - local.get $10 + local.get $19 + local.get $13 f64.sub - local.get $9 + local.get $14 f64.sub f64.sub - local.set $9 - local.get $10 - local.get $9 + local.set $14 + local.get $13 + local.get $14 f64.sub - local.set $12 - local.get $12 + local.set $16 + local.get $16 i64.reinterpret_f64 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $13 - local.get $8 - local.get $13 + local.set $17 + local.get $15 + local.get $17 i32.const 20 i32.shr_u i32.const 2047 i32.and i32.sub - local.set $14 - local.get $14 + local.set $18 + local.get $18 i32.const 49 i32.gt_u if - local.get $10 - local.set $16 - local.get $11 + local.get $13 + local.set $20 + local.get $12 f64.const 2.0222662487111665e-21 f64.mul - local.set $9 - local.get $16 - local.get $9 + local.set $14 + local.get $20 + local.get $14 f64.sub - local.set $10 - local.get $11 + local.set $13 + local.get $12 f64.const 8.4784276603689e-32 f64.mul - local.get $16 - local.get $10 + local.get $20 + local.get $13 f64.sub - local.get $9 + local.get $14 f64.sub f64.sub - local.set $9 - local.get $10 - local.get $9 + local.set $14 + local.get $13 + local.get $14 f64.sub - local.set $12 + local.set $16 end end - local.get $10 - local.get $12 + local.get $13 + local.get $16 f64.sub - local.get $9 + local.get $14 f64.sub - local.set $15 - local.get $12 + local.set $21 + local.get $16 global.set $~lib/math/rempio2_y0 - local.get $15 + local.get $21 global.set $~lib/math/rempio2_y1 - local.get $11 + local.get $12 i32.trunc_f64_s br $~lib/math/rempio2|inlined.2 end local.get $6 local.get $5 call $~lib/math/pio2_large_quot - local.set $14 + local.set $22 i32.const 0 - local.get $14 + local.get $22 i32.sub - local.get $14 + local.get $22 local.get $4 select end - local.set $17 + local.set $23 global.get $~lib/math/rempio2_y0 global.get $~lib/math/rempio2_y1 i32.const 1 - local.get $17 + local.get $23 i32.const 1 i32.and i32.const 1 @@ -14295,22 +14538,66 @@ (local $9 f64) (local $10 f64) (local $11 i32) - (local $12 f32) - (local $13 i32) - (local $14 f32) - (local $15 i32) - (local $16 i64) - (local $17 i32) - (local $18 i64) - (local $19 i64) - (local $20 i64) - (local $21 i64) - (local $22 i64) - (local $23 i64) - (local $24 i64) - (local $25 i32) - (local $26 i32) - (local $27 f64) + (local $12 f64) + (local $13 f64) + (local $14 f64) + (local $15 f64) + (local $16 f64) + (local $17 f64) + (local $18 f64) + (local $19 i32) + (local $20 f64) + (local $21 f64) + (local $22 f64) + (local $23 f64) + (local $24 f64) + (local $25 f64) + (local $26 f64) + (local $27 i32) + (local $28 f64) + (local $29 f64) + (local $30 f64) + (local $31 f64) + (local $32 f64) + (local $33 f64) + (local $34 f64) + (local $35 i32) + (local $36 f64) + (local $37 f64) + (local $38 f64) + (local $39 f64) + (local $40 f64) + (local $41 f64) + (local $42 f64) + (local $43 i32) + (local $44 i32) + (local $45 f32) + (local $46 f64) + (local $47 i32) + (local $48 f32) + (local $49 i32) + (local $50 i64) + (local $51 i32) + (local $52 i64) + (local $53 i64) + (local $54 i64) + (local $55 i64) + (local $56 i64) + (local $57 i64) + (local $58 i64) + (local $59 i64) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 f64) + (local $64 i32) + (local $65 f64) + (local $66 f64) + (local $67 f64) + (local $68 f64) + (local $69 f64) + (local $70 f64) + (local $71 f64) local.get $0 i32.reinterpret_f32 local.set $1 @@ -14420,63 +14707,63 @@ f64.const 1.5707963267948966 f64.sub end - local.set $4 + local.set $12 i32.const 1 - local.set $3 - local.get $4 - local.get $4 + local.set $11 + local.get $12 + local.get $12 f64.mul - local.set $10 + local.set $13 f64.const 0.002974357433599673 - local.get $10 + local.get $13 f64.const 0.009465647849436732 f64.mul f64.add - local.set $9 + local.set $14 f64.const 0.05338123784456704 - local.get $10 + local.get $13 f64.const 0.024528318116654728 f64.mul f64.add - local.set $8 - local.get $10 - local.get $10 + local.set $15 + local.get $13 + local.get $13 f64.mul - local.set $7 - local.get $10 - local.get $4 + local.set $16 + local.get $13 + local.get $12 f64.mul - local.set $6 + local.set $17 f64.const 0.3333313950307914 - local.get $10 + local.get $13 f64.const 0.13339200271297674 f64.mul f64.add - local.set $5 - local.get $4 - local.get $6 - local.get $5 + local.set $18 + local.get $12 + local.get $17 + local.get $18 f64.mul f64.add - local.get $6 - local.get $7 + local.get $17 + local.get $16 f64.mul - local.get $8 - local.get $7 - local.get $9 + local.get $15 + local.get $16 + local.get $14 f64.mul f64.add f64.mul f64.add - local.set $9 - local.get $3 + local.set $14 + local.get $11 if (result f64) f32.const -1 f64.promote_f32 - local.get $9 + local.get $14 f64.div else - local.get $9 + local.get $14 end f32.demote_f64 return @@ -14493,63 +14780,63 @@ f64.const 3.141592653589793 f64.sub end - local.set $4 + local.set $20 i32.const 0 - local.set $3 - local.get $4 - local.get $4 + local.set $19 + local.get $20 + local.get $20 f64.mul - local.set $5 + local.set $21 f64.const 0.002974357433599673 - local.get $5 + local.get $21 f64.const 0.009465647849436732 f64.mul f64.add - local.set $6 + local.set $22 f64.const 0.05338123784456704 - local.get $5 + local.get $21 f64.const 0.024528318116654728 f64.mul f64.add - local.set $7 - local.get $5 - local.get $5 + local.set $23 + local.get $21 + local.get $21 f64.mul - local.set $8 - local.get $5 - local.get $4 + local.set $24 + local.get $21 + local.get $20 f64.mul - local.set $9 + local.set $25 f64.const 0.3333313950307914 - local.get $5 + local.get $21 f64.const 0.13339200271297674 f64.mul f64.add - local.set $10 - local.get $4 - local.get $9 - local.get $10 + local.set $26 + local.get $20 + local.get $25 + local.get $26 f64.mul f64.add - local.get $9 - local.get $8 + local.get $25 + local.get $24 f64.mul - local.get $7 - local.get $8 - local.get $6 + local.get $23 + local.get $24 + local.get $22 f64.mul f64.add f64.mul f64.add - local.set $6 - local.get $3 + local.set $22 + local.get $19 if (result f64) f32.const -1 f64.promote_f32 - local.get $6 + local.get $22 f64.div else - local.get $6 + local.get $22 end f32.demote_f64 return @@ -14576,63 +14863,63 @@ f64.const 4.71238898038469 f64.sub end - local.set $4 + local.set $28 i32.const 1 - local.set $3 - local.get $4 - local.get $4 + local.set $27 + local.get $28 + local.get $28 f64.mul - local.set $10 + local.set $29 f64.const 0.002974357433599673 - local.get $10 + local.get $29 f64.const 0.009465647849436732 f64.mul f64.add - local.set $9 + local.set $30 f64.const 0.05338123784456704 - local.get $10 + local.get $29 f64.const 0.024528318116654728 f64.mul f64.add - local.set $8 - local.get $10 - local.get $10 + local.set $31 + local.get $29 + local.get $29 f64.mul - local.set $7 - local.get $10 - local.get $4 + local.set $32 + local.get $29 + local.get $28 f64.mul - local.set $6 + local.set $33 f64.const 0.3333313950307914 - local.get $10 + local.get $29 f64.const 0.13339200271297674 f64.mul f64.add - local.set $5 - local.get $4 - local.get $6 - local.get $5 + local.set $34 + local.get $28 + local.get $33 + local.get $34 f64.mul f64.add - local.get $6 - local.get $7 + local.get $33 + local.get $32 f64.mul - local.get $8 - local.get $7 - local.get $9 + local.get $31 + local.get $32 + local.get $30 f64.mul f64.add f64.mul f64.add - local.set $9 - local.get $3 + local.set $30 + local.get $27 if (result f64) f32.const -1 f64.promote_f32 - local.get $9 + local.get $30 f64.div else - local.get $9 + local.get $30 end f32.demote_f64 return @@ -14649,63 +14936,63 @@ f64.const 6.283185307179586 f64.sub end - local.set $4 + local.set $36 i32.const 0 - local.set $3 - local.get $4 - local.get $4 + local.set $35 + local.get $36 + local.get $36 f64.mul - local.set $5 + local.set $37 f64.const 0.002974357433599673 - local.get $5 + local.get $37 f64.const 0.009465647849436732 f64.mul f64.add - local.set $6 + local.set $38 f64.const 0.05338123784456704 - local.get $5 + local.get $37 f64.const 0.024528318116654728 f64.mul f64.add - local.set $7 - local.get $5 - local.get $5 + local.set $39 + local.get $37 + local.get $37 f64.mul - local.set $8 - local.get $5 - local.get $4 + local.set $40 + local.get $37 + local.get $36 f64.mul - local.set $9 + local.set $41 f64.const 0.3333313950307914 - local.get $5 + local.get $37 f64.const 0.13339200271297674 f64.mul f64.add - local.set $10 - local.get $4 - local.get $9 - local.get $10 + local.set $42 + local.get $36 + local.get $41 + local.get $42 f64.mul f64.add - local.get $9 - local.get $8 + local.get $41 + local.get $40 f64.mul - local.get $7 - local.get $8 - local.get $6 + local.get $39 + local.get $40 + local.get $38 f64.mul f64.add f64.mul f64.add - local.set $6 - local.get $3 + local.set $38 + local.get $35 if (result f64) f32.const -1 f64.promote_f32 - local.get $6 + local.get $38 f64.div else - local.get $6 + local.get $38 end f32.demote_f64 return @@ -14723,214 +15010,214 @@ end block $~lib/math/rempio2f|inlined.2 (result i32) local.get $0 - local.set $12 + local.set $45 local.get $1 - local.set $11 + local.set $44 local.get $2 - local.set $3 - local.get $11 + local.set $43 + local.get $44 i32.const 1305022427 i32.lt_u if - local.get $12 + local.get $45 f64.promote_f32 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $10 - local.get $12 + local.set $46 + local.get $45 f64.promote_f32 - local.get $10 + local.get $46 f64.const 1.5707963109016418 f64.mul f64.sub - local.get $10 + local.get $46 f64.const 1.5893254773528196e-08 f64.mul f64.sub global.set $~lib/math/rempio2f_y - local.get $10 + local.get $46 i32.trunc_f64_s br $~lib/math/rempio2f|inlined.2 end - local.get $12 - local.set $14 - local.get $11 - local.set $13 - local.get $13 + local.get $45 + local.set $48 + local.get $44 + local.set $47 + local.get $47 i32.const 23 i32.shr_s i32.const 152 i32.sub - local.set $15 - local.get $15 + local.set $49 + local.get $49 i32.const 63 i32.and i64.extend_i32_s - local.set $16 + local.set $50 i32.const 4600 - local.get $15 + local.get $49 i32.const 6 i32.shr_s i32.const 3 i32.shl i32.add - local.set $17 - local.get $17 + local.set $51 + local.get $51 i64.load - local.set $18 - local.get $17 + local.set $52 + local.get $51 i64.load offset=8 - local.set $19 - local.get $16 + local.set $53 + local.get $50 i64.const 32 i64.gt_u if - local.get $17 + local.get $51 i64.load offset=16 - local.set $21 - local.get $21 + local.set $55 + local.get $55 i64.const 96 - local.get $16 + local.get $50 i64.sub i64.shr_u - local.set $20 - local.get $20 - local.get $19 - local.get $16 + local.set $54 + local.get $54 + local.get $53 + local.get $50 i64.const 32 i64.sub i64.shl i64.or - local.set $20 + local.set $54 else - local.get $19 + local.get $53 i64.const 32 - local.get $16 + local.get $50 i64.sub i64.shr_u - local.set $20 + local.set $54 end - local.get $19 + local.get $53 i64.const 64 - local.get $16 + local.get $50 i64.sub i64.shr_u - local.get $18 - local.get $16 + local.get $52 + local.get $50 i64.shl i64.or - local.set $21 - local.get $13 + local.set $56 + local.get $47 i32.const 8388607 i32.and i32.const 8388608 i32.or i64.extend_i32_s - local.set $22 - local.get $22 - local.get $21 + local.set $57 + local.get $57 + local.get $56 i64.mul - local.get $22 - local.get $20 + local.get $57 + local.get $54 i64.mul i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $23 + local.set $58 + local.get $58 i64.const 2 i64.shl - local.set $24 - local.get $23 + local.set $59 + local.get $58 i64.const 62 i64.shr_u - local.get $24 + local.get $59 i64.const 63 i64.shr_u i64.add i32.wrap_i64 - local.set $25 + local.set $60 f64.const 8.515303950216386e-20 - local.get $14 + local.get $48 f64.promote_f32 f64.copysign - local.get $24 + local.get $59 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y - local.get $25 - local.set $25 + local.get $60 + local.set $61 i32.const 0 - local.get $25 + local.get $61 i32.sub - local.get $25 - local.get $3 + local.get $61 + local.get $43 select end - local.set $26 + local.set $62 global.get $~lib/math/rempio2f_y - local.set $27 - local.get $27 - local.set $4 - local.get $26 + local.set $63 + local.get $63 + local.set $65 + local.get $62 i32.const 1 i32.and - local.set $13 - local.get $4 - local.get $4 + local.set $64 + local.get $65 + local.get $65 f64.mul - local.set $10 + local.set $66 f64.const 0.002974357433599673 - local.get $10 + local.get $66 f64.const 0.009465647849436732 f64.mul f64.add - local.set $9 + local.set $67 f64.const 0.05338123784456704 - local.get $10 + local.get $66 f64.const 0.024528318116654728 f64.mul f64.add - local.set $8 - local.get $10 - local.get $10 + local.set $68 + local.get $66 + local.get $66 f64.mul - local.set $7 - local.get $10 - local.get $4 + local.set $69 + local.get $66 + local.get $65 f64.mul - local.set $6 + local.set $70 f64.const 0.3333313950307914 - local.get $10 + local.get $66 f64.const 0.13339200271297674 f64.mul f64.add - local.set $5 - local.get $4 - local.get $6 - local.get $5 + local.set $71 + local.get $65 + local.get $70 + local.get $71 f64.mul f64.add - local.get $6 - local.get $7 + local.get $70 + local.get $69 f64.mul - local.get $8 - local.get $7 - local.get $9 + local.get $68 + local.get $69 + local.get $67 f64.mul f64.add f64.mul f64.add - local.set $9 - local.get $13 + local.set $67 + local.get $64 if (result f64) f32.const -1 f64.promote_f32 - local.get $9 + local.get $67 f64.div else - local.get $9 + local.get $67 end f32.demote_f64 ) @@ -15201,19 +15488,52 @@ (local $8 f64) (local $9 f64) (local $10 f64) - (local $11 i64) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) + (local $11 f64) + (local $12 f64) + (local $13 f64) + (local $14 f64) + (local $15 f64) (local $16 f64) - (local $17 i32) - (local $18 f64) - (local $19 f64) + (local $17 f64) + (local $18 i32) + (local $19 i64) (local $20 f64) - (local $21 f64) - (local $22 f64) + (local $21 i32) + (local $22 i32) (local $23 f64) + (local $24 f64) + (local $25 f64) + (local $26 f64) + (local $27 f64) + (local $28 f64) + (local $29 i32) + (local $30 f64) + (local $31 i32) + (local $32 i32) + (local $33 f64) + (local $34 f64) + (local $35 f64) + (local $36 i32) + (local $37 i32) + (local $38 f64) + (local $39 f64) + (local $40 i32) + (local $41 f64) + (local $42 f64) + (local $43 f64) + (local $44 f64) + (local $45 f64) + (local $46 f64) + (local $47 f64) + (local $48 f64) + (local $49 f64) + (local $50 f64) + (local $51 f64) + (local $52 f64) + (local $53 f64) + (local $54 f64) + (local $55 f64) + (local $56 f64) local.get $0 i64.reinterpret_f64 local.set $1 @@ -15320,35 +15640,35 @@ end global.set $~lib/math/NativeMath.sincos_sin local.get $0 - local.set $6 + local.set $12 f64.const 0 - local.set $5 - local.get $6 - local.get $6 + local.set $11 + local.get $12 + local.get $12 f64.mul - local.set $10 - local.get $10 - local.get $10 + local.set $13 + local.get $13 + local.get $13 f64.mul - local.set $9 - local.get $10 + local.set $14 + local.get $13 f64.const 0.0416666666666666 - local.get $10 + local.get $13 f64.const -0.001388888888887411 - local.get $10 + local.get $13 f64.const 2.480158728947673e-05 f64.mul f64.add f64.mul f64.add f64.mul - local.get $9 - local.get $9 + local.get $14 + local.get $14 f64.mul f64.const -2.7557314351390663e-07 - local.get $10 + local.get $13 f64.const 2.087572321298175e-09 - local.get $10 + local.get $13 f64.const -1.1359647557788195e-11 f64.mul f64.add @@ -15356,26 +15676,26 @@ f64.add f64.mul f64.add - local.set $8 + local.set $15 f64.const 0.5 - local.get $10 + local.get $13 f64.mul - local.set $7 + local.set $16 f64.const 1 - local.get $7 + local.get $16 f64.sub - local.set $9 - local.get $9 + local.set $14 + local.get $14 f64.const 1 - local.get $9 + local.get $14 f64.sub - local.get $7 + local.get $16 f64.sub - local.get $10 - local.get $8 + local.get $13 + local.get $15 f64.mul - local.get $6 - local.get $5 + local.get $12 + local.get $11 f64.mul f64.sub f64.add @@ -15390,328 +15710,328 @@ local.get $0 local.get $0 f64.sub - local.set $7 - local.get $7 + local.set $17 + local.get $17 global.set $~lib/math/NativeMath.sincos_sin - local.get $7 + local.get $17 global.set $~lib/math/NativeMath.sincos_cos return end block $~lib/math/rempio2|inlined.3 (result i32) local.get $0 - local.set $5 + local.set $20 local.get $1 - local.set $11 + local.set $19 local.get $3 - local.set $4 - local.get $11 + local.set $18 + local.get $19 i64.const 32 i64.shr_u i32.wrap_i64 i32.const 2147483647 i32.and - local.set $12 + local.set $21 i32.const 0 i32.const 1 i32.lt_s drop - local.get $12 + local.get $21 i32.const 1073928572 i32.lt_u if i32.const 1 - local.set $13 - local.get $4 + local.set $22 + local.get $18 i32.eqz if - local.get $5 + local.get $20 f64.const 1.5707963267341256 f64.sub - local.set $7 - local.get $12 + local.set $23 + local.get $21 i32.const 1073291771 i32.ne if - local.get $7 + local.get $23 f64.const 6.077100506506192e-11 f64.sub - local.set $8 - local.get $7 - local.get $8 + local.set $24 + local.get $23 + local.get $24 f64.sub f64.const 6.077100506506192e-11 f64.sub - local.set $9 + local.set $25 else - local.get $7 + local.get $23 f64.const 6.077100506303966e-11 f64.sub - local.set $7 - local.get $7 + local.set $23 + local.get $23 f64.const 2.0222662487959506e-21 f64.sub - local.set $8 - local.get $7 - local.get $8 + local.set $24 + local.get $23 + local.get $24 f64.sub f64.const 2.0222662487959506e-21 f64.sub - local.set $9 + local.set $25 end else - local.get $5 + local.get $20 f64.const 1.5707963267341256 f64.add - local.set $7 - local.get $12 + local.set $23 + local.get $21 i32.const 1073291771 i32.ne if - local.get $7 + local.get $23 f64.const 6.077100506506192e-11 f64.add - local.set $8 - local.get $7 - local.get $8 + local.set $24 + local.get $23 + local.get $24 f64.sub f64.const 6.077100506506192e-11 f64.add - local.set $9 + local.set $25 else - local.get $7 + local.get $23 f64.const 6.077100506303966e-11 f64.add - local.set $7 - local.get $7 + local.set $23 + local.get $23 f64.const 2.0222662487959506e-21 f64.add - local.set $8 - local.get $7 - local.get $8 + local.set $24 + local.get $23 + local.get $24 f64.sub f64.const 2.0222662487959506e-21 f64.add - local.set $9 + local.set $25 end i32.const -1 - local.set $13 + local.set $22 end - local.get $8 + local.get $24 global.set $~lib/math/rempio2_y0 - local.get $9 + local.get $25 global.set $~lib/math/rempio2_y1 - local.get $13 + local.get $22 br $~lib/math/rempio2|inlined.3 end - local.get $12 + local.get $21 i32.const 1094263291 i32.lt_u if - local.get $5 + local.get $20 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $9 - local.get $5 - local.get $9 + local.set $26 + local.get $20 + local.get $26 f64.const 1.5707963267341256 f64.mul f64.sub - local.set $8 - local.get $9 + local.set $27 + local.get $26 f64.const 6.077100506506192e-11 f64.mul - local.set $7 - local.get $12 + local.set $28 + local.get $21 i32.const 20 i32.shr_u - local.set $13 - local.get $8 - local.get $7 + local.set $29 + local.get $27 + local.get $28 f64.sub - local.set $10 - local.get $10 + local.set $30 + local.get $30 i64.reinterpret_f64 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $14 - local.get $13 - local.get $14 + local.set $31 + local.get $29 + local.get $31 i32.const 20 i32.shr_u i32.const 2047 i32.and i32.sub - local.set $15 - local.get $15 + local.set $32 + local.get $32 i32.const 16 i32.gt_u if - local.get $8 - local.set $6 - local.get $9 + local.get $27 + local.set $33 + local.get $26 f64.const 6.077100506303966e-11 f64.mul - local.set $7 - local.get $6 - local.get $7 + local.set $28 + local.get $33 + local.get $28 f64.sub - local.set $8 - local.get $9 + local.set $27 + local.get $26 f64.const 2.0222662487959506e-21 f64.mul - local.get $6 - local.get $8 + local.get $33 + local.get $27 f64.sub - local.get $7 + local.get $28 f64.sub f64.sub - local.set $7 - local.get $8 - local.get $7 + local.set $28 + local.get $27 + local.get $28 f64.sub - local.set $10 - local.get $10 + local.set $30 + local.get $30 i64.reinterpret_f64 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $14 - local.get $13 - local.get $14 + local.set $31 + local.get $29 + local.get $31 i32.const 20 i32.shr_u i32.const 2047 i32.and i32.sub - local.set $15 - local.get $15 + local.set $32 + local.get $32 i32.const 49 i32.gt_u if - local.get $8 - local.set $16 - local.get $9 + local.get $27 + local.set $34 + local.get $26 f64.const 2.0222662487111665e-21 f64.mul - local.set $7 - local.get $16 - local.get $7 + local.set $28 + local.get $34 + local.get $28 f64.sub - local.set $8 - local.get $9 + local.set $27 + local.get $26 f64.const 8.4784276603689e-32 f64.mul - local.get $16 - local.get $8 + local.get $34 + local.get $27 f64.sub - local.get $7 + local.get $28 f64.sub f64.sub - local.set $7 - local.get $8 - local.get $7 + local.set $28 + local.get $27 + local.get $28 f64.sub - local.set $10 + local.set $30 end end - local.get $8 - local.get $10 + local.get $27 + local.get $30 f64.sub - local.get $7 + local.get $28 f64.sub - local.set $6 - local.get $10 + local.set $35 + local.get $30 global.set $~lib/math/rempio2_y0 - local.get $6 + local.get $35 global.set $~lib/math/rempio2_y1 - local.get $9 + local.get $26 i32.trunc_f64_s br $~lib/math/rempio2|inlined.3 end - local.get $5 - local.get $11 + local.get $20 + local.get $19 call $~lib/math/pio2_large_quot - local.set $15 + local.set $36 i32.const 0 - local.get $15 + local.get $36 i32.sub - local.get $15 - local.get $4 + local.get $36 + local.get $18 select end - local.set $17 + local.set $37 global.get $~lib/math/rempio2_y0 - local.set $18 + local.set $38 global.get $~lib/math/rempio2_y1 - local.set $19 + local.set $39 block $~lib/math/sin_kern|inlined.4 (result f64) - local.get $18 - local.set $9 - local.get $19 - local.set $16 + local.get $38 + local.set $42 + local.get $39 + local.set $41 i32.const 1 - local.set $13 - local.get $9 - local.get $9 + local.set $40 + local.get $42 + local.get $42 f64.mul - local.set $5 - local.get $5 - local.get $5 + local.set $43 + local.get $43 + local.get $43 f64.mul - local.set $6 + local.set $44 f64.const 0.00833333333332249 - local.get $5 + local.get $43 f64.const -1.984126982985795e-04 - local.get $5 + local.get $43 f64.const 2.7557313707070068e-06 f64.mul f64.add f64.mul f64.add - local.get $5 - local.get $6 + local.get $43 + local.get $44 f64.mul f64.const -2.5050760253406863e-08 - local.get $5 + local.get $43 f64.const 1.58969099521155e-10 f64.mul f64.add f64.mul f64.add - local.set $10 - local.get $5 - local.get $9 + local.set $45 + local.get $43 + local.get $42 f64.mul - local.set $7 - local.get $13 + local.set $46 + local.get $40 i32.eqz if - local.get $9 - local.get $7 + local.get $42 + local.get $46 f64.const -0.16666666666666632 - local.get $5 - local.get $10 + local.get $43 + local.get $45 f64.mul f64.add f64.mul f64.add br $~lib/math/sin_kern|inlined.4 else - local.get $9 - local.get $5 + local.get $42 + local.get $43 f64.const 0.5 - local.get $16 + local.get $41 f64.mul - local.get $7 - local.get $10 + local.get $46 + local.get $45 f64.mul f64.sub f64.mul - local.get $16 + local.get $41 f64.sub - local.get $7 + local.get $46 f64.const -0.16666666666666632 f64.mul f64.sub @@ -15720,37 +16040,37 @@ end unreachable end - local.set $20 - local.get $18 - local.set $16 - local.get $19 - local.set $8 - local.get $16 - local.get $16 + local.set $47 + local.get $38 + local.set $49 + local.get $39 + local.set $48 + local.get $49 + local.get $49 f64.mul - local.set $7 - local.get $7 - local.get $7 + local.set $50 + local.get $50 + local.get $50 f64.mul - local.set $10 - local.get $7 + local.set $51 + local.get $50 f64.const 0.0416666666666666 - local.get $7 + local.get $50 f64.const -0.001388888888887411 - local.get $7 + local.get $50 f64.const 2.480158728947673e-05 f64.mul f64.add f64.mul f64.add f64.mul - local.get $10 - local.get $10 + local.get $51 + local.get $51 f64.mul f64.const -2.7557314351390663e-07 - local.get $7 + local.get $50 f64.const 2.087572321298175e-09 - local.get $7 + local.get $50 f64.const -1.1359647557788195e-11 f64.mul f64.add @@ -15758,59 +16078,59 @@ f64.add f64.mul f64.add - local.set $6 + local.set $52 f64.const 0.5 - local.get $7 + local.get $50 f64.mul - local.set $5 + local.set $53 f64.const 1 - local.get $5 + local.get $53 f64.sub - local.set $10 - local.get $10 + local.set $51 + local.get $51 f64.const 1 - local.get $10 + local.get $51 f64.sub - local.get $5 + local.get $53 f64.sub - local.get $7 - local.get $6 + local.get $50 + local.get $52 f64.mul - local.get $16 - local.get $8 + local.get $49 + local.get $48 f64.mul f64.sub f64.add f64.add - local.set $21 - local.get $20 - local.set $22 - local.get $21 - local.set $23 - local.get $17 + local.set $54 + local.get $47 + local.set $55 + local.get $54 + local.set $56 + local.get $37 i32.const 1 i32.and if - local.get $21 - local.set $22 - local.get $20 + local.get $54 + local.set $55 + local.get $47 f64.neg - local.set $23 + local.set $56 end - local.get $17 + local.get $37 i32.const 2 i32.and if - local.get $22 + local.get $55 f64.neg - local.set $22 - local.get $23 + local.set $55 + local.get $56 f64.neg - local.set $23 + local.set $56 end - local.get $22 + local.get $55 global.set $~lib/math/NativeMath.sincos_sin - local.get $23 + local.get $56 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) (param $5 i32) (result i32) @@ -15974,6 +16294,8 @@ (local $2 i64) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) i64.const 1 local.set $2 i32.const 0 @@ -16022,8 +16344,8 @@ local.get $1 i32.clz i32.sub - local.set $3 - local.get $3 + local.set $4 + local.get $4 i32.const 6 i32.le_s if @@ -16034,29 +16356,29 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $3 - local.set $4 local.get $4 + local.set $5 + local.get $5 i32.const 6 i32.eq br_if $case0|1 - local.get $4 + local.get $5 i32.const 5 i32.eq br_if $case1|1 - local.get $4 + local.get $5 i32.const 4 i32.eq br_if $case2|1 - local.get $4 + local.get $5 i32.const 3 i32.eq br_if $case3|1 - local.get $4 + local.get $5 i32.const 2 i32.eq br_if $case4|1 - local.get $4 + local.get $5 i32.const 1 i32.eq br_if $case5|1 @@ -16169,8 +16491,8 @@ local.get $1 i32.const 0 i32.gt_s - local.set $3 - local.get $3 + local.set $6 + local.get $6 if local.get $1 i32.const 1 @@ -16296,10 +16618,39 @@ ) (func $start:std/math (local $0 f64) - (local $1 i32) - (local $2 i32) - (local $3 i64) - (local $4 f32) + (local $1 f64) + (local $2 f64) + (local $3 f64) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 f64) + (local $8 i64) + (local $9 i32) + (local $10 i32) + (local $11 f32) + (local $12 f64) + (local $13 f64) + (local $14 f64) + (local $15 f64) + (local $16 f64) + (local $17 f64) + (local $18 f64) + (local $19 f64) + (local $20 f32) + (local $21 f32) + (local $22 f32) + (local $23 f32) + (local $24 f32) + (local $25 f32) + (local $26 f32) + (local $27 f32) + (local $28 f32) + (local $29 f32) + (local $30 f32) + (local $31 f64) + (local $32 f64) + (local $33 f64) global.get $~lib/math/NativeMath.E global.get $~lib/math/NativeMath.E f64.eq @@ -43272,8 +43623,8 @@ f64.const nan:0x8000000000000 f64.const -1 call $~lib/math/NativeMath.pow - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 f64.ne i32.eqz if @@ -43386,8 +43737,8 @@ f64.const nan:0x8000000000000 f64.const 2 call $~lib/math/NativeMath.pow - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 f64.ne i32.eqz if @@ -43429,8 +43780,8 @@ f64.const -1 f64.const 0.5 call $~lib/math/NativeMath.pow - local.tee $0 - local.get $0 + local.tee $3 + local.get $3 f64.ne i32.eqz if @@ -43501,8 +43852,8 @@ f64.const nan:0x8000000000000 f64.const 0.5 call $~lib/math/NativeMath.pow - local.tee $0 - local.get $0 + local.tee $4 + local.get $4 f64.ne i32.eqz if @@ -47201,22 +47552,22 @@ i64.reinterpret_f64 call $~lib/math/NativeMath.seedRandom i32.const 0 - local.set $1 + local.set $5 loop $for-loop|0 - local.get $1 + local.get $5 f64.convert_i32_s f64.const 1e6 f64.lt - local.set $2 - local.get $2 + local.set $6 + local.get $6 if call $~lib/math/NativeMath.random - local.set $0 - local.get $0 + local.set $7 + local.get $7 f64.const 0 f64.ge if (result i32) - local.get $0 + local.get $7 f64.const 1 f64.lt else @@ -47231,35 +47582,35 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 i32.const 1 i32.add - local.set $1 + local.set $5 br $for-loop|0 end end call $~lib/bindings/Math/random i64.reinterpret_f64 - local.set $3 - local.get $3 + local.set $8 + local.get $8 call $~lib/math/NativeMath.seedRandom i32.const 0 - local.set $1 + local.set $9 loop $for-loop|1 - local.get $1 + local.get $9 f64.convert_i32_s f64.const 1e6 f64.lt - local.set $2 - local.get $2 + local.set $10 + local.get $10 if call $~lib/math/NativeMathf.random - local.set $4 - local.get $4 + local.set $11 + local.get $11 f32.const 0 f32.ge if (result i32) - local.get $4 + local.get $11 f32.const 1 f32.lt else @@ -47274,10 +47625,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $9 i32.const 1 i32.add - local.set $1 + local.set $9 br $for-loop|1 end end @@ -48296,14 +48647,14 @@ unreachable end f64.const 0 - local.set $0 - local.get $0 + local.set $12 + local.get $12 i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 - local.get $0 - local.get $0 + local.get $12 + local.get $12 f64.eq i32.and i32.const 0 @@ -48312,14 +48663,14 @@ i32.eq drop f64.const -0 - local.set $0 - local.get $0 + local.set $13 + local.get $13 i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 - local.get $0 - local.get $0 + local.get $13 + local.get $13 f64.eq i32.and i32.const 0 @@ -48328,14 +48679,14 @@ i32.eq drop f64.const 1 - local.set $0 - local.get $0 + local.set $14 + local.get $14 i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 - local.get $0 - local.get $0 + local.get $14 + local.get $14 f64.eq i32.and i32.const 0 @@ -48344,14 +48695,14 @@ i32.eq drop f64.const -1 - local.set $0 - local.get $0 + local.set $15 + local.get $15 i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 - local.get $0 - local.get $0 + local.get $15 + local.get $15 f64.eq i32.and i32.const 0 @@ -48360,14 +48711,14 @@ i32.eq drop f64.const nan:0x8000000000000 - local.set $0 - local.get $0 + local.set $16 + local.get $16 i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 - local.get $0 - local.get $0 + local.get $16 + local.get $16 f64.eq i32.and i32.const 0 @@ -48377,14 +48728,14 @@ drop f64.const nan:0x8000000000000 f64.neg - local.set $0 - local.get $0 + local.set $17 + local.get $17 i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 - local.get $0 - local.get $0 + local.get $17 + local.get $17 f64.eq i32.and i32.const 0 @@ -48393,14 +48744,14 @@ i32.eq drop f64.const inf - local.set $0 - local.get $0 + local.set $18 + local.get $18 i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 - local.get $0 - local.get $0 + local.get $18 + local.get $18 f64.eq i32.and i32.const 0 @@ -48410,14 +48761,14 @@ drop f64.const inf f64.neg - local.set $0 - local.get $0 + local.set $19 + local.get $19 i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 - local.get $0 - local.get $0 + local.get $19 + local.get $19 f64.eq i32.and i32.const 0 @@ -48426,13 +48777,13 @@ i32.eq drop f32.const 0 - local.set $4 - local.get $4 + local.set $20 + local.get $20 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $4 - local.get $4 + local.get $20 + local.get $20 f32.eq i32.and i32.const 0 @@ -48441,13 +48792,13 @@ i32.eq drop f32.const -0 - local.set $4 - local.get $4 + local.set $21 + local.get $21 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $4 - local.get $4 + local.get $21 + local.get $21 f32.eq i32.and i32.const 0 @@ -48456,13 +48807,13 @@ i32.eq drop f32.const 1 - local.set $4 - local.get $4 + local.set $22 + local.get $22 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $4 - local.get $4 + local.get $22 + local.get $22 f32.eq i32.and i32.const 0 @@ -48471,13 +48822,13 @@ i32.eq drop f32.const -1 - local.set $4 - local.get $4 + local.set $23 + local.get $23 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $4 - local.get $4 + local.get $23 + local.get $23 f32.eq i32.and i32.const 0 @@ -48486,13 +48837,13 @@ i32.eq drop f32.const nan:0x400000 - local.set $4 - local.get $4 + local.set $24 + local.get $24 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $4 - local.get $4 + local.get $24 + local.get $24 f32.eq i32.and i32.const 0 @@ -48502,13 +48853,13 @@ drop f32.const nan:0x400000 f32.neg - local.set $4 - local.get $4 + local.set $25 + local.get $25 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $4 - local.get $4 + local.get $25 + local.get $25 f32.eq i32.and i32.const 0 @@ -48517,13 +48868,13 @@ i32.eq drop f32.const inf - local.set $4 - local.get $4 + local.set $26 + local.get $26 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $4 - local.get $4 + local.get $26 + local.get $26 f32.eq i32.and i32.const 0 @@ -48533,13 +48884,13 @@ drop f32.const inf f32.neg - local.set $4 - local.get $4 + local.set $27 + local.get $27 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $4 - local.get $4 + local.get $27 + local.get $27 f32.eq i32.and i32.const 0 @@ -58746,8 +59097,8 @@ f32.const nan:0x400000 i32.const 1 call $~lib/math/ipow32f - local.tee $4 - local.get $4 + local.tee $28 + local.get $28 f32.ne i32.eqz if @@ -58761,8 +59112,8 @@ f32.const nan:0x400000 i32.const -1 call $~lib/math/ipow32f - local.tee $4 - local.get $4 + local.tee $29 + local.get $29 f32.ne i32.eqz if @@ -58776,8 +59127,8 @@ f32.const nan:0x400000 i32.const 2 call $~lib/math/ipow32f - local.tee $4 - local.get $4 + local.tee $30 + local.get $30 f32.ne i32.eqz if @@ -58977,8 +59328,8 @@ f64.const nan:0x8000000000000 i32.const 1 call $~lib/math/ipow64f - local.tee $0 - local.get $0 + local.tee $31 + local.get $31 f64.ne i32.eqz if @@ -58992,8 +59343,8 @@ f64.const nan:0x8000000000000 i32.const -1 call $~lib/math/ipow64f - local.tee $0 - local.get $0 + local.tee $32 + local.get $32 f64.ne i32.eqz if @@ -59007,8 +59358,8 @@ f64.const nan:0x8000000000000 i32.const 2 call $~lib/math/ipow64f - local.tee $0 - local.get $0 + local.tee $33 + local.get $33 f64.ne i32.eqz if diff --git a/tests/compiler/std/new.untouched.wat b/tests/compiler/std/new.untouched.wat index f68b606bcb..7acc3bed25 100644 --- a/tests/compiler/std/new.untouched.wat +++ b/tests/compiler/std/new.untouched.wat @@ -19,6 +19,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -49,8 +50,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s diff --git a/tests/compiler/std/object.untouched.wat b/tests/compiler/std/object.untouched.wat index 2de60f8113..0d0b12970a 100644 --- a/tests/compiler/std/object.untouched.wat +++ b/tests/compiler/std/object.untouched.wat @@ -111,6 +111,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -182,33 +185,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $10 + local.get $12 return end local.get $5 @@ -223,16 +226,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -264,44 +270,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $6 ) (func $~lib/object/Object.is<~lib/string/String> (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/std/operator-overloading.untouched.wat b/tests/compiler/std/operator-overloading.untouched.wat index ca613cd6b6..b25d31ffc4 100644 --- a/tests/compiler/std/operator-overloading.untouched.wat +++ b/tests/compiler/std/operator-overloading.untouched.wat @@ -92,6 +92,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -122,8 +123,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -363,18 +364,18 @@ (local $7 i64) (local $8 i64) (local $9 i64) - (local $10 f64) - (local $11 i64) - (local $12 i32) + (local $10 i64) + (local $11 f64) + (local $12 i64) (local $13 i64) (local $14 i64) - (local $15 f64) - (local $16 f64) - (local $17 f64) - (local $18 f64) - (local $19 f64) - (local $20 f64) - (local $21 f64) + (local $15 i64) + (local $16 i32) + (local $17 i64) + (local $18 i64) + (local $19 i32) + (local $20 i64) + (local $21 i64) (local $22 f64) (local $23 f64) (local $24 f64) @@ -392,12 +393,52 @@ (local $36 f64) (local $37 f64) (local $38 f64) - (local $39 i32) - (local $40 i32) - (local $41 i32) - (local $42 i32) - (local $43 i64) - (local $44 i64) + (local $39 f64) + (local $40 f64) + (local $41 f64) + (local $42 f64) + (local $43 f64) + (local $44 f64) + (local $45 f64) + (local $46 f64) + (local $47 f64) + (local $48 f64) + (local $49 f64) + (local $50 f64) + (local $51 f64) + (local $52 f64) + (local $53 f64) + (local $54 f64) + (local $55 i32) + (local $56 f64) + (local $57 f64) + (local $58 i32) + (local $59 i64) + (local $60 i64) + (local $61 i64) + (local $62 i32) + (local $63 f64) + (local $64 f64) + (local $65 f64) + (local $66 f64) + (local $67 f64) + (local $68 f64) + (local $69 f64) + (local $70 i64) + (local $71 i32) + (local $72 f64) + (local $73 i32) + (local $74 i32) + (local $75 f64) + (local $76 i32) + (local $77 i64) + (local $78 i64) + (local $79 f64) + (local $80 f64) + (local $81 f64) + (local $82 f64) + (local $83 f64) + (local $84 f64) local.get $1 f64.abs f64.const 2 @@ -576,8 +617,8 @@ br $~lib/util/math/pow_lut|inlined.0 end local.get $5 - local.set $9 - local.get $9 + local.set $10 + local.get $10 i64.const 1 i64.shl i64.const 1 @@ -590,7 +631,7 @@ local.get $3 local.get $3 f64.mul - local.set $10 + local.set $11 local.get $5 i64.const 63 i64.shr_u @@ -598,21 +639,21 @@ if (result i32) block $~lib/util/math/checkint|inlined.0 (result i32) local.get $6 - local.set $9 - local.get $9 + local.set $12 + local.get $12 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.set $11 - local.get $11 + local.set $13 + local.get $13 i64.const 1023 i64.lt_u if i32.const 0 br $~lib/util/math/checkint|inlined.0 end - local.get $11 + local.get $13 i64.const 1023 i64.const 52 i64.add @@ -625,12 +666,12 @@ i64.const 1023 i64.const 52 i64.add - local.get $11 + local.get $13 i64.sub i64.shl - local.set $11 - local.get $9 - local.get $11 + local.set $13 + local.get $12 + local.get $13 i64.const 1 i64.sub i64.and @@ -640,8 +681,8 @@ i32.const 0 br $~lib/util/math/checkint|inlined.0 end - local.get $9 - local.get $11 + local.get $12 + local.get $13 i64.and i64.const 0 i64.ne @@ -657,9 +698,9 @@ i32.const 0 end if - local.get $10 + local.get $11 f64.neg - local.set $10 + local.set $11 end local.get $6 i64.const 63 @@ -668,10 +709,10 @@ i64.ne if (result f64) f64.const 1 - local.get $10 + local.get $11 f64.div else - local.get $10 + local.get $11 end br $~lib/util/math/pow_lut|inlined.0 end @@ -683,21 +724,21 @@ if block $~lib/util/math/checkint|inlined.1 (result i32) local.get $6 - local.set $9 - local.get $9 + local.set $14 + local.get $14 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.set $11 - local.get $11 + local.set $15 + local.get $15 i64.const 1023 i64.lt_u if i32.const 0 br $~lib/util/math/checkint|inlined.1 end - local.get $11 + local.get $15 i64.const 1023 i64.const 52 i64.add @@ -710,12 +751,12 @@ i64.const 1023 i64.const 52 i64.add - local.get $11 + local.get $15 i64.sub i64.shl - local.set $11 - local.get $9 - local.get $11 + local.set $15 + local.get $14 + local.get $15 i64.const 1 i64.sub i64.and @@ -725,8 +766,8 @@ i32.const 0 br $~lib/util/math/checkint|inlined.1 end - local.get $9 - local.get $11 + local.get $14 + local.get $15 i64.and i64.const 0 i64.ne @@ -736,8 +777,8 @@ end i32.const 2 end - local.set $12 - local.get $12 + local.set $16 + local.get $16 i32.const 0 i32.eq if @@ -750,7 +791,7 @@ f64.div br $~lib/util/math/pow_lut|inlined.0 end - local.get $12 + local.get $16 i32.const 1 i32.eq if @@ -828,12 +869,12 @@ end end local.get $5 - local.set $9 - local.get $9 + local.set $17 + local.get $17 i64.const 4604531861337669632 i64.sub - local.set $11 - local.get $11 + local.set $18 + local.get $18 i64.const 52 i64.const 7 i64.sub @@ -841,150 +882,150 @@ i64.const 127 i64.and i32.wrap_i64 - local.set $12 - local.get $11 + local.set $19 + local.get $18 i64.const 52 i64.shr_s - local.set $13 - local.get $9 - local.get $11 + local.set $20 + local.get $17 + local.get $18 i64.const 4095 i64.const 52 i64.shl i64.and i64.sub - local.set $14 - local.get $14 + local.set $21 + local.get $21 f64.reinterpret_i64 - local.set $10 - local.get $13 + local.set $22 + local.get $20 f64.convert_i64_s - local.set $15 + local.set $23 i32.const 88 - local.get $12 + local.get $19 i32.const 2 i32.const 3 i32.add i32.shl i32.add f64.load - local.set $16 + local.set $24 i32.const 88 - local.get $12 + local.get $19 i32.const 2 i32.const 3 i32.add i32.shl i32.add f64.load offset=16 - local.set $17 + local.set $25 i32.const 88 - local.get $12 + local.get $19 i32.const 2 i32.const 3 i32.add i32.shl i32.add f64.load offset=24 - local.set $18 - local.get $14 + local.set $26 + local.get $21 i64.const 2147483648 i64.add i64.const -4294967296 i64.and f64.reinterpret_i64 - local.set $19 - local.get $10 - local.get $19 + local.set $27 + local.get $22 + local.get $27 f64.sub - local.set $20 - local.get $19 - local.get $16 + local.set $28 + local.get $27 + local.get $24 f64.mul f64.const 1 f64.sub - local.set $21 - local.get $20 - local.get $16 + local.set $29 + local.get $28 + local.get $24 f64.mul - local.set $22 - local.get $21 - local.get $22 + local.set $30 + local.get $29 + local.get $30 f64.add - local.set $23 - local.get $15 + local.set $31 + local.get $23 f64.const 0.6931471805598903 f64.mul - local.get $17 + local.get $25 f64.add - local.set $24 - local.get $24 - local.get $23 + local.set $32 + local.get $32 + local.get $31 f64.add - local.set $25 - local.get $15 + local.set $33 + local.get $23 f64.const 5.497923018708371e-14 f64.mul - local.get $18 + local.get $26 f64.add - local.set $26 - local.get $24 - local.get $25 + local.set $34 + local.get $32 + local.get $33 f64.sub - local.get $23 + local.get $31 f64.add - local.set $27 + local.set $35 f64.const -0.5 - local.get $23 + local.get $31 f64.mul - local.set $28 - local.get $23 - local.get $28 + local.set $36 + local.get $31 + local.get $36 f64.mul - local.set $29 - local.get $23 - local.get $29 + local.set $37 + local.get $31 + local.get $37 f64.mul - local.set $30 + local.set $38 f64.const -0.5 - local.get $21 + local.get $29 f64.mul - local.set $31 - local.get $21 - local.get $31 + local.set $39 + local.get $29 + local.get $39 f64.mul - local.set $32 - local.get $25 - local.get $32 + local.set $40 + local.get $33 + local.get $40 f64.add - local.set $33 - local.get $22 - local.get $28 - local.get $31 + local.set $41 + local.get $30 + local.get $36 + local.get $39 f64.add f64.mul - local.set $34 - local.get $25 + local.set $42 local.get $33 + local.get $41 f64.sub - local.get $32 + local.get $40 f64.add - local.set $35 - local.get $30 + local.set $43 + local.get $38 f64.const -0.6666666666666679 - local.get $23 + local.get $31 f64.const 0.5000000000000007 f64.mul f64.add - local.get $29 + local.get $37 f64.const 0.7999999995323976 - local.get $23 + local.get $31 f64.const -0.6666666663487739 f64.mul f64.add - local.get $29 + local.get $37 f64.const -1.142909628459501 - local.get $23 + local.get $31 f64.const 1.0000415263675542 f64.mul f64.add @@ -993,88 +1034,88 @@ f64.mul f64.add f64.mul - local.set $36 - local.get $26 - local.get $27 - f64.add + local.set $44 local.get $34 - f64.add local.get $35 f64.add - local.get $36 + local.get $42 f64.add - local.set $37 - local.get $33 - local.get $37 + local.get $43 f64.add - local.set $38 - local.get $33 - local.get $38 + local.get $44 + f64.add + local.set $45 + local.get $41 + local.get $45 + f64.add + local.set $46 + local.get $41 + local.get $46 f64.sub - local.get $37 + local.get $45 f64.add global.set $~lib/util/math/log_tail - local.get $38 - local.set $38 + local.get $46 + local.set $47 global.get $~lib/util/math/log_tail - local.set $37 + local.set $48 local.get $6 i64.const -134217728 i64.and f64.reinterpret_i64 - local.set $34 + local.set $51 local.get $2 - local.get $34 + local.get $51 f64.sub - local.set $33 - local.get $38 + local.set $52 + local.get $47 i64.reinterpret_f64 i64.const -134217728 i64.and f64.reinterpret_i64 - local.set $32 - local.get $38 - local.get $32 + local.set $53 + local.get $47 + local.get $53 f64.sub - local.get $37 + local.get $48 f64.add - local.set $31 - local.get $34 - local.get $32 + local.set $54 + local.get $51 + local.get $53 f64.mul - local.set $36 - local.get $33 - local.get $32 + local.set $49 + local.get $52 + local.get $53 f64.mul local.get $2 - local.get $31 + local.get $54 f64.mul f64.add - local.set $35 + local.set $50 block $~lib/util/math/exp_inline|inlined.0 (result f64) - local.get $36 - local.set $15 - local.get $35 - local.set $10 + local.get $49 + local.set $57 + local.get $50 + local.set $56 local.get $4 - local.set $12 - local.get $15 + local.set $55 + local.get $57 i64.reinterpret_f64 - local.set $9 - local.get $9 + local.set $70 + local.get $70 i64.const 52 i64.shr_u i32.wrap_i64 i32.const 2047 i32.and - local.set $39 - local.get $39 + local.set $58 + local.get $58 i32.const 969 i32.sub i32.const 63 i32.ge_u if - local.get $39 + local.get $58 i32.const 969 i32.sub i32.const -2147483648 @@ -1082,252 +1123,252 @@ if f64.const -1 f64.const 1 - local.get $12 + local.get $55 select br $~lib/util/math/exp_inline|inlined.0 end - local.get $39 + local.get $58 i32.const 1033 i32.ge_u if - local.get $9 + local.get $70 i64.const 63 i64.shr_u i64.const 0 i64.ne if (result f64) - local.get $12 - local.set $41 - local.get $41 - local.set $42 + local.get $55 + local.set $71 + local.get $71 + local.set $73 i64.const 1152921504606846976 f64.reinterpret_i64 - local.set $16 - local.get $16 + local.set $72 + local.get $72 f64.neg - local.get $16 - local.get $42 + local.get $72 + local.get $73 select - local.get $16 + local.get $72 f64.mul else - local.get $12 - local.set $42 - local.get $42 - local.set $41 + local.get $55 + local.set $74 + local.get $74 + local.set $76 i64.const 8070450532247928832 f64.reinterpret_i64 - local.set $17 - local.get $17 + local.set $75 + local.get $75 f64.neg - local.get $17 - local.get $41 + local.get $75 + local.get $76 select - local.get $17 + local.get $75 f64.mul end br $~lib/util/math/exp_inline|inlined.0 end i32.const 0 - local.set $39 + local.set $58 end f64.const 184.6649652337873 - local.get $15 + local.get $57 f64.mul - local.set $29 - local.get $29 + local.set $64 + local.get $64 f64.const 6755399441055744 f64.add - local.set $30 - local.get $30 + local.set $63 + local.get $63 i64.reinterpret_f64 - local.set $14 - local.get $30 + local.set $59 + local.get $63 f64.const 6755399441055744 f64.sub - local.set $30 - local.get $15 - local.get $30 + local.set $63 + local.get $57 + local.get $63 f64.const -0.005415212348111709 f64.mul f64.add - local.get $30 + local.get $63 f64.const -1.2864023111638346e-14 f64.mul f64.add - local.set $28 - local.get $28 - local.get $10 + local.set $65 + local.get $65 + local.get $56 f64.add - local.set $28 - local.get $14 + local.set $65 + local.get $59 i64.const 127 i64.and i64.const 1 i64.shl i32.wrap_i64 - local.set $40 - local.get $14 - local.get $12 + local.set $62 + local.get $59 + local.get $55 i64.extend_i32_u i64.add i64.const 52 i64.const 7 i64.sub i64.shl - local.set $13 + local.set $60 i32.const 4184 - local.get $40 + local.get $62 i32.const 3 i32.shl i32.add i64.load f64.reinterpret_i64 - local.set $25 + local.set $68 i32.const 4184 - local.get $40 + local.get $62 i32.const 3 i32.shl i32.add i64.load offset=8 - local.get $13 + local.get $60 i64.add - local.set $11 - local.get $28 - local.get $28 + local.set $61 + local.get $65 + local.get $65 f64.mul - local.set $27 - local.get $25 - local.get $28 + local.set $66 + local.get $68 + local.get $65 f64.add - local.get $27 + local.get $66 f64.const 0.49999999999996786 - local.get $28 + local.get $65 f64.const 0.16666666666665886 f64.mul f64.add f64.mul f64.add - local.get $27 - local.get $27 + local.get $66 + local.get $66 f64.mul f64.const 0.0416666808410674 - local.get $28 + local.get $65 f64.const 0.008333335853059549 f64.mul f64.add f64.mul f64.add - local.set $24 - local.get $39 + local.set $69 + local.get $58 i32.const 0 i32.eq if block $~lib/util/math/specialcase|inlined.0 (result f64) - local.get $24 - local.set $18 - local.get $11 - local.set $44 - local.get $14 - local.set $43 - local.get $43 + local.get $69 + local.set $79 + local.get $61 + local.set $78 + local.get $59 + local.set $77 + local.get $77 i64.const 2147483648 i64.and i64.const 0 i64.ne i32.eqz if - local.get $44 + local.get $78 i64.const 1009 i64.const 52 i64.shl i64.sub - local.set $44 - local.get $44 + local.set $78 + local.get $78 f64.reinterpret_i64 - local.set $17 + local.set $80 f64.const 5486124068793688683255936e279 - local.get $17 - local.get $17 - local.get $18 + local.get $80 + local.get $80 + local.get $79 f64.mul f64.add f64.mul br $~lib/util/math/specialcase|inlined.0 end - local.get $44 + local.get $78 i64.const 1022 i64.const 52 i64.shl i64.add - local.set $44 - local.get $44 + local.set $78 + local.get $78 f64.reinterpret_i64 - local.set $17 - local.get $17 - local.get $17 - local.get $18 + local.set $80 + local.get $80 + local.get $80 + local.get $79 f64.mul f64.add - local.set $16 - local.get $16 + local.set $81 + local.get $81 f64.abs f64.const 1 f64.lt if f64.const 1 - local.get $16 + local.get $81 f64.copysign - local.set $23 - local.get $17 - local.get $16 + local.set $82 + local.get $80 + local.get $81 f64.sub - local.get $17 - local.get $18 + local.get $80 + local.get $79 f64.mul f64.add - local.set $22 - local.get $23 - local.get $16 + local.set $83 + local.get $82 + local.get $81 f64.add - local.set $21 - local.get $23 - local.get $21 + local.set $84 + local.get $82 + local.get $84 f64.sub - local.get $16 + local.get $81 f64.add - local.get $22 + local.get $83 f64.add - local.set $22 - local.get $21 - local.get $22 + local.set $83 + local.get $84 + local.get $83 f64.add - local.get $23 + local.get $82 f64.sub - local.set $16 - local.get $16 + local.set $81 + local.get $81 f64.const 0 f64.eq if - local.get $44 + local.get $78 i64.const -9223372036854775808 i64.and f64.reinterpret_i64 - local.set $16 + local.set $81 end end - local.get $16 + local.get $81 f64.const 2.2250738585072014e-308 f64.mul end br $~lib/util/math/exp_inline|inlined.0 end - local.get $11 + local.get $61 f64.reinterpret_i64 - local.set $26 - local.get $26 - local.get $26 - local.get $24 + local.set $67 + local.get $67 + local.get $67 + local.get $69 f64.mul f64.add end @@ -1876,6 +1917,33 @@ (local $22 i32) (local $23 i32) (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) global.get $~lib/heap/__heap_base i32.const 15 i32.add @@ -2521,7 +2589,7 @@ global.set $std/operator-overloading/pos global.get $std/operator-overloading/pos call $std/operator-overloading/Tester.pos - local.tee $12 + local.tee $14 call $~lib/rt/stub/__retain global.set $std/operator-overloading/pres global.get $std/operator-overloading/pres @@ -2554,7 +2622,7 @@ global.set $std/operator-overloading/neg global.get $std/operator-overloading/neg call $std/operator-overloading/Tester.neg - local.tee $13 + local.tee $15 call $~lib/rt/stub/__retain global.set $std/operator-overloading/nres global.get $std/operator-overloading/nres @@ -2591,7 +2659,7 @@ global.set $std/operator-overloading/not global.get $std/operator-overloading/not call $std/operator-overloading/Tester.not - local.tee $14 + local.tee $16 call $~lib/rt/stub/__retain global.set $std/operator-overloading/res global.get $std/operator-overloading/res @@ -2669,19 +2737,19 @@ global.set $std/operator-overloading/incdec global.get $std/operator-overloading/incdec call $std/operator-overloading/Tester#inc - local.tee $15 - local.tee $16 - global.get $std/operator-overloading/incdec local.tee $17 + local.tee $18 + global.get $std/operator-overloading/incdec + local.tee $19 i32.ne if - local.get $16 + local.get $18 call $~lib/rt/stub/__retain - local.set $16 - local.get $17 + local.set $18 + local.get $19 call $~lib/rt/stub/__release end - local.get $16 + local.get $18 global.set $std/operator-overloading/incdec global.get $std/operator-overloading/incdec i32.load @@ -2706,19 +2774,19 @@ end global.get $std/operator-overloading/incdec call $std/operator-overloading/Tester#dec - local.tee $16 - local.tee $17 + local.tee $20 + local.tee $21 global.get $std/operator-overloading/incdec - local.tee $18 + local.tee $22 i32.ne if - local.get $17 + local.get $21 call $~lib/rt/stub/__retain - local.set $17 - local.get $18 + local.set $21 + local.get $22 call $~lib/rt/stub/__release end - local.get $17 + local.get $21 global.set $std/operator-overloading/incdec global.get $std/operator-overloading/incdec i32.load @@ -2745,29 +2813,29 @@ i32.const 0 i32.const 1 call $std/operator-overloading/Tester#constructor - local.set $18 + local.set $23 global.get $std/operator-overloading/incdec call $~lib/rt/stub/__release - local.get $18 + local.get $23 global.set $std/operator-overloading/incdec global.get $std/operator-overloading/incdec - local.tee $18 + local.tee $24 call $std/operator-overloading/Tester#postInc - local.tee $17 - local.tee $19 + local.tee $25 + local.tee $26 global.get $std/operator-overloading/incdec - local.tee $20 + local.tee $27 i32.ne if - local.get $19 + local.get $26 call $~lib/rt/stub/__retain - local.set $19 - local.get $20 + local.set $26 + local.get $27 call $~lib/rt/stub/__release end - local.get $19 + local.get $26 global.set $std/operator-overloading/incdec - local.get $18 + local.get $24 call $~lib/rt/stub/__retain global.set $std/operator-overloading/tmp global.get $std/operator-overloading/tmp @@ -2813,35 +2881,35 @@ unreachable end global.get $std/operator-overloading/incdec - local.tee $18 + local.tee $28 call $std/operator-overloading/Tester#postDec - local.tee $19 - local.tee $20 + local.tee $29 + local.tee $30 global.get $std/operator-overloading/incdec - local.tee $21 + local.tee $31 i32.ne if - local.get $20 + local.get $30 call $~lib/rt/stub/__retain - local.set $20 - local.get $21 + local.set $30 + local.get $31 call $~lib/rt/stub/__release end - local.get $20 + local.get $30 global.set $std/operator-overloading/incdec - local.get $18 - local.tee $21 + local.get $28 + local.tee $32 global.get $std/operator-overloading/tmp - local.tee $18 + local.tee $33 i32.ne if - local.get $21 + local.get $32 call $~lib/rt/stub/__retain - local.set $21 - local.get $18 + local.set $32 + local.get $33 call $~lib/rt/stub/__release end - local.get $21 + local.get $32 global.set $std/operator-overloading/tmp global.get $std/operator-overloading/tmp i32.load @@ -2892,34 +2960,34 @@ global.set $std/operator-overloading/ais1 global.get $std/operator-overloading/ais1 call $~lib/rt/stub/__retain - local.set $20 + local.set $35 i32.const 0 - local.get $20 + local.get $35 i32.load i32.const 1 i32.add - local.get $20 + local.get $35 i32.load offset=4 i32.const 1 i32.add call $std/operator-overloading/TesterInlineStatic#constructor - local.set $21 - local.get $20 + local.set $36 + local.get $35 call $~lib/rt/stub/__release - local.get $21 - local.tee $20 - local.tee $18 + local.get $36 + local.tee $37 + local.tee $38 global.get $std/operator-overloading/ais1 - local.tee $21 + local.tee $39 i32.ne if - local.get $18 + local.get $38 call $~lib/rt/stub/__retain - local.set $18 - local.get $21 + local.set $38 + local.get $39 call $~lib/rt/stub/__release end - local.get $18 + local.get $38 global.set $std/operator-overloading/ais1 i32.const 0 i32.const 2 @@ -2928,29 +2996,29 @@ global.set $std/operator-overloading/ais2 global.get $std/operator-overloading/ais1 call $~lib/rt/stub/__retain - local.set $18 + local.set $41 global.get $std/operator-overloading/ais2 call $~lib/rt/stub/__retain - local.set $21 + local.set $40 i32.const 0 - local.get $18 + local.get $41 i32.load - local.get $21 + local.get $40 i32.load i32.add - local.get $18 + local.get $41 i32.load offset=4 - local.get $21 + local.get $40 i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineStatic#constructor - local.set $22 - local.get $21 + local.set $42 + local.get $40 call $~lib/rt/stub/__release - local.get $18 + local.get $41 call $~lib/rt/stub/__release - local.get $22 - local.tee $18 + local.get $42 + local.tee $43 call $~lib/rt/stub/__retain global.set $std/operator-overloading/ais global.get $std/operator-overloading/ais @@ -2980,30 +3048,30 @@ call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii1 global.get $std/operator-overloading/aii1 - local.set $22 + local.set $44 i32.const 0 - local.get $22 + local.get $44 i32.load i32.const 1 i32.add - local.get $22 + local.get $44 i32.load offset=4 i32.const 1 i32.add call $std/operator-overloading/TesterInlineInstance#constructor - local.tee $22 - local.tee $21 + local.tee $45 + local.tee $46 global.get $std/operator-overloading/aii1 - local.tee $23 + local.tee $47 i32.ne if - local.get $21 + local.get $46 call $~lib/rt/stub/__retain - local.set $21 - local.get $23 + local.set $46 + local.get $47 call $~lib/rt/stub/__release end - local.get $21 + local.get $46 global.set $std/operator-overloading/aii1 i32.const 0 i32.const 2 @@ -3011,27 +3079,27 @@ call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii2 global.get $std/operator-overloading/aii1 - local.set $21 + local.set $49 global.get $std/operator-overloading/aii2 call $~lib/rt/stub/__retain - local.set $23 + local.set $48 i32.const 0 - local.get $21 + local.get $49 i32.load - local.get $23 + local.get $48 i32.load i32.add - local.get $21 + local.get $49 i32.load offset=4 - local.get $23 + local.get $48 i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineInstance#constructor - local.set $24 - local.get $23 + local.set $50 + local.get $48 call $~lib/rt/stub/__release - local.get $24 - local.tee $21 + local.get $50 + local.tee $51 call $~lib/rt/stub/__retain global.set $std/operator-overloading/aii global.get $std/operator-overloading/aii @@ -3079,10 +3147,6 @@ call $~lib/rt/stub/__release local.get $11 call $~lib/rt/stub/__release - local.get $12 - call $~lib/rt/stub/__release - local.get $13 - call $~lib/rt/stub/__release local.get $14 call $~lib/rt/stub/__release local.get $15 @@ -3091,15 +3155,19 @@ call $~lib/rt/stub/__release local.get $17 call $~lib/rt/stub/__release - local.get $18 + local.get $20 call $~lib/rt/stub/__release - local.get $19 + local.get $25 call $~lib/rt/stub/__release - local.get $20 + local.get $29 call $~lib/rt/stub/__release - local.get $21 + local.get $37 + call $~lib/rt/stub/__release + local.get $43 + call $~lib/rt/stub/__release + local.get $45 call $~lib/rt/stub/__release - local.get $22 + local.get $51 call $~lib/rt/stub/__release ) (func $~start diff --git a/tests/compiler/std/pointer.untouched.wat b/tests/compiler/std/pointer.untouched.wat index 0ca39c67e8..6213177a24 100644 --- a/tests/compiler/std/pointer.untouched.wat +++ b/tests/compiler/std/pointer.untouched.wat @@ -237,6 +237,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -256,11 +338,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -280,8 +362,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -390,17 +472,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -417,16 +499,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -436,45 +518,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -485,8 +567,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -571,31 +653,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -606,8 +688,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -692,17 +774,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -713,8 +795,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -801,227 +883,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -1030,115 +1112,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -1147,59 +1229,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -1208,31 +1290,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -1241,17 +1323,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -1262,6 +1344,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -1339,11 +1429,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -1353,8 +1443,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -1378,21 +1468,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -1421,8 +1511,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -1447,8 +1537,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -1468,8 +1558,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -1492,7 +1582,64 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 f32) + (local $38 i32) + (local $39 i32) + (local $40 f32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 f32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 f32) + (local $59 i32) + (local $60 i32) i32.const 0 local.set $1 i32.const 8 @@ -1504,18 +1651,18 @@ local.get $2 global.set $std/pointer/one i32.const 0 - local.set $0 + local.set $4 i32.const 24 - local.set $2 - local.get $2 - local.set $1 - local.get $0 + local.set $3 + local.get $3 + local.set $5 + local.get $4 call $~lib/rt/stub/__release - local.get $1 + local.get $5 global.set $std/pointer/two global.get $std/pointer/one - local.set $1 - local.get $1 + local.set $6 + local.get $6 i32.const 8 i32.eq i32.eqz @@ -1528,8 +1675,8 @@ unreachable end global.get $std/pointer/two - local.set $2 - local.get $2 + local.set $7 + local.get $7 i32.const 24 i32.eq i32.eqz @@ -1543,30 +1690,30 @@ end block $std/pointer/Pointer#get:value|inlined.0 (result i32) global.get $std/pointer/one - local.set $0 + local.set $8 i32.const 1 drop - local.get $0 + local.get $8 br $std/pointer/Pointer#get:value|inlined.0 end i32.const 1 i32.store block $std/pointer/Pointer#get:value|inlined.1 (result i32) global.get $std/pointer/one - local.set $1 + local.set $9 i32.const 1 drop - local.get $1 + local.get $9 br $std/pointer/Pointer#get:value|inlined.1 end i32.const 2 i32.store offset=4 block $std/pointer/Pointer#get:value|inlined.2 (result i32) global.get $std/pointer/one - local.set $2 + local.set $10 i32.const 1 drop - local.get $2 + local.get $10 br $std/pointer/Pointer#get:value|inlined.2 end i32.load @@ -1583,10 +1730,10 @@ end block $std/pointer/Pointer#get:value|inlined.3 (result i32) global.get $std/pointer/one - local.set $0 + local.set $11 i32.const 1 drop - local.get $0 + local.get $11 br $std/pointer/Pointer#get:value|inlined.3 end i32.load offset=4 @@ -1602,16 +1749,16 @@ unreachable end global.get $std/pointer/one - local.set $2 + local.set $13 global.get $std/pointer/two - local.set $1 - local.get $2 - local.get $1 + local.set $12 + local.get $13 + local.get $12 i32.add global.set $std/pointer/add global.get $std/pointer/add - local.set $0 - local.get $0 + local.set $14 + local.get $14 i32.const 32 i32.eq i32.eqz @@ -1624,16 +1771,16 @@ unreachable end global.get $std/pointer/two - local.set $2 + local.set $16 global.get $std/pointer/one - local.set $1 - local.get $2 - local.get $1 + local.set $15 + local.get $16 + local.get $15 i32.sub global.set $std/pointer/sub global.get $std/pointer/sub - local.set $0 - local.get $0 + local.set $17 + local.get $17 i32.const 16 i32.eq i32.eqz @@ -1646,8 +1793,8 @@ unreachable end global.get $std/pointer/one - local.set $1 - local.get $1 + local.set $18 + local.get $18 i32.const 8 i32.eq i32.eqz @@ -1660,8 +1807,8 @@ unreachable end global.get $std/pointer/one - local.set $2 - local.get $2 + local.set $19 + local.get $19 i32.const 8 i32.add global.set $std/pointer/one @@ -1680,8 +1827,8 @@ unreachable end global.get $std/pointer/one - local.set $0 - local.get $0 + local.set $20 + local.get $20 i32.const 16 i32.eq i32.eqz @@ -1694,8 +1841,8 @@ unreachable end global.get $std/pointer/two - local.set $1 - local.get $1 + local.set $21 + local.get $21 i32.const 24 i32.eq i32.eqz @@ -1708,20 +1855,20 @@ unreachable end global.get $std/pointer/two - local.set $2 - local.get $2 + local.set $22 + local.get $22 i32.const 8 i32.sub global.set $std/pointer/two global.get $std/pointer/two - local.set $0 - local.get $0 + local.set $23 + local.get $23 i32.const 8 i32.sub global.set $std/pointer/two global.get $std/pointer/two - local.set $1 - local.get $1 + local.set $24 + local.get $24 i32.const 8 i32.eq i32.eqz @@ -1735,10 +1882,10 @@ end block $std/pointer/Pointer#get:value|inlined.4 (result i32) global.get $std/pointer/two - local.set $2 + local.set $25 i32.const 1 drop - local.get $2 + local.get $25 br $std/pointer/Pointer#get:value|inlined.4 end i32.load @@ -1755,10 +1902,10 @@ end block $std/pointer/Pointer#get:value|inlined.5 (result i32) global.get $std/pointer/two - local.set $0 + local.set $26 i32.const 1 drop - local.get $0 + local.get $26 br $std/pointer/Pointer#get:value|inlined.5 end i32.load offset=4 @@ -1774,40 +1921,40 @@ unreachable end global.get $std/pointer/one - local.set $0 + local.set $29 block $std/pointer/Pointer#get:value|inlined.6 (result i32) global.get $std/pointer/two - local.set $1 + local.set $27 i32.const 1 drop - local.get $1 + local.get $27 br $std/pointer/Pointer#get:value|inlined.6 end - local.set $2 + local.set $28 i32.const 1 drop i32.const 0 drop - local.get $2 + local.get $28 i32.const 0 i32.eq if - local.get $0 + local.get $29 i32.const 0 i32.const 8 call $~lib/memory/memory.fill else - local.get $0 - local.get $2 + local.get $29 + local.get $28 i32.const 8 call $~lib/memory/memory.copy end global.get $std/pointer/one - local.set $1 - local.get $1 + local.set $30 + local.get $30 global.get $std/pointer/two - local.set $2 - local.get $2 + local.set $31 + local.get $31 i32.ne i32.eqz if @@ -1820,10 +1967,10 @@ end block $std/pointer/Pointer#get:value|inlined.7 (result i32) global.get $std/pointer/one - local.set $0 + local.set $32 i32.const 1 drop - local.get $0 + local.get $32 br $std/pointer/Pointer#get:value|inlined.7 end i32.load @@ -1840,10 +1987,10 @@ end block $std/pointer/Pointer#get:value|inlined.8 (result i32) global.get $std/pointer/one - local.set $1 + local.set $33 i32.const 1 drop - local.get $1 + local.get $33 br $std/pointer/Pointer#get:value|inlined.8 end i32.load offset=4 @@ -1859,47 +2006,47 @@ unreachable end i32.const 0 - local.set $0 + local.set $35 i32.const 0 - local.set $2 - local.get $2 - local.set $1 - local.get $0 + local.set $34 + local.get $34 + local.set $36 + local.get $35 call $~lib/rt/stub/__release - local.get $1 + local.get $36 global.set $std/pointer/buf global.get $std/pointer/buf - local.set $2 + local.set $39 i32.const 0 - local.set $1 + local.set $38 f32.const 1.100000023841858 - local.set $3 - local.get $2 - local.get $1 + local.set $37 + local.get $39 + local.get $38 i32.const 4 i32.mul i32.add - local.get $3 + local.get $37 f32.store global.get $std/pointer/buf - local.set $1 + local.set $42 i32.const 1 - local.set $0 + local.set $41 f32.const 1.2000000476837158 - local.set $3 - local.get $1 - local.get $0 + local.set $40 + local.get $42 + local.get $41 i32.const 4 i32.mul i32.add - local.get $3 + local.get $40 f32.store global.get $std/pointer/buf - local.set $0 + local.set $44 i32.const 0 - local.set $2 - local.get $0 - local.get $2 + local.set $43 + local.get $44 + local.get $43 i32.const 4 i32.mul i32.add @@ -1916,11 +2063,11 @@ unreachable end global.get $std/pointer/buf - local.set $2 + local.set $46 i32.const 1 - local.set $1 - local.get $2 - local.get $1 + local.set $45 + local.get $46 + local.get $45 i32.const 4 i32.mul i32.add @@ -1937,11 +2084,11 @@ unreachable end global.get $std/pointer/buf - local.set $1 + local.set $48 i32.const 0 - local.set $0 - local.get $1 - local.get $0 + local.set $47 + local.get $48 + local.get $47 i32.const 4 i32.mul i32.add @@ -1958,11 +2105,11 @@ unreachable end global.get $std/pointer/buf - local.set $0 + local.set $50 i32.const 1 - local.set $2 - local.get $0 - local.get $2 + local.set $49 + local.get $50 + local.get $49 i32.const 4 i32.mul i32.add @@ -2005,24 +2152,24 @@ unreachable end global.get $std/pointer/buf - local.set $2 + local.set $53 i32.const 2 - local.set $1 + local.set $52 f32.const 1.2999999523162842 - local.set $3 - local.get $2 - local.get $1 + local.set $51 + local.get $53 + local.get $52 i32.const 4 i32.mul i32.add - local.get $3 + local.get $51 f32.store global.get $std/pointer/buf - local.set $1 + local.set $55 i32.const 2 - local.set $0 - local.get $1 - local.get $0 + local.set $54 + local.get $55 + local.get $54 i32.const 4 i32.mul i32.add @@ -2039,11 +2186,11 @@ unreachable end global.get $std/pointer/buf - local.set $0 + local.set $57 i32.const 2 - local.set $2 - local.get $0 - local.get $2 + local.set $56 + local.get $57 + local.get $56 i32.const 4 i32.mul i32.add @@ -2073,20 +2220,20 @@ unreachable end global.get $std/pointer/buf - local.set $1 + local.set $59 f32.const 1.399999976158142 - local.set $3 + local.set $58 i32.const 0 drop - local.get $1 - local.get $3 + local.get $59 + local.get $58 f32.store block $std/pointer/Pointer#get:value|inlined.0 (result f32) global.get $std/pointer/buf - local.set $2 + local.set $60 i32.const 0 drop - local.get $2 + local.get $60 f32.load br $std/pointer/Pointer#get:value|inlined.0 end diff --git a/tests/compiler/std/static-array.untouched.wat b/tests/compiler/std/static-array.untouched.wat index dca5df6311..ac50d5b48a 100644 --- a/tests/compiler/std/static-array.untouched.wat +++ b/tests/compiler/std/static-array.untouched.wat @@ -78,6 +78,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -108,8 +109,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -186,6 +187,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -205,11 +288,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -229,8 +312,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -339,17 +422,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -366,16 +449,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -385,45 +468,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -434,8 +517,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -520,31 +603,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -555,8 +638,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -641,17 +724,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -662,8 +745,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -750,227 +833,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -979,115 +1062,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -1096,59 +1179,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -1157,31 +1240,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -1190,17 +1273,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -1211,6 +1294,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -1288,11 +1379,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -1302,8 +1393,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -1327,21 +1418,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -1370,8 +1461,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -1396,8 +1487,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -1417,8 +1508,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -1444,6 +1535,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) local.get $0 i32.const 0 i32.ne @@ -1533,13 +1625,13 @@ local.get $2 i32.load offset=8 call $~lib/rt/stub/__alloc - local.set $6 - local.get $6 + local.set $8 + local.get $8 local.get $0 local.get $2 i32.load offset=12 call $~lib/memory/memory.copy - local.get $6 + local.get $8 local.tee $0 i32.const 16 i32.sub @@ -2129,6 +2221,12 @@ (func $start:std/static-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) global.get $std/static-array/i call $~lib/array/Array#get:length i32.const 2 diff --git a/tests/compiler/std/staticarray.untouched.wat b/tests/compiler/std/staticarray.untouched.wat index 69b4f3f24b..988f49f548 100644 --- a/tests/compiler/std/staticarray.untouched.wat +++ b/tests/compiler/std/staticarray.untouched.wat @@ -115,6 +115,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -251,59 +260,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -333,6 +342,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -395,8 +418,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -407,16 +430,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -434,18 +457,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -457,7 +480,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -470,23 +493,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -500,14 +523,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -527,7 +550,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -545,24 +568,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -570,21 +593,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -600,86 +623,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -690,6 +713,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -829,11 +853,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -853,6 +877,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -909,66 +939,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -981,11 +1011,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -1034,6 +1064,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1107,11 +1145,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1122,10 +1160,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1138,30 +1176,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1172,45 +1210,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1219,6 +1257,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1265,15 +1304,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1287,12 +1326,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1302,6 +1341,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1366,11 +1407,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1378,11 +1419,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -1537,6 +1578,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -1556,11 +1679,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -1580,8 +1703,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -1690,17 +1813,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -1717,16 +1840,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -1736,45 +1859,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -1785,8 +1908,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -1871,31 +1994,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -1906,8 +2029,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -1992,17 +2115,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -2013,8 +2136,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -2101,227 +2224,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -2330,115 +2453,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -2447,59 +2570,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -2508,31 +2631,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -2541,17 +2664,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -2562,6 +2685,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -2639,11 +2770,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -2653,8 +2784,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -2678,21 +2809,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -2721,8 +2852,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -2747,8 +2878,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -2768,8 +2899,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -2902,6 +3033,12 @@ (func $start:std/staticarray (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 $std/staticarray/arr1 i32.const 1 call $~lib/staticarray/StaticArray#__get @@ -3068,10 +3205,10 @@ unreachable end call $std/staticarray/test - local.set $0 + local.set $2 global.get $std/staticarray/arr3 call $~lib/rt/pure/__release - local.get $0 + local.get $2 global.set $std/staticarray/arr3 global.get $std/staticarray/arr3 i32.const 1 @@ -3092,44 +3229,44 @@ i32.const 0 call $~lib/rt/__allocBuffer call $~lib/rt/pure/__retain - local.set $0 - local.get $0 + local.set $3 + local.get $3 i32.const 0 call $std/staticarray/Ref#constructor i32.store - local.get $0 + local.get $3 i32.const 0 call $std/staticarray/Ref#constructor i32.store offset=4 - local.get $0 + local.get $3 global.set $std/staticarray/arr4 i32.const 0 - local.tee $0 + local.tee $4 global.get $std/staticarray/arr3 - local.tee $1 + local.tee $5 i32.ne if - local.get $0 + local.get $4 call $~lib/rt/pure/__retain - local.set $0 - local.get $1 + local.set $4 + local.get $5 call $~lib/rt/pure/__release end - local.get $0 + local.get $4 global.set $std/staticarray/arr3 i32.const 0 - local.tee $1 + local.tee $6 global.get $std/staticarray/arr4 - local.tee $0 + local.tee $7 i32.ne if - local.get $1 + local.get $6 call $~lib/rt/pure/__retain - local.set $1 - local.get $0 + local.set $6 + local.get $7 call $~lib/rt/pure/__release end - local.get $1 + local.get $6 global.set $std/staticarray/arr4 ) (func $~start diff --git a/tests/compiler/std/string-casemapping.untouched.wat b/tests/compiler/std/string-casemapping.untouched.wat index 41c7e6ce04..d0f6ff2f1f 100644 --- a/tests/compiler/std/string-casemapping.untouched.wat +++ b/tests/compiler/std/string-casemapping.untouched.wat @@ -288,6 +288,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -424,59 +433,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -506,6 +515,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -568,8 +591,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -580,16 +603,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -607,18 +630,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -630,7 +653,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -643,23 +666,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -673,14 +696,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -700,7 +723,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -718,24 +741,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -743,21 +766,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -773,86 +796,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -863,6 +886,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -1002,11 +1026,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -1026,6 +1050,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -1082,66 +1112,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -1154,11 +1184,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -1207,6 +1237,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1280,11 +1318,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1295,10 +1333,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1311,30 +1349,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1345,45 +1383,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 + local.set $17 + local.get $2 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1392,6 +1430,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1438,15 +1477,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1460,12 +1499,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1475,6 +1514,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1539,11 +1580,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1551,11 +1592,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -1956,6 +1997,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -1975,11 +2098,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -1999,8 +2122,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -2109,17 +2232,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -2136,16 +2259,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -2155,45 +2278,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -2204,8 +2327,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -2290,31 +2413,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -2325,8 +2448,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -2411,17 +2534,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -2432,8 +2555,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -2520,227 +2643,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -2749,115 +2872,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -2866,59 +2989,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -2927,31 +3050,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -2960,17 +3083,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -2981,6 +3104,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -3058,11 +3189,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -3072,8 +3203,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -3097,21 +3228,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -3140,8 +3271,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -3166,8 +3297,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -3187,8 +3318,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -3232,6 +3363,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) local.get $2 call $~lib/rt/tlsf/prepareSize local.set $3 @@ -3289,8 +3421,8 @@ i32.xor i32.and i32.add - local.set $5 - local.get $5 + local.set $8 + local.get $8 local.get $3 i32.ge_u if @@ -3301,7 +3433,7 @@ local.get $4 i32.const 3 i32.and - local.get $5 + local.get $8 i32.or i32.store local.get $1 @@ -3320,12 +3452,12 @@ local.get $1 i32.load offset=8 call $~lib/rt/tlsf/allocateBlock - local.set $8 - local.get $8 + local.set $9 + local.get $9 local.get $1 i32.load offset=4 i32.store offset=4 - local.get $8 + local.get $9 i32.const 16 i32.add local.get $1 @@ -3340,13 +3472,13 @@ i32.const 1 drop local.get $1 - local.get $8 + local.get $9 call $~lib/rt/rtrace/onrealloc local.get $0 local.get $1 call $~lib/rt/tlsf/freeBlock end - local.get $8 + local.get $9 ) (func $~lib/rt/tlsf/__realloc (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize @@ -3374,6 +3506,15 @@ (local $14 i32) (local $15 i32) (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) local.get $0 call $~lib/string/String#get:length local.set $1 @@ -3430,13 +3571,13 @@ i32.add block $~lib/util/string/toUpper8|inlined.0 (result i32) local.get $8 - local.set $9 + local.set $10 i32.const 0 i32.const 0 i32.gt_s drop i32.const 1024 - local.get $9 + local.get $10 i32.add i32.load8_u br $~lib/util/string/toUpper8|inlined.0 @@ -3466,8 +3607,8 @@ i32.shl i32.add i32.load16_u offset=2 - local.set $9 - local.get $9 + local.set $11 + local.get $11 i32.const 56319 i32.sub i32.const 57344 @@ -3476,13 +3617,13 @@ i32.lt_u if local.get $8 - local.set $10 + local.set $12 local.get $8 i32.const 1023 i32.and i32.const 10 i32.shl - local.get $9 + local.get $11 i32.const 1023 i32.and i32.or @@ -3502,8 +3643,8 @@ i32.const 1 i32.shl i32.add - local.get $10 - local.get $9 + local.get $12 + local.get $11 i32.const 16 i32.shl i32.or @@ -3535,7 +3676,7 @@ i32.store16 else i32.const -1 - local.set $9 + local.set $13 local.get $8 i32.const 223 i32.sub @@ -3546,57 +3687,57 @@ if block $~lib/util/casemap/bsearch|inlined.0 (result i32) local.get $8 - local.set $12 + local.set $16 local.get $3 - local.set $11 + local.set $15 local.get $4 - local.set $10 + local.set $14 i32.const 0 - local.set $13 + local.set $17 loop $while-continue|1 - local.get $13 - local.get $10 - i32.le_s - local.set $14 + local.get $17 local.get $14 + i32.le_s + local.set $18 + local.get $18 if - local.get $13 - local.get $10 + local.get $17 + local.get $14 i32.add i32.const 3 i32.shr_u i32.const 2 i32.shl - local.set $15 - local.get $11 + local.set $19 local.get $15 + local.get $19 i32.const 1 i32.shl i32.add i32.load16_u - local.get $12 - i32.sub - local.set $16 local.get $16 + i32.sub + local.set $20 + local.get $20 i32.const 0 i32.eq if - local.get $15 + local.get $19 br $~lib/util/casemap/bsearch|inlined.0 else - local.get $16 + local.get $20 i32.const 31 i32.shr_u if - local.get $15 + local.get $19 i32.const 4 i32.add - local.set $13 + local.set $17 else - local.get $15 + local.get $19 i32.const 4 i32.sub - local.set $10 + local.set $14 end end br $while-continue|1 @@ -3604,43 +3745,43 @@ end i32.const -1 end - local.set $9 + local.set $13 end - local.get $9 + local.get $13 i32.const -1 i32.xor if local.get $3 - local.get $9 + local.get $13 i32.const 1 i32.shl i32.add i32.load offset=2 - local.set $13 + local.set $21 local.get $3 - local.get $9 + local.get $13 i32.const 1 i32.shl i32.add i32.load16_u offset=6 - local.set $12 + local.set $22 local.get $2 local.get $5 i32.const 1 i32.shl i32.add - local.get $13 + local.get $21 i32.store local.get $2 local.get $5 i32.const 1 i32.shl i32.add - local.get $12 + local.get $22 i32.store16 offset=4 local.get $5 i32.const 1 - local.get $12 + local.get $22 i32.const 0 i32.ne i32.add @@ -3652,8 +3793,8 @@ call $~lib/util/casemap/casemap i32.const 2097151 i32.and - local.set $12 - local.get $12 + local.set $23 + local.get $23 i32.const 65536 i32.lt_s if @@ -3662,32 +3803,32 @@ i32.const 1 i32.shl i32.add - local.get $12 + local.get $23 i32.store16 else - local.get $12 + local.get $23 i32.const 65536 i32.sub - local.set $12 - local.get $12 + local.set $23 + local.get $23 i32.const 10 i32.shr_u i32.const 55296 i32.or - local.set $13 - local.get $12 + local.set $24 + local.get $23 i32.const 1023 i32.and i32.const 56320 i32.or - local.set $11 + local.set $25 local.get $2 local.get $5 i32.const 1 i32.shl i32.add - local.get $13 - local.get $11 + local.get $24 + local.get $25 i32.const 16 i32.shl i32.or @@ -3739,6 +3880,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3810,33 +3954,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $10 + local.get $12 return end local.get $5 @@ -3851,16 +3995,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3892,44 +4039,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $6 ) (func $~lib/util/string/stagedBinaryLookup (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -3975,6 +4122,26 @@ (local $16 i32) (local $17 i32) (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) local.get $0 call $~lib/string/String#get:length local.set $1 @@ -4026,13 +4193,13 @@ i32.add block $~lib/util/string/toLower8|inlined.0 (result i32) local.get $6 - local.set $7 + local.set $8 i32.const 0 i32.const 0 i32.gt_s drop i32.const 5778 - local.get $7 + local.get $8 i32.add i32.load8_u br $~lib/util/string/toLower8|inlined.0 @@ -4062,8 +4229,8 @@ i32.shl i32.add i32.load16_u offset=2 - local.set $7 - local.get $7 + local.set $9 + local.get $9 i32.const 56319 i32.sub i32.const 57344 @@ -4072,13 +4239,13 @@ i32.lt_u if local.get $6 - local.set $8 + local.set $10 local.get $6 i32.const 1023 i32.and i32.const 10 i32.shl - local.get $7 + local.get $9 i32.const 1023 i32.and i32.or @@ -4098,8 +4265,8 @@ i32.const 1 i32.shl i32.add - local.get $8 - local.get $7 + local.get $10 + local.get $9 i32.const 16 i32.shl i32.or @@ -4137,94 +4304,94 @@ i32.eq if i32.const 963 - local.set $7 + local.set $11 local.get $1 i32.const 1 i32.gt_u if (result i32) block $~lib/util/string/isFinalSigma|inlined.0 (result i32) local.get $0 - local.set $10 + local.set $14 local.get $4 - local.set $9 + local.set $13 local.get $1 - local.set $8 - i32.const 0 - local.set $11 - local.get $9 local.set $12 i32.const 0 - local.tee $13 - local.get $12 + local.set $15 + local.get $13 + local.set $16 + i32.const 0 + local.tee $17 + local.get $16 i32.const 30 i32.sub - local.tee $14 - local.get $13 - local.get $14 + local.tee $18 + local.get $17 + local.get $18 i32.gt_s select - local.set $13 + local.set $19 loop $while-continue|1 - local.get $12 - local.get $13 + local.get $16 + local.get $19 i32.gt_s - local.set $14 - local.get $14 + local.set $20 + local.get $20 if block $~lib/util/string/codePointBefore|inlined.0 (result i32) - local.get $10 - local.set $16 - local.get $12 - local.set $15 - local.get $15 + local.get $14 + local.set $22 + local.get $16 + local.set $21 + local.get $21 i32.const 0 i32.le_s if i32.const -1 br $~lib/util/string/codePointBefore|inlined.0 end - local.get $16 - local.get $15 + local.get $22 + local.get $21 i32.const 1 i32.sub i32.const 1 i32.shl i32.add i32.load16_u - local.set $17 - local.get $17 + local.set $23 + local.get $23 i32.const 64512 i32.and i32.const 56320 i32.eq - local.get $15 + local.get $21 i32.const 2 i32.sub i32.const 0 i32.ge_s i32.and if - local.get $16 - local.get $15 + local.get $22 + local.get $21 i32.const 2 i32.sub i32.const 1 i32.shl i32.add i32.load16_u - local.set $18 - local.get $18 + local.set $24 + local.get $24 i32.const 64512 i32.and i32.const 55296 i32.eq if - local.get $18 + local.get $24 i32.const 1023 i32.and i32.const 10 i32.shl - local.get $17 + local.get $23 i32.const 1023 i32.and i32.add @@ -4233,7 +4400,7 @@ br $~lib/util/string/codePointBefore|inlined.0 end end - local.get $17 + local.get $23 i32.const 63488 i32.and i32.const 55296 @@ -4241,151 +4408,151 @@ if (result i32) i32.const 65533 else - local.get $17 + local.get $23 end end - local.set $17 - local.get $17 - local.set $18 - local.get $18 + local.set $25 + local.get $25 + local.set $26 + local.get $26 i32.const 918000 i32.lt_u if (result i32) i32.const 5906 - local.get $18 + local.get $26 call $~lib/util/string/stagedBinaryLookup else i32.const 0 end i32.eqz if - local.get $17 - local.set $15 - local.get $15 + local.get $25 + local.set $27 + local.get $27 i32.const 127370 i32.lt_u if (result i32) i32.const 8914 - local.get $15 + local.get $27 call $~lib/util/string/stagedBinaryLookup else i32.const 0 end if i32.const 1 - local.set $11 + local.set $15 else i32.const 0 br $~lib/util/string/isFinalSigma|inlined.0 end end - local.get $12 - local.get $17 + local.get $16 + local.get $25 i32.const 65536 i32.ge_s i32.const 1 i32.add i32.sub - local.set $12 + local.set $16 br $while-continue|1 end end - local.get $11 + local.get $15 i32.eqz if i32.const 0 br $~lib/util/string/isFinalSigma|inlined.0 end - local.get $9 + local.get $13 i32.const 1 i32.add - local.set $12 - local.get $12 + local.set $16 + local.get $16 i32.const 30 i32.add - local.tee $14 - local.get $8 - local.tee $15 - local.get $14 - local.get $15 + local.tee $28 + local.get $12 + local.tee $29 + local.get $28 + local.get $29 i32.lt_s select - local.set $14 + local.set $30 loop $while-continue|2 - local.get $12 - local.get $14 + local.get $16 + local.get $30 i32.lt_s - local.set $15 - local.get $15 + local.set $31 + local.get $31 if - local.get $10 - local.get $12 + local.get $14 + local.get $16 i32.const 1 i32.shl i32.add i32.load16_u - local.set $18 - local.get $18 + local.set $32 + local.get $32 i32.const 64512 i32.and i32.const 55296 i32.eq - local.get $12 + local.get $16 i32.const 1 i32.add - local.get $8 + local.get $12 i32.ne i32.and if - local.get $10 - local.get $12 + local.get $14 + local.get $16 i32.const 1 i32.shl i32.add i32.load16_u offset=2 - local.set $16 - local.get $16 + local.set $33 + local.get $33 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $18 + local.get $32 i32.const 55296 i32.sub i32.const 10 i32.shl - local.get $16 + local.get $33 i32.const 56320 i32.sub i32.add i32.const 65536 i32.add - local.set $18 + local.set $32 end end - local.get $18 - local.set $16 - local.get $16 + local.get $32 + local.set $34 + local.get $34 i32.const 918000 i32.lt_u if (result i32) i32.const 5906 - local.get $16 + local.get $34 call $~lib/util/string/stagedBinaryLookup else i32.const 0 end i32.eqz if - local.get $18 - local.set $16 - local.get $16 + local.get $32 + local.set $35 + local.get $35 i32.const 127370 i32.lt_u if (result i32) i32.const 8914 - local.get $16 + local.get $35 call $~lib/util/string/stagedBinaryLookup else i32.const 0 @@ -4393,14 +4560,14 @@ i32.eqz br $~lib/util/string/isFinalSigma|inlined.0 end - local.get $12 - local.get $18 + local.get $16 + local.get $32 i32.const 65536 i32.ge_u i32.const 1 i32.add i32.add - local.set $12 + local.set $16 br $while-continue|2 end end @@ -4411,14 +4578,14 @@ end if i32.const 962 - local.set $7 + local.set $11 end local.get $2 local.get $3 i32.const 1 i32.shl i32.add - local.get $7 + local.get $11 i32.store16 else local.get $6 @@ -4444,8 +4611,8 @@ call $~lib/util/casemap/casemap i32.const 2097151 i32.and - local.set $7 - local.get $7 + local.set $36 + local.get $36 i32.const 65536 i32.lt_s if @@ -4454,32 +4621,32 @@ i32.const 1 i32.shl i32.add - local.get $7 + local.get $36 i32.store16 else - local.get $7 + local.get $36 i32.const 65536 i32.sub - local.set $7 - local.get $7 + local.set $36 + local.get $36 i32.const 10 i32.shr_u i32.const 55296 i32.or - local.set $14 - local.get $7 + local.set $37 + local.get $36 i32.const 1023 i32.and i32.const 56320 i32.or - local.set $13 + local.set $38 local.get $2 local.get $3 i32.const 1 i32.shl i32.add - local.get $14 - local.get $13 + local.get $37 + local.get $38 i32.const 16 i32.shl i32.or @@ -4707,6 +4874,9 @@ (local $9 i64) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) loop $while-continue|0 local.get $1 i32.const 10000 @@ -4771,30 +4941,30 @@ local.get $1 i32.const 100 i32.div_u - local.set $3 + local.set $10 local.get $1 i32.const 100 i32.rem_u - local.set $10 - local.get $3 + local.set $11 + local.get $10 local.set $1 local.get $2 i32.const 2 i32.sub local.set $2 i32.const 17556 - local.get $10 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $12 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $12 i32.store end local.get $1 @@ -4811,13 +4981,13 @@ i32.shl i32.add i32.load - local.set $11 + local.set $13 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $13 i32.store else local.get $2 @@ -4827,13 +4997,13 @@ i32.const 48 local.get $1 i32.add - local.set $11 + local.set $14 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $14 i32.store16 end ) @@ -5026,7 +5196,10 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i64) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) local.get $0 i64.const 0 i64.ne @@ -5069,26 +5242,26 @@ else local.get $0 call $~lib/util/number/decimalCount64High - local.set $3 - local.get $3 + local.set $7 + local.get $7 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc local.set $1 local.get $1 - local.set $5 + local.set $10 local.get $0 - local.set $7 - local.get $3 - local.set $4 + local.set $9 + local.get $7 + local.set $8 i32.const 0 i32.const 1 i32.ge_s drop - local.get $5 - local.get $7 - local.get $4 + local.get $10 + local.get $9 + local.get $8 call $~lib/util/number/utoa64_lut end local.get $1 @@ -5119,6 +5292,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 @@ -5161,32 +5336,32 @@ if i32.const 32 call $~lib/rt/pure/__retain - local.set $2 + local.set $7 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $7 return end local.get $6 i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $7 - local.get $7 + local.set $8 + local.get $8 local.get $0 local.get $4 call $~lib/memory/memory.copy - local.get $7 + local.get $8 local.get $4 i32.add local.get $1 local.get $5 call $~lib/memory/memory.copy - local.get $7 - local.set $2 + local.get $8 + local.set $9 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $9 ) (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -5313,6 +5488,10 @@ (local $98 i32) (local $99 i32) (local $100 i32) + (local $101 i32) + (local $102 i32) + (local $103 i32) + (local $104 i32) i32.const 32 call $~lib/string/String#toUpperCase local.tee $0 @@ -6679,9 +6858,9 @@ i32.const 18160 local.get $94 call $~lib/number/U64#toString - local.tee $100 + local.tee $101 call $~lib/string/String.__concat - local.tee $99 + local.tee $102 i32.const 0 f64.const 0 f64.const 0 @@ -6692,9 +6871,9 @@ i32.const 18224 local.get $96 call $~lib/number/U64#toString - local.tee $98 + local.tee $103 call $~lib/string/String.__concat - local.tee $97 + local.tee $104 i32.const 0 f64.const 0 f64.const 0 @@ -6702,13 +6881,13 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - local.get $100 + local.get $101 call $~lib/rt/pure/__release - local.get $99 + local.get $102 call $~lib/rt/pure/__release - local.get $98 + local.get $103 call $~lib/rt/pure/__release - local.get $97 + local.get $104 call $~lib/rt/pure/__release end local.get $88 diff --git a/tests/compiler/std/string-encoding.untouched.wat b/tests/compiler/std/string-encoding.untouched.wat index 49ea1dfcdb..789307409a 100644 --- a/tests/compiler/std/string-encoding.untouched.wat +++ b/tests/compiler/std/string-encoding.untouched.wat @@ -159,6 +159,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -295,59 +304,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -377,6 +386,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -439,8 +462,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -451,16 +474,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -478,18 +501,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -501,7 +524,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -514,23 +537,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -544,14 +567,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -571,7 +594,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -589,24 +612,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -614,21 +637,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -644,86 +667,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -734,6 +757,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -873,11 +897,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -897,6 +921,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -953,66 +983,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -1025,11 +1055,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -1078,6 +1108,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1151,11 +1189,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1166,10 +1204,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1182,30 +1220,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1216,45 +1254,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1263,6 +1301,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1309,15 +1348,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1331,12 +1370,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1346,6 +1385,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1410,11 +1451,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1422,11 +1463,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -1589,6 +1630,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -1608,11 +1731,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -1632,8 +1755,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -1742,17 +1865,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -1769,16 +1892,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -1788,45 +1911,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -1837,8 +1960,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -1923,31 +2046,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -1958,8 +2081,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -2044,17 +2167,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -2065,8 +2188,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -2153,227 +2276,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -2382,115 +2505,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -2499,59 +2622,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -2560,31 +2683,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -2593,17 +2716,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -2614,6 +2737,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -2691,11 +2822,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -2705,8 +2836,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -2730,21 +2861,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -2773,8 +2904,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -2799,8 +2930,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -2820,8 +2951,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -3101,6 +3232,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3172,33 +3306,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $10 + local.get $12 return end local.get $5 @@ -3213,16 +3347,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3254,44 +3391,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $6 ) (func $std/string-encoding/testUTF16Decode (local $0 i32) @@ -3473,6 +3610,7 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3573,10 +3711,10 @@ end end local.get $4 - local.set $5 + local.set $7 local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $7 ) (func $std/string-encoding/testUTF8Length global.get $std/string-encoding/str @@ -3618,6 +3756,12 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 local.get $1 i32.const 1 @@ -3693,8 +3837,8 @@ if local.get $0 i32.load16_u offset=2 - local.set $9 - local.get $9 + local.set $10 + local.get $10 i32.const 64512 i32.and i32.const 56320 @@ -3707,7 +3851,7 @@ i32.const 10 i32.shl i32.add - local.get $9 + local.get $10 i32.const 1023 i32.and i32.or @@ -3717,7 +3861,7 @@ i32.shr_u i32.const 240 i32.or - local.set $8 + local.set $11 local.get $7 i32.const 12 i32.shr_u @@ -3725,7 +3869,7 @@ i32.and i32.const 128 i32.or - local.set $10 + local.set $12 local.get $7 i32.const 6 i32.shr_u @@ -3733,26 +3877,26 @@ i32.and i32.const 128 i32.or - local.set $11 + local.set $13 local.get $7 i32.const 63 i32.and i32.const 128 i32.or - local.set $12 + local.set $14 local.get $5 - local.get $12 + local.get $14 i32.const 24 i32.shl - local.get $11 + local.get $13 i32.const 16 i32.shl i32.or - local.get $10 + local.get $12 i32.const 8 i32.shl i32.or - local.get $8 + local.get $11 i32.or i32.store local.get $5 @@ -3771,7 +3915,7 @@ i32.shr_u i32.const 224 i32.or - local.set $9 + local.set $15 local.get $7 i32.const 6 i32.shr_u @@ -3779,22 +3923,22 @@ i32.and i32.const 128 i32.or - local.set $12 + local.set $16 local.get $7 i32.const 63 i32.and i32.const 128 i32.or - local.set $11 + local.set $17 local.get $5 - local.get $12 + local.get $16 i32.const 8 i32.shl - local.get $9 + local.get $15 i32.or i32.store16 local.get $5 - local.get $11 + local.get $17 i32.store8 offset=2 local.get $5 i32.const 3 @@ -3812,11 +3956,11 @@ local.get $3 if local.get $5 - local.tee $6 + local.tee $18 i32.const 1 i32.add local.set $5 - local.get $6 + local.get $18 i32.const 0 i32.store8 end @@ -4246,6 +4390,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) local.get $2 call $~lib/rt/tlsf/prepareSize local.set $3 @@ -4303,8 +4448,8 @@ i32.xor i32.and i32.add - local.set $5 - local.get $5 + local.set $8 + local.get $8 local.get $3 i32.ge_u if @@ -4315,7 +4460,7 @@ local.get $4 i32.const 3 i32.and - local.get $5 + local.get $8 i32.or i32.store local.get $1 @@ -4334,12 +4479,12 @@ local.get $1 i32.load offset=8 call $~lib/rt/tlsf/allocateBlock - local.set $8 - local.get $8 + local.set $9 + local.get $9 local.get $1 i32.load offset=4 i32.store offset=4 - local.get $8 + local.get $9 i32.const 16 i32.add local.get $1 @@ -4354,13 +4499,13 @@ i32.const 1 drop local.get $1 - local.get $8 + local.get $9 call $~lib/rt/rtrace/onrealloc local.get $0 local.get $1 call $~lib/rt/tlsf/freeBlock end - local.get $8 + local.get $9 ) (func $~lib/rt/tlsf/__realloc (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 0644843b30..76f4400d39 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -3221,33 +3221,32 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 i64) + (local $5 i64) + (local $6 i32) + (local $7 i64) + (local $8 i64) + (local $9 f64) (local $10 i64) (local $11 f64) - (local $12 i64) - (local $13 f64) + (local $12 i32) + (local $13 i32) (local $14 i32) - (local $15 i32) - (local $16 i64) + (local $15 i64) block $folding-inner0 local.get $0 call $~lib/string/String#get:length - local.tee $5 + local.tee $4 i32.eqz br_if $folding-inner0 local.get $0 i32.load16_u - local.set $7 + local.set $6 f64.const 1 - local.set $13 + local.set $11 loop $while-continue|0 - local.get $5 + local.get $4 if (result i32) - local.get $7 + local.get $6 call $~lib/util/string/isSpace else i32.const 0 @@ -3258,43 +3257,43 @@ i32.add local.tee $0 i32.load16_u - local.set $7 - local.get $5 + local.set $6 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $while-continue|0 end end - local.get $5 + local.get $4 i32.eqz br_if $folding-inner0 - local.get $7 + local.get $6 i32.const 45 i32.eq if (result i32) - local.get $5 + local.get $4 i32.const 1 i32.sub - local.tee $5 + local.tee $4 i32.eqz br_if $folding-inner0 f64.const -1 - local.set $13 + local.set $11 local.get $0 i32.const 2 i32.add local.tee $0 i32.load16_u else - local.get $7 + local.get $6 i32.const 43 i32.eq if (result i32) - local.get $5 + local.get $4 i32.const 1 i32.sub - local.tee $5 + local.tee $4 i32.eqz br_if $folding-inner0 local.get $0 @@ -3303,14 +3302,14 @@ local.tee $0 i32.load16_u else - local.get $7 + local.get $6 end end - local.tee $7 + local.tee $6 i32.const 73 i32.eq i32.const 0 - local.get $5 + local.get $4 i32.const 8 i32.ge_s select @@ -3329,27 +3328,27 @@ end if f64.const inf - local.get $13 + local.get $11 f64.copysign return end br $folding-inner0 end - local.get $7 + local.get $6 i32.const 48 i32.sub i32.const 10 i32.ge_u i32.const 0 - local.get $7 + local.get $6 i32.const 46 i32.ne select br_if $folding-inner0 local.get $0 - local.set $4 + local.set $3 loop $while-continue|1 - local.get $7 + local.get $6 i32.const 48 i32.eq if @@ -3358,57 +3357,57 @@ i32.add local.tee $0 i32.load16_u - local.set $7 - local.get $5 + local.set $6 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $while-continue|1 end end - local.get $5 + local.get $4 i32.const 0 i32.le_s if f64.const 0 return end - local.get $7 + local.get $6 i32.const 46 i32.eq if - local.get $4 + local.get $3 local.get $0 i32.sub i32.eqz - local.set $4 + local.set $3 local.get $0 i32.const 2 i32.add local.set $0 - local.get $5 + local.get $4 i32.const 1 i32.sub - local.tee $5 + local.tee $4 if (result i32) i32.const 0 else - local.get $4 + local.get $3 end br_if $folding-inner0 i32.const 1 - local.set $14 + local.set $12 loop $for-loop|2 local.get $0 i32.load16_u - local.tee $7 + local.tee $6 i32.const 48 i32.eq if - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 local.get $2 i32.const 1 i32.sub @@ -3420,57 +3419,57 @@ br $for-loop|2 end end - local.get $5 + local.get $4 i32.const 0 i32.le_s if f64.const 0 return end - local.get $7 + local.get $6 i32.const 48 i32.sub i32.const 10 i32.ge_u i32.const 0 i32.const 0 - local.get $4 + local.get $3 local.get $2 select select br_if $folding-inner0 end - local.get $7 + local.get $6 i32.const 48 i32.sub - local.set $8 + local.set $3 loop $for-loop|3 i32.const 1 - local.get $14 + local.get $12 i32.eqz i32.const 0 - local.get $7 + local.get $6 i32.const 46 i32.eq select - local.get $8 + local.get $3 i32.const 10 i32.lt_u select if block $for-break3 - local.get $8 + local.get $3 i32.const 10 i32.lt_u if - local.get $8 + local.get $3 i64.extend_i32_u - local.get $6 + local.get $5 i64.const 10 i64.mul i64.add - local.get $6 - local.get $8 + local.get $5 + local.get $3 i32.eqz i32.eqz i64.extend_i32_u @@ -3479,7 +3478,7 @@ i32.const 19 i32.lt_s select - local.set $6 + local.set $5 local.get $1 i32.const 1 i32.add @@ -3488,12 +3487,12 @@ local.get $1 local.set $2 i32.const 1 - local.set $14 + local.set $12 end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.tee $5 + local.tee $4 i32.eqz br_if $for-break3 local.get $0 @@ -3501,17 +3500,17 @@ i32.add local.tee $0 i32.load16_u - local.tee $7 + local.tee $6 i32.const 48 i32.sub - local.set $8 + local.set $3 br $for-loop|3 end end end local.get $2 local.get $1 - local.get $14 + local.get $12 select i32.const 19 local.get $1 @@ -3520,138 +3519,138 @@ i32.lt_s select i32.sub - local.set $4 + local.set $3 i32.const 1 - local.set $1 + local.set $2 block $~lib/util/string/parseExp|inlined.0 local.get $0 - local.tee $2 + local.tee $1 i32.load16_u i32.const 32 i32.or i32.const 101 i32.ne br_if $~lib/util/string/parseExp|inlined.0 - local.get $2 + local.get $1 i32.const 2 i32.add - local.tee $8 - i32.load16_u local.tee $0 + i32.load16_u + local.tee $1 i32.const 45 i32.eq if (result i32) - local.get $5 + local.get $4 i32.const 1 i32.sub - local.tee $5 + local.tee $4 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 i32.const -1 - local.set $1 - local.get $8 + local.set $2 + local.get $0 i32.const 2 i32.add - local.tee $8 + local.tee $0 i32.load16_u else - local.get $0 + local.get $1 i32.const 43 i32.eq if (result i32) - local.get $5 + local.get $4 i32.const 1 i32.sub - local.tee $5 + local.tee $4 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 - local.get $8 + local.get $0 i32.const 2 i32.add - local.tee $8 + local.tee $0 i32.load16_u else - local.get $0 + local.get $1 end end - local.set $0 + local.set $1 loop $while-continue|4 - local.get $0 + local.get $1 i32.const 48 i32.eq if - local.get $5 + local.get $4 i32.const 1 i32.sub - local.tee $5 + local.tee $4 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 - local.get $8 + local.get $0 i32.const 2 i32.add - local.tee $8 + local.tee $0 i32.load16_u - local.set $0 + local.set $1 br $while-continue|4 end end - local.get $0 + local.get $1 i32.const 48 i32.sub - local.set $0 + local.set $1 loop $for-loop|5 - local.get $0 + local.get $1 i32.const 10 i32.lt_u i32.const 0 - local.get $5 + local.get $4 select if - local.get $3 + local.get $13 i32.const 3200 i32.ge_s if - local.get $1 + local.get $2 i32.const 3200 i32.mul - local.set $15 + local.set $14 br $~lib/util/string/parseExp|inlined.0 end - local.get $0 - local.get $3 + local.get $1 + local.get $13 i32.const 10 i32.mul i32.add - local.set $3 - local.get $5 + local.set $13 + local.get $4 i32.const 1 i32.sub - local.set $5 - local.get $8 + local.set $4 + local.get $0 i32.const 2 i32.add - local.tee $8 + local.tee $0 i32.load16_u i32.const 48 i32.sub - local.set $0 + local.set $1 br $for-loop|5 end end - local.get $1 - local.get $3 + local.get $2 + local.get $13 i32.mul - local.set $15 + local.set $14 end block $~lib/util/string/scientific|inlined.0 i32.const 1 - local.get $4 - local.get $15 + local.get $3 + local.get $14 i32.add local.tee $0 i32.const -342 i32.lt_s - local.get $6 + local.get $5 i64.eqz select br_if $~lib/util/string/scientific|inlined.0 @@ -3660,12 +3659,12 @@ i32.gt_s if f64.const inf - local.set $11 + local.set $9 br $~lib/util/string/scientific|inlined.0 end - local.get $6 + local.get $5 f64.convert_i64_u - local.set $11 + local.set $9 local.get $0 i32.eqz br_if $~lib/util/string/scientific|inlined.0 @@ -3678,7 +3677,7 @@ i32.gt_s select if - local.get $11 + local.get $9 local.get $0 i32.const 3 i32.shl @@ -3686,11 +3685,11 @@ i32.add f64.load f64.mul - local.set $11 + local.set $9 i32.const 22 local.set $0 end - local.get $6 + local.get $5 i64.const 9007199254740991 i64.le_u if (result i32) @@ -3712,7 +3711,7 @@ i32.const 0 i32.gt_s if - local.get $11 + local.get $9 local.get $0 i32.const 3 i32.shl @@ -3720,10 +3719,10 @@ i32.add f64.load f64.mul - local.set $11 + local.set $9 br $~lib/util/string/scientific|inlined.0 end - local.get $11 + local.get $9 i32.const 0 local.get $0 i32.sub @@ -3738,33 +3737,33 @@ i32.const 0 i32.lt_s if (result f64) - local.get $6 - local.get $6 + local.get $5 + local.get $5 i64.clz - local.tee $9 + local.tee $7 i64.shl - local.set $6 + local.set $5 local.get $0 local.tee $1 i64.extend_i32_s - local.get $9 + local.get $7 i64.sub - local.set $9 + local.set $7 loop $for-loop|6 local.get $1 i32.const -14 i32.le_s if f64.const 0.00004294967296 - local.get $6 + local.get $5 i64.const 6103515625 i64.rem_u - local.get $6 + local.get $5 i64.const 6103515625 i64.div_u - local.tee $12 - i64.clz local.tee $10 + i64.clz + local.tee $8 i64.const 18 i64.sub i64.shl @@ -3772,15 +3771,15 @@ f64.mul f64.nearest i64.trunc_f64_u - local.get $12 local.get $10 + local.get $8 i64.shl i64.add - local.set $6 - local.get $9 - local.get $10 + local.set $5 + local.get $7 + local.get $8 i64.sub - local.set $9 + local.set $7 local.get $1 i32.const 14 i32.add @@ -3788,75 +3787,75 @@ br $for-loop|6 end end - local.get $6 + local.get $5 i32.const 0 local.get $1 i32.sub call $~lib/math/ipow32 i64.extend_i32_s - local.tee $12 + local.tee $10 i64.div_u - local.tee $16 + local.tee $15 i64.clz - local.set $10 - local.get $6 - local.get $12 + local.set $8 + local.get $5 + local.get $10 i64.rem_u f64.convert_i64_u i64.reinterpret_f64 - local.get $10 + local.get $8 i64.const 52 i64.shl i64.add f64.reinterpret_i64 - local.get $12 + local.get $10 f64.convert_i64_u f64.div i64.trunc_f64_u - local.get $16 - local.get $10 + local.get $15 + local.get $8 i64.shl i64.add f64.convert_i64_u - local.get $9 - local.get $10 + local.get $7 + local.get $8 i64.sub i32.wrap_i64 call $~lib/math/NativeMath.scalbn else - local.get $6 - local.get $6 + local.get $5 + local.get $5 i64.ctz - local.tee $9 + local.tee $7 i64.shr_u - local.set $6 - local.get $9 + local.set $5 + local.get $7 local.get $0 - local.tee $3 + local.tee $1 i64.extend_i32_s i64.add global.set $~lib/util/string/__fixmulShift loop $for-loop|7 - local.get $3 + local.get $1 i32.const 13 i32.ge_s if i64.const 32 - local.get $6 + local.get $5 i64.const 32 i64.shr_u i64.const 1220703125 i64.mul - local.get $6 + local.get $5 i64.const 4294967295 i64.and i64.const 1220703125 i64.mul - local.tee $6 + local.tee $5 i64.const 32 i64.shr_u i64.add - local.tee $9 + local.tee $7 i64.const 32 i64.shr_u i32.wrap_i64 @@ -3864,11 +3863,11 @@ local.tee $0 i64.extend_i32_u i64.sub - local.tee $10 + local.tee $8 global.get $~lib/util/string/__fixmulShift i64.add global.set $~lib/util/string/__fixmulShift - local.get $6 + local.get $5 local.get $0 i64.extend_i32_u i64.shl @@ -3876,46 +3875,46 @@ i64.shr_u i64.const 1 i64.and - local.get $9 + local.get $7 local.get $0 i64.extend_i32_u i64.shl - local.get $6 + local.get $5 i64.const 4294967295 i64.and - local.get $10 + local.get $8 i64.shr_u i64.or i64.add - local.set $6 - local.get $3 + local.set $5 + local.get $1 i32.const 13 i32.sub - local.set $3 + local.set $1 br $for-loop|7 end end - local.get $3 + local.get $1 call $~lib/math/ipow32 local.tee $0 i64.extend_i32_u - local.get $6 + local.get $5 i64.const 4294967295 i64.and i64.mul - local.set $9 + local.set $7 i64.const 32 local.get $0 i64.extend_i32_u - local.get $6 + local.get $5 i64.const 32 i64.shr_u i64.mul - local.get $9 + local.get $7 i64.const 32 i64.shr_u i64.add - local.tee $6 + local.tee $5 i64.const 32 i64.shr_u i32.wrap_i64 @@ -3923,11 +3922,11 @@ local.tee $0 i64.extend_i32_u i64.sub - local.tee $10 + local.tee $8 global.get $~lib/util/string/__fixmulShift i64.add global.set $~lib/util/string/__fixmulShift - local.get $9 + local.get $7 local.get $0 i64.extend_i32_u i64.shl @@ -3935,14 +3934,14 @@ i64.shr_u i64.const 1 i64.and - local.get $6 + local.get $5 local.get $0 i64.extend_i32_u i64.shl - local.get $9 + local.get $7 i64.const 4294967295 i64.and - local.get $10 + local.get $8 i64.shr_u i64.or i64.add @@ -3952,10 +3951,10 @@ call $~lib/math/NativeMath.scalbn end end - local.set $11 + local.set $9 end + local.get $9 local.get $11 - local.get $13 f64.copysign return end @@ -6084,8 +6083,6 @@ global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $8 - local.set $1 local.get $9 i32.const 0 local.get $4 @@ -6096,7 +6093,7 @@ i32.add i64.load32_u i64.mul - local.set $3 + local.set $1 local.get $0 local.get $6 i32.const 1 @@ -6109,30 +6106,30 @@ local.set $4 loop $while-continue|6 i32.const 1 - local.get $3 local.get $1 + local.get $8 i64.sub - local.get $1 + local.get $8 local.get $11 i64.add - local.get $3 + local.get $1 i64.sub i64.gt_u - local.get $1 + local.get $8 local.get $11 i64.add - local.get $3 + local.get $1 i64.lt_u select i32.const 0 local.get $5 - local.get $1 + local.get $8 i64.sub local.get $11 i64.ge_u i32.const 0 + local.get $8 local.get $1 - local.get $3 i64.lt_u select select @@ -6141,10 +6138,10 @@ i32.const 1 i32.sub local.set $4 - local.get $1 + local.get $8 local.get $11 i64.add - local.set $1 + local.set $8 br $while-continue|6 end end @@ -13864,15 +13861,15 @@ call $~lib/rt/pure/__release local.get $76 call $~lib/rt/pure/__release - local.get $80 + local.get $77 call $~lib/rt/pure/__release - local.get $81 + local.get $78 call $~lib/rt/pure/__release local.get $79 call $~lib/rt/pure/__release - local.get $78 + local.get $80 call $~lib/rt/pure/__release - local.get $77 + local.get $81 call $~lib/rt/pure/__release local.get $82 call $~lib/rt/pure/__release @@ -14006,10 +14003,10 @@ call $~lib/rt/pure/__release local.get $147 call $~lib/rt/pure/__release - local.get $149 - call $~lib/rt/pure/__release local.get $148 call $~lib/rt/pure/__release + local.get $149 + call $~lib/rt/pure/__release local.get $150 call $~lib/rt/pure/__release local.get $151 diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index af7b33296d..0bd5091a45 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -498,6 +498,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -569,33 +572,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $10 + local.get $12 return end local.get $5 @@ -610,16 +613,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -651,44 +657,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $6 ) (func $~lib/string/String#charCodeAt (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -737,6 +743,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -873,59 +888,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -955,6 +970,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -1017,8 +1046,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -1029,16 +1058,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1056,18 +1085,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -1079,7 +1108,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -1092,23 +1121,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -1122,14 +1151,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -1149,7 +1178,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -1167,24 +1196,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -1192,21 +1221,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -1222,86 +1251,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -1312,6 +1341,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -1451,11 +1481,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -1475,6 +1505,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -1531,66 +1567,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -1603,11 +1639,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -1656,6 +1692,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1729,11 +1773,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1744,10 +1788,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1760,30 +1804,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1794,45 +1838,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1841,6 +1885,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1887,15 +1932,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1909,12 +1954,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1924,6 +1969,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1988,11 +2035,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -2000,11 +2047,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -2268,6 +2315,12 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 @@ -2294,54 +2347,59 @@ call $~lib/string/String#get:length local.set $5 local.get $2 - local.tee $3 + local.tee $6 i32.const 0 - local.tee $4 - local.get $3 - local.get $4 + local.tee $7 + local.get $6 + local.get $7 i32.gt_s select - local.tee $3 + local.tee $8 local.get $5 - local.tee $4 - local.get $3 - local.get $4 + local.tee $9 + local.get $8 + local.get $9 i32.lt_s select - local.set $6 + local.set $10 local.get $1 call $~lib/string/String#get:length - local.set $7 - local.get $7 - local.get $6 + local.set $11 + local.get $11 + local.get $10 i32.add local.get $5 i32.gt_s if i32.const 0 - local.set $3 + local.set $12 local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $12 return end local.get $0 - local.get $6 + local.get $10 local.get $1 i32.const 0 - local.get $7 + local.get $11 call $~lib/util/string/compareImpl i32.eqz - local.set $3 + local.set $13 local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $13 ) (func $~lib/string/String#endsWith (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 @@ -2357,51 +2415,51 @@ return end local.get $2 - local.tee $3 - i32.const 0 local.tee $4 - local.get $3 + i32.const 0 + local.tee $5 local.get $4 + local.get $5 i32.gt_s select - local.tee $3 + local.tee $6 local.get $0 call $~lib/string/String#get:length - local.tee $4 - local.get $3 - local.get $4 + local.tee $7 + local.get $6 + local.get $7 i32.lt_s select local.set $2 local.get $1 call $~lib/string/String#get:length - local.set $5 + local.set $8 local.get $2 - local.get $5 + local.get $8 i32.sub - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.const 0 i32.lt_s if i32.const 0 - local.set $3 + local.set $10 local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $10 return end local.get $0 - local.get $6 + local.get $9 local.get $1 i32.const 0 - local.get $5 + local.get $8 call $~lib/util/string/compareImpl i32.eqz - local.set $3 + local.set $11 local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $11 ) (func $~lib/string/String#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -2409,6 +2467,13 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 @@ -2432,66 +2497,66 @@ i32.eqz if i32.const -1 - local.set $4 + local.set $6 local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $6 return end local.get $2 - local.tee $4 + local.tee $7 i32.const 0 - local.tee $6 - local.get $4 - local.get $6 + local.tee $8 + local.get $7 + local.get $8 i32.gt_s select - local.tee $4 + local.tee $9 local.get $5 - local.tee $6 - local.get $4 - local.get $6 + local.tee $10 + local.get $9 + local.get $10 i32.lt_s select - local.set $7 + local.set $11 local.get $5 local.get $3 i32.sub local.set $5 loop $for-loop|0 - local.get $7 + local.get $11 local.get $5 i32.le_s - local.set $4 - local.get $4 + local.set $12 + local.get $12 if local.get $0 - local.get $7 + local.get $11 local.get $1 i32.const 0 local.get $3 call $~lib/util/string/compareImpl i32.eqz if - local.get $7 - local.set $6 + local.get $11 + local.set $13 local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $13 return end - local.get $7 + local.get $11 i32.const 1 i32.add - local.set $7 + local.set $11 br $for-loop|0 end end i32.const -1 - local.set $4 + local.set $14 local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $14 ) (func $~lib/string/String#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -2514,6 +2579,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -2533,11 +2680,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -2557,8 +2704,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -2667,17 +2814,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -2694,16 +2841,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -2713,45 +2860,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -2762,8 +2909,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -2848,31 +2995,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -2883,8 +3030,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -2969,17 +3116,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -2990,8 +3137,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -3078,227 +3225,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -3307,115 +3454,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -3424,59 +3571,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -3485,31 +3632,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -3518,17 +3665,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -3539,6 +3686,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -3616,11 +3771,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -3630,8 +3785,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -3655,21 +3810,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -3698,8 +3853,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -3724,8 +3879,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -3745,8 +3900,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -3805,6 +3960,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -3857,25 +4014,25 @@ i32.sub local.get $5 i32.div_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 local.get $5 i32.mul - local.set $9 + local.set $10 local.get $7 - local.get $9 + local.get $10 i32.sub - local.set $10 + local.set $11 local.get $8 local.get $2 local.get $5 - local.get $6 + local.get $9 call $~lib/memory/memory.repeat local.get $8 - local.get $9 + local.get $10 i32.add local.get $2 - local.get $10 + local.get $11 call $~lib/memory/memory.copy else local.get $8 @@ -3891,10 +4048,10 @@ call $~lib/memory/memory.copy local.get $8 call $~lib/rt/pure/__retain - local.set $10 + local.set $12 local.get $2 call $~lib/rt/pure/__release - local.get $10 + local.get $12 ) (func $~lib/string/String#padEnd (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -3905,6 +4062,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -3961,29 +4120,29 @@ i32.sub local.get $5 i32.div_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 local.get $5 i32.mul - local.set $9 + local.set $10 local.get $7 - local.get $9 + local.get $10 i32.sub - local.set $10 + local.set $11 local.get $8 local.get $3 i32.add local.get $2 local.get $5 - local.get $6 + local.get $9 call $~lib/memory/memory.repeat local.get $8 local.get $3 i32.add - local.get $9 + local.get $10 i32.add local.get $2 - local.get $10 + local.get $11 call $~lib/memory/memory.copy else local.get $8 @@ -3995,10 +4154,10 @@ end local.get $8 call $~lib/rt/pure/__retain - local.set $10 + local.set $12 local.get $2 call $~lib/rt/pure/__release - local.get $10 + local.get $12 ) (func $~lib/string/String#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -4006,6 +4165,13 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 @@ -4030,69 +4196,72 @@ i32.eqz if i32.const -1 - local.set $4 + local.set $6 local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $6 return end local.get $2 - local.tee $4 + local.tee $7 i32.const 0 - local.tee $6 - local.get $4 - local.get $6 + local.tee $8 + local.get $7 + local.get $8 i32.gt_s select - local.tee $4 + local.tee $9 local.get $5 local.get $3 i32.sub - local.tee $6 - local.get $4 - local.get $6 + local.tee $10 + local.get $9 + local.get $10 i32.lt_s select - local.set $7 + local.set $11 loop $for-loop|0 - local.get $7 + local.get $11 i32.const 0 i32.ge_s - local.set $4 - local.get $4 + local.set $12 + local.get $12 if local.get $0 - local.get $7 + local.get $11 local.get $1 i32.const 0 local.get $3 call $~lib/util/string/compareImpl i32.eqz if - local.get $7 - local.set $6 + local.get $11 + local.set $13 local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $13 return end - local.get $7 + local.get $11 i32.const 1 i32.sub - local.set $7 + local.set $11 br $for-loop|0 end end i32.const -1 - local.set $4 + local.set $14 local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $14 ) (func $~lib/string/String#localeCompare (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 $1 call $~lib/rt/pure/__retain local.set $1 @@ -4123,20 +4292,20 @@ local.get $4 i32.gt_s select - local.set $2 + local.set $5 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $5 return end local.get $4 i32.eqz if i32.const 0 - local.set $2 + local.set $6 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $6 return end local.get $0 @@ -4145,10 +4314,10 @@ i32.const 0 local.get $4 call $~lib/util/string/compareImpl - local.set $2 + local.set $7 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $7 ) (func $~lib/util/string/isSpace (param $0 i32) (result i32) (local $1 i32) @@ -4366,6 +4535,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) local.get $0 call $~lib/string/String#get:length local.set $1 @@ -4411,8 +4581,8 @@ else i32.const 0 end - local.set $3 - local.get $3 + local.set $5 + local.get $5 if local.get $4 i32.const 2 @@ -4451,14 +4621,14 @@ local.get $2 i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 + local.set $6 + local.get $6 local.get $0 local.get $4 i32.add local.get $2 call $~lib/memory/memory.copy - local.get $5 + local.get $6 call $~lib/rt/pure/__retain ) (func $~lib/util/string/strtol (param $0 i32) (param $1 i32) (result f64) @@ -4469,6 +4639,13 @@ (local $6 f64) (local $7 i32) (local $8 f64) + (local $9 f64) + (local $10 i32) + (local $11 f64) + (local $12 f64) + (local $13 i32) + (local $14 i32) + (local $15 f64) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4526,10 +4703,10 @@ i32.const 1 drop f64.const nan:0x8000000000000 - local.set $3 + local.set $8 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $8 return end local.get $4 @@ -4554,10 +4731,10 @@ i32.const 1 drop f64.const nan:0x8000000000000 - local.set $3 + local.set $9 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $9 return end local.get $4 @@ -4593,16 +4770,16 @@ i32.load16_u i32.const 32 i32.or - local.set $7 - local.get $7 + local.set $10 + local.get $10 i32.const 98 i32.eq br_if $case0|1 - local.get $7 + local.get $10 i32.const 111 i32.eq br_if $case1|1 - local.get $7 + local.get $10 i32.const 120 i32.eq br_if $case2|1 @@ -4666,25 +4843,25 @@ i32.const 1 drop f64.const nan:0x8000000000000 - local.set $3 + local.set $11 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $11 return end end f64.const 0 - local.set $8 + local.set $12 block $while-break|2 loop $while-continue|2 local.get $2 - local.tee $7 + local.tee $13 i32.const 1 i32.sub local.set $2 - local.get $7 - local.set $7 - local.get $7 + local.get $13 + local.set $14 + local.get $14 if local.get $4 i32.load16_u @@ -4740,14 +4917,14 @@ if br $while-break|2 end - local.get $8 + local.get $12 local.get $1 f64.convert_i32_s f64.mul local.get $5 f64.convert_i32_u f64.add - local.set $8 + local.set $12 local.get $4 i32.const 2 i32.add @@ -4757,12 +4934,12 @@ end end local.get $6 - local.get $8 + local.get $12 f64.mul - local.set $3 + local.set $15 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $15 ) (func $~lib/string/parseInt (param $0 i32) (param $1 i32) (result f64) (local $2 f64) @@ -4784,6 +4961,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4812,8 +4997,8 @@ loop $while-continue|0 local.get $5 call $~lib/util/string/isSpace - local.set $3 - local.get $3 + local.set $7 + local.get $7 if local.get $4 i32.const 2 @@ -4841,10 +5026,10 @@ i32.const 0 drop i32.const 0 - local.set $3 + local.set $8 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $8 return end local.get $4 @@ -4869,10 +5054,10 @@ i32.const 0 drop i32.const 0 - local.set $3 + local.set $9 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $9 return end local.get $4 @@ -4908,16 +5093,16 @@ i32.load16_u i32.const 32 i32.or - local.set $3 - local.get $3 + local.set $10 + local.get $10 i32.const 98 i32.eq br_if $case0|1 - local.get $3 + local.get $10 i32.const 111 i32.eq br_if $case1|1 - local.get $3 + local.get $10 i32.const 120 i32.eq br_if $case2|1 @@ -4981,25 +5166,25 @@ i32.const 0 drop i32.const 0 - local.set $3 + local.set $11 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $11 return end end i32.const 0 - local.set $7 + local.set $12 block $while-break|2 loop $while-continue|2 local.get $2 - local.tee $3 + local.tee $13 i32.const 1 i32.sub local.set $2 - local.get $3 - local.set $3 - local.get $3 + local.get $13 + local.set $14 + local.get $14 if local.get $4 i32.load16_u @@ -5055,12 +5240,12 @@ if br $while-break|2 end - local.get $7 + local.get $12 local.get $1 i32.mul local.get $5 i32.add - local.set $7 + local.set $12 local.get $4 i32.const 2 i32.add @@ -5070,12 +5255,12 @@ end end local.get $6 - local.get $7 + local.get $12 i32.mul - local.set $3 + local.set $15 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $15 ) (func $~lib/number/I32.parseInt (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -5098,6 +5283,13 @@ (local $6 i64) (local $7 i32) (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i32) + (local $14 i32) + (local $15 i64) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -5155,10 +5347,10 @@ i32.const 0 drop i64.const 0 - local.set $3 + local.set $8 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $8 return end local.get $4 @@ -5183,10 +5375,10 @@ i32.const 0 drop i64.const 0 - local.set $3 + local.set $9 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $9 return end local.get $4 @@ -5222,16 +5414,16 @@ i32.load16_u i32.const 32 i32.or - local.set $7 - local.get $7 + local.set $10 + local.get $10 i32.const 98 i32.eq br_if $case0|1 - local.get $7 + local.get $10 i32.const 111 i32.eq br_if $case1|1 - local.get $7 + local.get $10 i32.const 120 i32.eq br_if $case2|1 @@ -5295,25 +5487,25 @@ i32.const 0 drop i64.const 0 - local.set $3 + local.set $11 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $11 return end end i64.const 0 - local.set $8 + local.set $12 block $while-break|2 loop $while-continue|2 local.get $2 - local.tee $7 + local.tee $13 i32.const 1 i32.sub local.set $2 - local.get $7 - local.set $7 - local.get $7 + local.get $13 + local.set $14 + local.get $14 if local.get $4 i32.load16_u @@ -5369,14 +5561,14 @@ if br $while-break|2 end - local.get $8 + local.get $12 local.get $1 i64.extend_i32_s i64.mul local.get $5 i64.extend_i32_u i64.add - local.set $8 + local.set $12 local.get $4 i32.const 2 i32.add @@ -5386,12 +5578,12 @@ end end local.get $6 - local.get $8 + local.get $12 i64.mul - local.set $3 + local.set $15 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $15 ) (func $~lib/number/I64.parseInt (param $0 i32) (param $1 i32) (result i64) (local $2 i64) @@ -5410,6 +5602,8 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) i32.const 1 local.set $2 i32.const 0 @@ -5458,8 +5652,8 @@ local.get $1 i32.clz i32.sub - local.set $3 - local.get $3 + local.set $4 + local.get $4 i32.const 5 i32.le_s if @@ -5469,25 +5663,25 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $3 - local.set $4 local.get $4 + local.set $5 + local.get $5 i32.const 5 i32.eq br_if $case0|1 - local.get $4 + local.get $5 i32.const 4 i32.eq br_if $case1|1 - local.get $4 + local.get $5 i32.const 3 i32.eq br_if $case2|1 - local.get $4 + local.get $5 i32.const 2 i32.eq br_if $case3|1 - local.get $4 + local.get $5 i32.const 1 i32.eq br_if $case4|1 @@ -5582,8 +5776,8 @@ local.get $1 i32.const 0 i32.gt_s - local.set $3 - local.get $3 + local.set $6 + local.get $6 if local.get $1 i32.const 1 @@ -5611,6 +5805,8 @@ (local $2 f64) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 local.set $2 local.get $1 @@ -5677,11 +5873,11 @@ i32.add i32.const 53 i32.sub - local.tee $3 + local.tee $5 i32.const -1022 - local.tee $4 - local.get $3 - local.get $4 + local.tee $6 + local.get $5 + local.get $6 i32.gt_s select local.set $1 @@ -5705,24 +5901,74 @@ (local $4 i32) (local $5 f64) (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i64) - (local $12 i32) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 f64) (local $13 i32) (local $14 i32) - (local $15 i32) + (local $15 f64) (local $16 i32) (local $17 i32) - (local $18 i64) + (local $18 i32) (local $19 i64) - (local $20 i64) - (local $21 i64) - (local $22 i64) - (local $23 i64) - (local $24 i64) + (local $20 i32) + (local $21 f64) + (local $22 i32) + (local $23 f64) + (local $24 f64) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i64) + (local $39 f64) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i64) + (local $47 i64) + (local $48 i32) + (local $49 i64) + (local $50 i64) + (local $51 i64) + (local $52 i64) + (local $53 i64) + (local $54 i64) + (local $55 i64) + (local $56 i32) + (local $57 i64) + (local $58 i64) + (local $59 i32) + (local $60 i32) + (local $61 i64) + (local $62 i64) + (local $63 i64) + (local $64 i32) + (local $65 i32) + (local $66 i64) + (local $67 i32) + (local $68 i64) + (local $69 i64) + (local $70 i64) + (local $71 i32) + (local $72 i32) + (local $73 i64) + (local $74 f64) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -5774,10 +6020,10 @@ i32.eqz if f64.const nan:0x8000000000000 - local.set $2 + local.set $7 local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $7 return end local.get $4 @@ -5791,10 +6037,10 @@ i32.eqz if f64.const nan:0x8000000000000 - local.set $2 + local.set $8 local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $8 return end local.get $3 @@ -5817,10 +6063,10 @@ i32.eqz if f64.const nan:0x8000000000000 - local.set $2 + local.set $9 local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $9 return end local.get $3 @@ -5858,17 +6104,17 @@ f64.const inf local.get $5 f64.copysign - local.set $2 + local.set $10 local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $10 return end f64.const nan:0x8000000000000 - local.set $2 + local.set $11 local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $11 return end local.get $4 @@ -5885,20 +6131,20 @@ end if f64.const nan:0x8000000000000 - local.set $2 + local.set $12 local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $12 return end local.get $3 - local.set $7 + local.set $13 loop $while-continue|1 local.get $4 i32.const 48 i32.eq - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 2 @@ -5918,29 +6164,29 @@ i32.le_s if f64.const 0 - local.set $2 + local.set $15 local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $15 return end i32.const 0 - local.set $8 + local.set $16 i32.const 0 - local.set $9 + local.set $17 i32.const 0 - local.set $10 + local.set $18 i64.const 0 - local.set $11 + local.set $19 local.get $4 i32.const 46 i32.eq if - local.get $7 + local.get $13 local.get $3 i32.sub i32.eqz - local.set $6 + local.set $20 local.get $3 i32.const 2 i32.add @@ -5952,37 +6198,37 @@ local.get $1 i32.eqz if (result i32) - local.get $6 + local.get $20 else i32.const 0 end if f64.const nan:0x8000000000000 - local.set $2 + local.set $21 local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $21 return end i32.const 1 - local.set $8 + local.set $16 loop $for-loop|2 local.get $3 i32.load16_u local.tee $4 i32.const 48 i32.eq - local.set $12 - local.get $12 + local.set $22 + local.get $22 if local.get $1 i32.const 1 i32.sub local.set $1 - local.get $10 + local.get $18 i32.const 1 i32.sub - local.set $10 + local.set $18 local.get $3 i32.const 2 i32.add @@ -5995,16 +6241,16 @@ i32.le_s if f64.const 0 - local.set $2 + local.set $23 local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $23 return end - local.get $10 + local.get $18 i32.eqz if (result i32) - local.get $6 + local.get $20 else i32.const 0 end @@ -6019,20 +6265,20 @@ end if f64.const nan:0x8000000000000 - local.set $2 + local.set $24 local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $24 return end end local.get $4 i32.const 48 i32.sub - local.set $6 + local.set $25 block $for-break3 loop $for-loop|3 - local.get $6 + local.get $25 i32.const 10 i32.lt_u if (result i32) @@ -6042,47 +6288,47 @@ i32.const 46 i32.eq if (result i32) - local.get $8 + local.get $16 i32.eqz else i32.const 0 end end - local.set $12 - local.get $12 + local.set $26 + local.get $26 if - local.get $6 + local.get $25 i32.const 10 i32.lt_u if - local.get $9 + local.get $17 i32.const 19 i32.lt_s if (result i64) i64.const 10 - local.get $11 + local.get $19 i64.mul - local.get $6 + local.get $25 i64.extend_i32_u i64.add else - local.get $11 - local.get $6 + local.get $19 + local.get $25 i32.eqz i32.eqz i64.extend_i32_u i64.or end - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 i32.add - local.set $9 + local.set $17 else - local.get $9 - local.set $10 + local.get $17 + local.set $18 i32.const 1 - local.set $8 + local.set $16 end local.get $1 i32.const 1 @@ -6101,43 +6347,43 @@ local.get $4 i32.const 48 i32.sub - local.set $6 + local.set $25 br $for-loop|3 end end end - local.get $8 + local.get $16 i32.eqz if - local.get $9 - local.set $10 + local.get $17 + local.set $18 end block $~lib/util/string/scientific|inlined.0 (result f64) - local.get $11 - local.set $18 - local.get $10 + local.get $19 + local.set $38 + local.get $18 i32.const 19 - local.tee $6 - local.get $9 - local.tee $12 - local.get $6 - local.get $12 + local.tee $27 + local.get $17 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select i32.sub block $~lib/util/string/parseExp|inlined.0 (result i32) local.get $3 - local.set $6 + local.set $30 local.get $1 - local.set $12 + local.set $29 i32.const 1 - local.set $13 + local.set $31 i32.const 0 - local.set $14 - local.get $6 + local.set $32 + local.get $30 i32.load16_u - local.set $15 - local.get $15 + local.set $33 + local.get $33 i32.const 32 i32.or i32.const 101 @@ -6146,142 +6392,142 @@ i32.const 0 br $~lib/util/string/parseExp|inlined.0 end - local.get $6 + local.get $30 i32.const 2 i32.add - local.tee $6 + local.tee $30 i32.load16_u - local.set $15 - local.get $15 + local.set $33 + local.get $33 i32.const 45 i32.eq if - local.get $12 + local.get $29 i32.const 1 i32.sub - local.tee $12 + local.tee $29 i32.eqz if i32.const 0 br $~lib/util/string/parseExp|inlined.0 end - local.get $6 + local.get $30 i32.const 2 i32.add - local.tee $6 + local.tee $30 i32.load16_u - local.set $15 + local.set $33 i32.const -1 - local.set $13 + local.set $31 else - local.get $15 + local.get $33 i32.const 43 i32.eq if - local.get $12 + local.get $29 i32.const 1 i32.sub - local.tee $12 + local.tee $29 i32.eqz if i32.const 0 br $~lib/util/string/parseExp|inlined.0 end - local.get $6 + local.get $30 i32.const 2 i32.add - local.tee $6 + local.tee $30 i32.load16_u - local.set $15 + local.set $33 end end loop $while-continue|4 - local.get $15 + local.get $33 i32.const 48 i32.eq - local.set $16 - local.get $16 + local.set $34 + local.get $34 if - local.get $12 + local.get $29 i32.const 1 i32.sub - local.tee $12 + local.tee $29 i32.eqz if i32.const 0 br $~lib/util/string/parseExp|inlined.0 end - local.get $6 + local.get $30 i32.const 2 i32.add - local.tee $6 + local.tee $30 i32.load16_u - local.set $15 + local.set $33 br $while-continue|4 end end - local.get $15 + local.get $33 i32.const 48 i32.sub - local.set $16 + local.set $35 loop $for-loop|5 - local.get $12 + local.get $29 if (result i32) - local.get $16 + local.get $35 i32.const 10 i32.lt_u else i32.const 0 end - local.set $17 - local.get $17 + local.set $36 + local.get $36 if - local.get $14 + local.get $32 i32.const 3200 i32.ge_s if - local.get $13 + local.get $31 i32.const 3200 i32.mul br $~lib/util/string/parseExp|inlined.0 end i32.const 10 - local.get $14 + local.get $32 i32.mul - local.get $16 + local.get $35 i32.add - local.set $14 - local.get $6 + local.set $32 + local.get $30 i32.const 2 i32.add - local.tee $6 + local.tee $30 i32.load16_u - local.set $15 - local.get $12 + local.set $33 + local.get $29 i32.const 1 i32.sub - local.set $12 - local.get $15 + local.set $29 + local.get $33 i32.const 48 i32.sub - local.set $16 + local.set $35 br $for-loop|5 end end - local.get $13 - local.get $14 + local.get $31 + local.get $32 i32.mul end i32.add - local.set $17 - local.get $18 + local.set $37 + local.get $38 i64.const 0 i64.ne i32.eqz if (result i32) i32.const 1 else - local.get $17 + local.get $37 i32.const -342 i32.lt_s end @@ -6289,27 +6535,27 @@ f64.const 0 br $~lib/util/string/scientific|inlined.0 end - local.get $17 + local.get $37 i32.const 308 i32.gt_s if f64.const inf br $~lib/util/string/scientific|inlined.0 end - local.get $18 + local.get $38 f64.convert_i64_u - local.set $2 - local.get $17 + local.set $39 + local.get $37 i32.eqz if - local.get $2 + local.get $39 br $~lib/util/string/scientific|inlined.0 end - local.get $17 + local.get $37 i32.const 22 i32.gt_s if (result i32) - local.get $17 + local.get $37 i32.const 22 i32.const 15 i32.add @@ -6318,34 +6564,34 @@ i32.const 0 end if - local.get $2 - local.get $17 + local.get $39 + local.get $37 i32.const 22 i32.sub - local.set $16 + local.set $40 i32.const 1992 - local.get $16 + local.get $40 i32.const 3 i32.shl i32.add f64.load f64.mul - local.set $2 + local.set $39 i32.const 22 - local.set $17 + local.set $37 end - local.get $18 + local.get $38 i64.const 9007199254740991 i64.le_u if (result i32) - local.get $17 - local.tee $16 + local.get $37 + local.tee $41 i32.const 31 i32.shr_s - local.tee $15 - local.get $16 + local.tee $42 + local.get $41 i32.add - local.get $15 + local.get $42 i32.xor i32.const 22 i32.le_s @@ -6353,15 +6599,15 @@ i32.const 0 end if - local.get $17 + local.get $37 i32.const 0 i32.gt_s if - local.get $2 - local.get $17 - local.set $12 + local.get $39 + local.get $37 + local.set $43 i32.const 1992 - local.get $12 + local.get $43 i32.const 3 i32.shl i32.add @@ -6369,13 +6615,13 @@ f64.mul br $~lib/util/string/scientific|inlined.0 end - local.get $2 + local.get $39 i32.const 0 - local.get $17 + local.get $37 i32.sub - local.set $6 + local.set $44 i32.const 1992 - local.get $6 + local.get $44 i32.const 3 i32.shl i32.add @@ -6383,50 +6629,50 @@ f64.div br $~lib/util/string/scientific|inlined.0 else - local.get $17 + local.get $37 i32.const 0 i32.lt_s if - local.get $18 - local.set $19 - local.get $17 - local.set $13 - local.get $19 + local.get $38 + local.set $46 + local.get $37 + local.set $45 + local.get $46 i64.clz - local.set $20 - local.get $19 - local.get $20 + local.set $47 + local.get $46 + local.get $47 i64.shl - local.set $19 - local.get $13 + local.set $46 + local.get $45 i64.extend_i32_s - local.get $20 + local.get $47 i64.sub - local.set $20 + local.set $47 loop $for-loop|6 - local.get $13 + local.get $45 i32.const -14 i32.le_s - local.set $6 - local.get $6 + local.set $48 + local.get $48 if - local.get $19 + local.get $46 i64.const 6103515625 i64.div_u - local.set $21 - local.get $19 + local.set $49 + local.get $46 i64.const 6103515625 i64.rem_u - local.set $22 - local.get $21 + local.set $50 + local.get $49 i64.clz - local.set $23 - local.get $21 - local.get $23 + local.set $51 + local.get $49 + local.get $51 i64.shl f64.const 0.00004294967296 - local.get $22 - local.get $23 + local.get $50 + local.get $51 i64.const 18 i64.sub i64.shl @@ -6435,140 +6681,140 @@ f64.nearest i64.trunc_f64_u i64.add - local.set $19 - local.get $20 - local.get $23 + local.set $46 + local.get $47 + local.get $51 i64.sub - local.set $20 - local.get $13 + local.set $47 + local.get $45 i32.const 14 i32.add - local.set $13 + local.set $45 br $for-loop|6 end end i32.const 5 i32.const 0 - local.get $13 + local.get $45 i32.sub call $~lib/math/ipow32 i64.extend_i32_s - local.set $23 - local.get $19 - local.get $23 + local.set $52 + local.get $46 + local.get $52 i64.div_u - local.set $22 - local.get $19 - local.get $23 + local.set $53 + local.get $46 + local.get $52 i64.rem_u - local.set $21 - local.get $22 + local.set $54 + local.get $53 i64.clz - local.set $24 - local.get $22 - local.get $24 + local.set $55 + local.get $53 + local.get $55 i64.shl - local.get $21 + local.get $54 f64.convert_i64_u i64.reinterpret_f64 - local.get $24 + local.get $55 i64.const 52 i64.shl i64.add f64.reinterpret_i64 - local.get $23 + local.get $52 f64.convert_i64_u f64.div i64.trunc_f64_u i64.add - local.set $19 - local.get $20 - local.get $24 + local.set $46 + local.get $47 + local.get $55 i64.sub - local.set $20 - local.get $19 + local.set $47 + local.get $46 f64.convert_i64_u - local.get $20 + local.get $47 i32.wrap_i64 call $~lib/math/NativeMath.scalbn br $~lib/util/string/scientific|inlined.0 else - local.get $18 - local.set $19 - local.get $17 - local.set $14 - local.get $19 + local.get $38 + local.set $57 + local.get $37 + local.set $56 + local.get $57 i64.ctz - local.set $24 - local.get $19 - local.get $24 + local.set $58 + local.get $57 + local.get $58 i64.shr_u - local.set $19 - local.get $24 - local.get $14 + local.set $57 + local.get $58 + local.get $56 i64.extend_i32_s i64.add - local.set $24 - local.get $24 + local.set $58 + local.get $58 global.set $~lib/util/string/__fixmulShift loop $for-loop|7 - local.get $14 + local.get $56 i32.const 13 i32.ge_s - local.set $13 - local.get $13 + local.set $59 + local.get $59 if - local.get $19 - local.set $20 + local.get $57 + local.set $61 i32.const 1220703125 - local.set $15 - local.get $20 + local.set $60 + local.get $61 i64.const 4294967295 i64.and - local.get $15 + local.get $60 i64.extend_i32_u i64.mul - local.set $21 - local.get $20 + local.set $62 + local.get $61 i64.const 32 i64.shr_u - local.get $15 + local.get $60 i64.extend_i32_u i64.mul - local.get $21 + local.get $62 i64.const 32 i64.shr_u i64.add - local.set $22 - local.get $22 + local.set $63 + local.get $63 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $6 - local.get $6 + local.set $64 + local.get $64 i32.clz - local.set $12 + local.set $65 i64.const 32 - local.get $12 + local.get $65 i64.extend_i32_u i64.sub - local.set $23 + local.set $66 global.get $~lib/util/string/__fixmulShift - local.get $23 + local.get $66 i64.add global.set $~lib/util/string/__fixmulShift - local.get $22 - local.get $12 + local.get $63 + local.get $65 i64.extend_i32_u i64.shl - local.get $21 + local.get $62 i64.const 4294967295 i64.and - local.get $23 + local.get $66 i64.shr_u i64.or - local.get $21 - local.get $12 + local.get $62 + local.get $65 i64.extend_i32_u i64.shl i64.const 31 @@ -6576,67 +6822,67 @@ i64.const 1 i64.and i64.add - local.set $19 - local.get $14 + local.set $57 + local.get $56 i32.const 13 i32.sub - local.set $14 + local.set $56 br $for-loop|7 end end - local.get $19 - local.set $20 + local.get $57 + local.set $68 i32.const 5 - local.get $14 + local.get $56 call $~lib/math/ipow32 - local.set $16 - local.get $20 + local.set $67 + local.get $68 i64.const 4294967295 i64.and - local.get $16 + local.get $67 i64.extend_i32_u i64.mul - local.set $23 - local.get $20 + local.set $69 + local.get $68 i64.const 32 i64.shr_u - local.get $16 + local.get $67 i64.extend_i32_u i64.mul - local.get $23 + local.get $69 i64.const 32 i64.shr_u i64.add - local.set $22 - local.get $22 + local.set $70 + local.get $70 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $13 - local.get $13 + local.set $71 + local.get $71 i32.clz - local.set $12 + local.set $72 i64.const 32 - local.get $12 + local.get $72 i64.extend_i32_u i64.sub - local.set $21 + local.set $73 global.get $~lib/util/string/__fixmulShift - local.get $21 + local.get $73 i64.add global.set $~lib/util/string/__fixmulShift - local.get $22 - local.get $12 + local.get $70 + local.get $72 i64.extend_i32_u i64.shl - local.get $23 + local.get $69 i64.const 4294967295 i64.and - local.get $21 + local.get $73 i64.shr_u i64.or - local.get $23 - local.get $12 + local.get $69 + local.get $72 i64.extend_i32_u i64.shl i64.const 31 @@ -6644,12 +6890,12 @@ i64.const 1 i64.and i64.add - local.set $19 + local.set $57 global.get $~lib/util/string/__fixmulShift - local.set $24 - local.get $19 + local.set $58 + local.get $57 f64.convert_i64_u - local.get $24 + local.get $58 i32.wrap_i64 call $~lib/math/NativeMath.scalbn br $~lib/util/string/scientific|inlined.0 @@ -6660,10 +6906,10 @@ end local.get $5 f64.copysign - local.set $2 + local.set $74 local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $74 ) (func $~lib/string/parseFloat (param $0 i32) (result f64) (local $1 f64) @@ -6684,6 +6930,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 @@ -6726,32 +6974,32 @@ if i32.const 272 call $~lib/rt/pure/__retain - local.set $2 + local.set $7 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $7 return end local.get $6 i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $7 - local.get $7 + local.set $8 + local.get $8 local.get $0 local.get $4 call $~lib/memory/memory.copy - local.get $7 + local.get $8 local.get $4 i32.add local.get $1 local.get $5 call $~lib/memory/memory.copy - local.get $7 - local.set $2 + local.get $8 + local.set $9 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $9 ) (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -6800,6 +7048,10 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -6840,27 +7092,27 @@ i32.eqz if i32.const 0 - local.set $2 + local.set $4 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $4 return end local.get $1 call $~lib/string/String#get:length - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 1 - local.set $2 + local.set $6 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $6 return end local.get $0 @@ -6868,28 +7120,32 @@ local.get $1 i32.const 0 local.get $3 - local.tee $2 - local.get $4 - local.tee $5 - local.get $2 + local.tee $7 local.get $5 + local.tee $8 + local.get $7 + local.get $8 i32.lt_s select call $~lib/util/string/compareImpl i32.const 0 i32.gt_s - local.set $2 + local.set $9 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $9 ) (func $~lib/string/String.__lt (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.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -6930,50 +7186,50 @@ i32.eqz if i32.const 0 - local.set $2 + local.set $4 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $4 return end local.get $0 call $~lib/string/String#get:length - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 1 - local.set $2 + local.set $6 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $6 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $4 - local.tee $2 - local.get $3 - local.tee $5 - local.get $2 local.get $5 + local.tee $7 + local.get $3 + local.tee $8 + local.get $7 + local.get $8 i32.lt_s select call $~lib/util/string/compareImpl i32.const 0 i32.lt_s - local.set $2 + local.set $9 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $9 ) (func $~lib/string/String.__gte (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -7091,6 +7347,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 @@ -7141,42 +7399,42 @@ if local.get $2 call $~lib/string/String#get:length - local.set $5 + local.set $7 local.get $3 local.get $4 i32.sub local.set $3 local.get $3 - local.get $5 - i32.add - local.set $7 local.get $7 + i32.add + local.set $8 + local.get $8 if - local.get $7 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $8 + local.set $9 + local.get $9 local.get $0 local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $8 + local.get $9 local.get $6 i32.const 1 i32.shl i32.add local.get $2 - local.get $5 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $8 + local.get $9 local.get $6 - local.get $5 + local.get $7 i32.add i32.const 1 i32.shl @@ -7194,25 +7452,25 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $8 + local.get $9 call $~lib/rt/pure/__retain - local.set $9 + local.set $10 local.get $1 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $9 + local.get $10 return end end local.get $0 call $~lib/rt/pure/__retain - local.set $7 + local.set $11 local.get $1 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $7 + local.get $11 ) (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) (local $1 i32) @@ -7287,6 +7545,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) local.get $2 call $~lib/rt/tlsf/prepareSize local.set $3 @@ -7344,8 +7603,8 @@ i32.xor i32.and i32.add - local.set $5 - local.get $5 + local.set $8 + local.get $8 local.get $3 i32.ge_u if @@ -7356,7 +7615,7 @@ local.get $4 i32.const 3 i32.and - local.get $5 + local.get $8 i32.or i32.store local.get $1 @@ -7375,12 +7634,12 @@ local.get $1 i32.load offset=8 call $~lib/rt/tlsf/allocateBlock - local.set $8 - local.get $8 + local.set $9 + local.get $9 local.get $1 i32.load offset=4 i32.store offset=4 - local.get $8 + local.get $9 i32.const 16 i32.add local.get $1 @@ -7395,13 +7654,13 @@ i32.const 1 drop local.get $1 - local.get $8 + local.get $9 call $~lib/rt/rtrace/onrealloc local.get $0 local.get $1 call $~lib/rt/tlsf/freeBlock end - local.get $8 + local.get $9 ) (func $~lib/rt/tlsf/__realloc (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize @@ -7426,6 +7685,20 @@ (local $13 i32) (local $14 i32) (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 @@ -7476,12 +7749,12 @@ if local.get $0 call $~lib/rt/pure/__retain - local.set $5 + local.set $7 local.get $1 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $7 return end local.get $3 @@ -7495,43 +7768,43 @@ i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 + local.set $8 + local.get $8 local.get $2 local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $6 - local.set $7 + local.set $9 i32.const 0 - local.set $8 + local.set $10 loop $for-loop|0 - local.get $8 + local.get $10 local.get $3 i32.lt_u - local.set $9 - local.get $9 + local.set $11 + local.get $11 if - local.get $5 - local.get $7 - local.tee $10 + local.get $8 + local.get $9 + local.tee $12 i32.const 1 i32.add - local.set $7 - local.get $10 + local.set $9 + local.get $12 i32.const 1 i32.shl i32.add local.get $0 - local.get $8 + local.get $10 i32.const 1 i32.shl i32.add i32.load16_u i32.store16 - local.get $5 - local.get $7 + local.get $8 + local.get $9 i32.const 1 i32.shl i32.add @@ -7540,31 +7813,31 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $7 + local.get $9 local.get $6 i32.add - local.set $7 - local.get $8 + local.set $9 + local.get $10 i32.const 1 i32.add - local.set $8 + local.set $10 br $for-loop|0 end end - local.get $5 + local.get $8 call $~lib/rt/pure/__retain - local.set $8 + local.set $13 local.get $1 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $13 return end i32.const 0 - local.set $11 + local.set $14 i32.const 0 - local.set $12 + local.set $15 local.get $4 local.get $6 i32.eq @@ -7572,28 +7845,28 @@ local.get $3 i32.const 1 i32.shl - local.set $7 - local.get $7 + local.set $16 + local.get $16 i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 + local.set $17 + local.get $17 local.get $0 - local.get $7 + local.get $16 call $~lib/memory/memory.copy loop $while-continue|1 local.get $0 local.get $1 - local.get $11 + local.get $14 call $~lib/string/String#indexOf - local.tee $12 + local.tee $15 i32.const -1 i32.xor - local.set $8 - local.get $8 + local.set $18 + local.get $18 if - local.get $5 - local.get $12 + local.get $17 + local.get $15 i32.const 1 i32.shl i32.add @@ -7602,41 +7875,41 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $12 + local.get $15 local.get $4 i32.add - local.set $11 + local.set $14 br $while-continue|1 end end - local.get $5 + local.get $17 call $~lib/rt/pure/__retain - local.set $8 + local.set $19 local.get $1 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $19 return end i32.const 0 - local.set $13 + local.set $20 i32.const 0 - local.set $14 + local.set $21 local.get $3 - local.set $15 + local.set $22 loop $while-continue|2 local.get $0 local.get $1 - local.get $11 + local.get $14 call $~lib/string/String#indexOf - local.tee $12 + local.tee $15 i32.const -1 i32.xor - local.set $5 - local.get $5 + local.set $23 + local.get $23 if - local.get $13 + local.get $20 i32.eqz if local.get $3 @@ -7644,49 +7917,49 @@ i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $13 + local.set $20 end - local.get $14 - local.get $15 + local.get $21 + local.get $22 i32.gt_u if - local.get $15 + local.get $22 i32.const 1 i32.shl - local.set $7 - local.get $13 - local.get $7 + local.set $24 + local.get $20 + local.get $24 i32.const 1 i32.shl call $~lib/rt/tlsf/__realloc - local.set $13 - local.get $7 - local.set $15 + local.set $20 + local.get $24 + local.set $22 end - local.get $12 - local.get $11 - i32.sub - local.set $7 - local.get $13 + local.get $15 local.get $14 + i32.sub + local.set $25 + local.get $20 + local.get $21 i32.const 1 i32.shl i32.add local.get $0 - local.get $11 + local.get $14 i32.const 1 i32.shl i32.add - local.get $7 + local.get $25 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $14 - local.get $7 + local.get $21 + local.get $25 i32.add - local.set $14 - local.get $13 - local.get $14 + local.set $21 + local.get $20 + local.get $21 i32.const 1 i32.shl i32.add @@ -7695,96 +7968,102 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $14 + local.get $21 local.get $6 i32.add - local.set $14 - local.get $12 + local.set $21 + local.get $15 local.get $4 i32.add - local.set $11 + local.set $14 br $while-continue|2 end end - local.get $14 + local.get $21 if - local.get $14 - local.get $15 + local.get $21 + local.get $22 i32.gt_u if - local.get $15 + local.get $22 i32.const 1 i32.shl - local.set $5 - local.get $13 - local.get $5 + local.set $26 + local.get $20 + local.get $26 i32.const 1 i32.shl call $~lib/rt/tlsf/__realloc - local.set $13 - local.get $5 - local.set $15 + local.set $20 + local.get $26 + local.set $22 end local.get $3 - local.get $11 + local.get $14 i32.sub - local.set $5 - local.get $5 + local.set $27 + local.get $27 if - local.get $13 - local.get $14 + local.get $20 + local.get $21 i32.const 1 i32.shl i32.add local.get $0 - local.get $11 + local.get $14 i32.const 1 i32.shl i32.add - local.get $5 + local.get $27 i32.const 1 i32.shl call $~lib/memory/memory.copy end - local.get $5 - local.get $14 + local.get $27 + local.get $21 i32.add - local.set $5 - local.get $15 - local.get $5 + local.set $27 + local.get $22 + local.get $27 i32.gt_u if - local.get $13 - local.get $5 + local.get $20 + local.get $27 i32.const 1 i32.shl call $~lib/rt/tlsf/__realloc - local.set $13 + local.set $20 end - local.get $13 + local.get $20 call $~lib/rt/pure/__retain - local.set $8 + local.set $28 local.get $1 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $28 return end local.get $0 call $~lib/rt/pure/__retain - local.set $5 + local.set $29 local.get $1 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $29 ) (func $~lib/string/String#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) local.get $0 call $~lib/string/String#get:length local.set $3 @@ -7804,11 +8083,11 @@ select else local.get $1 - local.tee $4 + local.tee $6 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $7 + local.get $6 + local.get $7 i32.lt_s select end @@ -7820,20 +8099,20 @@ local.get $2 local.get $3 i32.add - local.tee $4 + local.tee $8 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 + local.tee $9 + local.get $8 + local.get $9 i32.gt_s select else local.get $2 - local.tee $4 + local.tee $10 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $11 + local.get $10 + local.get $11 i32.lt_s select end @@ -7855,8 +8134,8 @@ i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $6 - local.get $6 + local.set $12 + local.get $12 local.get $0 local.get $1 i32.const 1 @@ -7866,7 +8145,7 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $6 + local.get $12 call $~lib/rt/pure/__retain ) (func $~lib/string/String#substr (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -7877,6 +8156,10 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $1 local.set $3 local.get $2 @@ -7901,26 +8184,26 @@ local.set $3 end local.get $4 - local.tee $6 + local.tee $8 i32.const 0 - local.tee $7 - local.get $6 - local.get $7 + local.tee $9 + local.get $8 + local.get $9 i32.gt_s select - local.tee $6 + local.tee $10 local.get $5 local.get $3 i32.sub - local.tee $7 - local.get $6 - local.get $7 + local.tee $11 + local.get $10 + local.get $11 i32.lt_s select i32.const 1 i32.shl - local.set $8 - local.get $8 + local.set $12 + local.get $12 i32.const 0 i32.le_s if @@ -7928,19 +8211,19 @@ call $~lib/rt/pure/__retain return end - local.get $8 + local.get $12 i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $9 - local.get $9 + local.set $13 + local.get $13 local.get $0 local.get $3 i32.const 1 i32.shl i32.add - local.get $8 + local.get $12 call $~lib/memory/memory.copy - local.get $9 + local.get $13 call $~lib/rt/pure/__retain ) (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -7953,6 +8236,16 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) local.get $0 call $~lib/string/String#get:length local.set $3 @@ -7964,67 +8257,67 @@ local.get $5 i32.gt_s select - local.tee $4 + local.tee $6 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $7 + local.get $6 + local.get $7 i32.lt_s select - local.set $6 + local.set $8 local.get $2 - local.tee $4 + local.tee $9 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 + local.tee $10 + local.get $9 + local.get $10 i32.gt_s select - local.tee $4 + local.tee $11 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $12 + local.get $11 + local.get $12 i32.lt_s select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 + local.set $13 + local.get $8 + local.tee $14 + local.get $13 + local.tee $15 + local.get $14 + local.get $15 i32.lt_s select i32.const 1 i32.shl - local.set $8 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 + local.set $16 + local.get $8 + local.tee $17 + local.get $13 + local.tee $18 + local.get $17 + local.get $18 i32.gt_s select i32.const 1 i32.shl - local.set $9 - local.get $9 - local.get $8 + local.set $19 + local.get $19 + local.get $16 i32.sub - local.set $10 - local.get $10 + local.set $20 + local.get $20 i32.eqz if i32.const 272 call $~lib/rt/pure/__retain return end - local.get $8 + local.get $16 i32.eqz if (result i32) - local.get $9 + local.get $19 local.get $3 i32.const 1 i32.shl @@ -8037,17 +8330,17 @@ call $~lib/rt/pure/__retain return end - local.get $10 + local.get $20 i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $11 - local.get $11 + local.set $21 + local.get $21 local.get $0 - local.get $8 + local.get $16 i32.add - local.get $10 + local.get $20 call $~lib/memory/memory.copy - local.get $11 + local.get $21 call $~lib/rt/pure/__retain ) (func $~lib/rt/__allocBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -8423,6 +8716,23 @@ (local $12 i32) (local $13 i32) (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 @@ -8451,27 +8761,27 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $3 - local.get $3 - i32.load offset=4 local.set $4 local.get $4 + i32.load offset=4 + local.set $5 + local.get $5 local.get $0 call $~lib/rt/pure/__retain i32.store - local.get $3 - local.set $4 + local.get $4 + local.set $6 local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $6 return end local.get $0 call $~lib/string/String#get:length - local.set $5 + local.set $7 local.get $1 call $~lib/string/String#get:length - local.set $6 + local.set $8 local.get $2 i32.const 0 i32.lt_s @@ -8479,10 +8789,10 @@ global.get $~lib/builtins/i32.MAX_VALUE local.set $2 end - local.get $6 + local.get $8 i32.eqz if - local.get $5 + local.get $7 i32.eqz if i32.const 0 @@ -8491,79 +8801,79 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $4 + local.set $9 local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $9 return end - local.get $5 - local.tee $4 + local.get $7 + local.tee $10 local.get $2 - local.tee $3 - local.get $4 - local.get $3 + local.tee $11 + local.get $10 + local.get $11 i32.lt_s select - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 2 i32.const 3 i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $4 - local.get $4 + local.set $12 + local.get $12 i32.load offset=4 - local.set $3 + local.set $13 i32.const 0 - local.set $7 + local.set $14 loop $for-loop|0 + local.get $14 local.get $7 - local.get $5 i32.lt_s - local.set $8 - local.get $8 + local.set $15 + local.get $15 if i32.const 2 i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $9 - local.get $9 + local.set $16 + local.get $16 local.get $0 - local.get $7 + local.get $14 i32.const 1 i32.shl i32.add i32.load16_u i32.store16 - local.get $3 - local.get $7 + local.get $13 + local.get $14 i32.const 2 i32.shl i32.add - local.get $9 + local.get $16 i32.store i32.const 1 drop - local.get $9 + local.get $16 call $~lib/rt/pure/__retain drop - local.get $7 + local.get $14 i32.const 1 i32.add - local.set $7 + local.set $14 br $for-loop|0 end end - local.get $4 - local.set $7 + local.get $12 + local.set $17 local.get $1 call $~lib/rt/pure/__release - local.get $7 + local.get $17 return else - local.get $5 + local.get $7 i32.eqz if i32.const 1 @@ -8572,16 +8882,16 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $3 - local.get $3 + local.set $18 + local.get $18 i32.load offset=4 i32.const 272 i32.store - local.get $3 - local.set $4 + local.get $18 + local.set $19 local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $19 return end end @@ -8591,132 +8901,132 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $10 + local.set $20 i32.const 0 - local.set $11 + local.set $21 i32.const 0 - local.set $12 + local.set $22 i32.const 0 - local.set $13 + local.set $23 loop $while-continue|1 local.get $0 local.get $1 - local.get $12 + local.get $22 call $~lib/string/String#indexOf - local.tee $11 + local.tee $21 i32.const -1 i32.xor - local.set $3 - local.get $3 + local.set $24 + local.get $24 if - local.get $11 - local.get $12 + local.get $21 + local.get $22 i32.sub - local.set $4 - local.get $4 + local.set $25 + local.get $25 i32.const 0 i32.gt_s if - local.get $4 + local.get $25 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 + local.set $26 + local.get $26 local.get $0 - local.get $12 + local.get $22 i32.const 1 i32.shl i32.add - local.get $4 + local.get $25 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $10 - local.get $7 + local.get $20 + local.get $26 call $~lib/array/Array<~lib/string/String>#push drop else - local.get $10 + local.get $20 i32.const 272 call $~lib/array/Array<~lib/string/String>#push drop end - local.get $13 + local.get $23 i32.const 1 i32.add - local.tee $13 + local.tee $23 local.get $2 i32.eq if - local.get $10 - local.set $7 + local.get $20 + local.set $27 local.get $1 call $~lib/rt/pure/__release - local.get $7 + local.get $27 return end - local.get $11 - local.get $6 + local.get $21 + local.get $8 i32.add - local.set $12 + local.set $22 br $while-continue|1 end end - local.get $12 + local.get $22 i32.eqz if - local.get $10 + local.get $20 local.get $0 call $~lib/array/Array<~lib/string/String>#push drop - local.get $10 - local.set $3 + local.get $20 + local.set $28 local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $28 return end - local.get $5 - local.get $12 + local.get $7 + local.get $22 i32.sub - local.set $14 - local.get $14 + local.set $29 + local.get $29 i32.const 0 i32.gt_s if - local.get $14 + local.get $29 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $3 - local.get $3 + local.set $30 + local.get $30 local.get $0 - local.get $12 + local.get $22 i32.const 1 i32.shl i32.add - local.get $14 + local.get $29 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $10 - local.get $3 + local.get $20 + local.get $30 call $~lib/array/Array<~lib/string/String>#push drop else - local.get $10 + local.get $20 i32.const 272 call $~lib/array/Array<~lib/string/String>#push drop end - local.get $10 - local.set $3 + local.get $20 + local.set $31 local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $31 ) (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) local.get $0 @@ -8834,6 +9144,9 @@ (local $9 i64) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) loop $while-continue|0 local.get $1 i32.const 10000 @@ -8898,30 +9211,30 @@ local.get $1 i32.const 100 i32.div_u - local.set $3 + local.set $10 local.get $1 i32.const 100 i32.rem_u - local.set $10 - local.get $3 + local.set $11 + local.get $10 local.set $1 local.get $2 i32.const 2 i32.sub local.set $2 i32.const 12524 - local.get $10 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $12 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $12 i32.store end local.get $1 @@ -8938,13 +9251,13 @@ i32.shl i32.add i32.load - local.set $11 + local.set $13 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $13 i32.store else local.get $2 @@ -8954,13 +9267,13 @@ i32.const 48 local.get $1 i32.add - local.set $11 + local.set $14 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $14 i32.store16 end ) @@ -9249,7 +9562,10 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i64) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) local.get $0 i64.const 0 i64.ne @@ -9292,26 +9608,26 @@ else local.get $0 call $~lib/util/number/decimalCount64High - local.set $3 - local.get $3 + local.set $7 + local.get $7 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc local.set $1 local.get $1 - local.set $5 + local.set $10 local.get $0 - local.set $7 - local.get $3 - local.set $4 + local.set $9 + local.get $7 + local.set $8 i32.const 0 i32.const 1 i32.ge_s drop - local.get $5 - local.get $7 - local.get $4 + local.get $10 + local.get $9 + local.get $8 call $~lib/util/number/utoa64_lut end local.get $1 @@ -9325,7 +9641,10 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i64) + (local $8 i32) + (local $9 i32) + (local $10 i64) + (local $11 i32) local.get $0 i64.const 0 i64.ne @@ -9384,26 +9703,26 @@ call $~lib/util/number/decimalCount64High local.get $1 i32.add - local.set $4 - local.get $4 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc local.set $2 local.get $2 - local.set $6 + local.set $11 local.get $0 - local.set $8 - local.get $4 - local.set $5 + local.set $10 + local.get $8 + local.set $9 i32.const 0 i32.const 1 i32.ge_s drop - local.get $6 - local.get $8 - local.get $5 + local.get $11 + local.get $10 + local.get $9 call $~lib/util/number/utoa64_lut end local.get $1 @@ -9428,16 +9747,31 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (local $19 i64) + (local $19 i32) (local $20 i64) (local $21 i64) (local $22 i64) (local $23 i64) - (local $24 i32) + (local $24 i64) (local $25 i32) (local $26 i32) (local $27 i32) - (local $28 i64) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i64) + (local $33 i32) + (local $34 i64) + (local $35 i64) + (local $36 i64) + (local $37 i64) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) i32.const 0 local.get $4 i32.sub @@ -9641,11 +9975,11 @@ if local.get $0 local.get $15 - local.tee $18 + local.tee $19 i32.const 1 i32.add local.set $15 - local.get $18 + local.get $19 i32.const 1 i32.shl i32.add @@ -9667,8 +10001,8 @@ i64.shl local.get $13 i64.add - local.set $19 - local.get $19 + local.set $20 + local.get $20 local.get $5 i64.le_u if @@ -9677,13 +10011,13 @@ i32.add global.set $~lib/util/number/_K local.get $0 - local.set $24 + local.set $26 local.get $15 - local.set $18 + local.set $25 local.get $5 + local.set $24 + local.get $20 local.set $23 - local.get $19 - local.set $22 i32.const 15592 local.get $14 i32.const 2 @@ -9693,71 +10027,71 @@ local.get $7 i64.extend_i32_s i64.shl - local.set $21 + local.set $22 local.get $10 - local.set $20 - local.get $24 - local.get $18 + local.set $21 + local.get $26 + local.get $25 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $25 - local.get $25 + local.set $27 + local.get $27 i32.load16_u - local.set $26 + local.set $28 loop $while-continue|3 - local.get $22 - local.get $20 + local.get $23 + local.get $21 i64.lt_u if (result i32) + local.get $24 local.get $23 - local.get $22 i64.sub - local.get $21 + local.get $22 i64.ge_u else i32.const 0 end if (result i32) + local.get $23 local.get $22 - local.get $21 i64.add - local.get $20 + local.get $21 i64.lt_u if (result i32) i32.const 1 else - local.get $20 - local.get $22 + local.get $21 + local.get $23 i64.sub + local.get $23 local.get $22 - local.get $21 i64.add - local.get $20 + local.get $21 i64.sub i64.gt_u end else i32.const 0 end - local.set $27 - local.get $27 + local.set $30 + local.get $30 if - local.get $26 + local.get $28 i32.const 1 i32.sub - local.set $26 + local.set $28 + local.get $23 local.get $22 - local.get $21 i64.add - local.set $22 + local.set $23 br $while-continue|3 end end - local.get $25 - local.get $26 + local.get $27 + local.get $28 i32.store16 local.get $15 return @@ -9767,8 +10101,8 @@ end loop $while-continue|4 i32.const 1 - local.set $16 - local.get $16 + local.set $31 + local.get $31 if local.get $13 i64.const 10 @@ -9782,8 +10116,8 @@ local.get $7 i64.extend_i32_s i64.shr_u - local.set $23 - local.get $23 + local.set $32 + local.get $32 local.get $15 i64.extend_i32_s i64.or @@ -9792,16 +10126,16 @@ if local.get $0 local.get $15 - local.tee $26 + local.tee $33 i32.const 1 i32.add local.set $15 - local.get $26 + local.get $33 i32.const 1 i32.shl i32.add i32.const 48 - local.get $23 + local.get $32 i32.wrap_i64 i32.const 65535 i32.and @@ -9836,79 +10170,79 @@ i64.mul local.set $10 local.get $0 - local.set $18 + local.set $39 local.get $15 - local.set $27 + local.set $38 local.get $5 - local.set $28 + local.set $37 local.get $13 - local.set $22 + local.set $36 local.get $8 - local.set $21 + local.set $35 local.get $10 - local.set $20 - local.get $18 - local.get $27 + local.set $34 + local.get $39 + local.get $38 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $26 - local.get $26 + local.set $40 + local.get $40 i32.load16_u - local.set $25 + local.set $41 loop $while-continue|6 - local.get $22 - local.get $20 + local.get $36 + local.get $34 i64.lt_u if (result i32) - local.get $28 - local.get $22 + local.get $37 + local.get $36 i64.sub - local.get $21 + local.get $35 i64.ge_u else i32.const 0 end if (result i32) - local.get $22 - local.get $21 + local.get $36 + local.get $35 i64.add - local.get $20 + local.get $34 i64.lt_u if (result i32) i32.const 1 else - local.get $20 - local.get $22 + local.get $34 + local.get $36 i64.sub - local.get $22 - local.get $21 + local.get $36 + local.get $35 i64.add - local.get $20 + local.get $34 i64.sub i64.gt_u end else i32.const 0 end - local.set $24 - local.get $24 + local.set $43 + local.get $43 if - local.get $25 + local.get $41 i32.const 1 i32.sub - local.set $25 - local.get $22 - local.get $21 + local.set $41 + local.get $36 + local.get $35 i64.add - local.set $22 + local.set $36 br $while-continue|6 end end - local.get $26 - local.get $25 + local.get $40 + local.get $41 i32.store16 local.get $15 return @@ -9928,6 +10262,19 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) local.get $2 i32.eqz if @@ -10017,11 +10364,11 @@ i32.const 1 i32.shl i32.add - local.set $4 - local.get $4 + local.set $6 + local.get $6 i32.const 2 i32.add - local.get $4 + local.get $6 i32.const 0 local.get $2 i32.sub @@ -10054,9 +10401,9 @@ i32.const 2 local.get $3 i32.sub - local.set $4 + local.set $7 local.get $0 - local.get $4 + local.get $7 i32.const 1 i32.shl i32.add @@ -10073,30 +10420,30 @@ i32.or i32.store i32.const 2 - local.set $5 + local.set $8 loop $for-loop|1 - local.get $5 - local.get $4 + local.get $8 + local.get $7 i32.lt_s - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $0 - local.get $5 + local.get $8 i32.const 1 i32.shl i32.add i32.const 48 i32.store16 - local.get $5 + local.get $8 i32.const 1 i32.add - local.set $5 + local.set $8 br $for-loop|1 end end local.get $1 - local.get $4 + local.get $7 i32.add return else @@ -10110,48 +10457,48 @@ local.get $0 i32.const 4 i32.add - local.set $5 + local.set $11 local.get $3 i32.const 1 i32.sub - local.set $6 - local.get $6 + local.set $10 + local.get $10 i32.const 0 i32.lt_s - local.set $4 - local.get $4 + local.set $12 + local.get $12 if i32.const 0 - local.get $6 + local.get $10 i32.sub - local.set $6 + local.set $10 end - local.get $6 + local.get $10 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $7 - local.get $5 - local.set $10 - local.get $6 - local.set $9 - local.get $7 - local.set $8 + local.set $13 + local.get $11 + local.set $16 + local.get $10 + local.set $15 + local.get $13 + local.set $14 i32.const 0 i32.const 1 i32.ge_s drop - local.get $10 - local.get $9 - local.get $8 + local.get $16 + local.get $15 + local.get $14 call $~lib/util/number/utoa32_lut - local.get $5 + local.get $11 i32.const 45 i32.const 43 - local.get $4 + local.get $12 select i32.store16 - local.get $7 + local.get $13 local.set $1 local.get $1 i32.const 2 @@ -10161,14 +10508,14 @@ local.get $1 i32.const 1 i32.shl - local.set $7 + local.set $17 local.get $0 i32.const 4 i32.add local.get $0 i32.const 2 i32.add - local.get $7 + local.get $17 i32.const 2 i32.sub call $~lib/memory/memory.copy @@ -10176,58 +10523,58 @@ i32.const 46 i32.store16 offset=2 local.get $0 - local.get $7 + local.get $17 i32.add i32.const 101 i32.store16 offset=2 local.get $1 local.get $0 - local.get $7 + local.get $17 i32.add i32.const 4 i32.add - local.set $9 + local.set $19 local.get $3 i32.const 1 i32.sub - local.set $8 - local.get $8 + local.set $18 + local.get $18 i32.const 0 i32.lt_s - local.set $4 - local.get $4 + local.set $20 + local.get $20 if i32.const 0 - local.get $8 + local.get $18 i32.sub - local.set $8 + local.set $18 end - local.get $8 + local.get $18 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $5 - local.get $9 - local.set $11 - local.get $8 - local.set $6 - local.get $5 - local.set $10 + local.set $21 + local.get $19 + local.set $24 + local.get $18 + local.set $23 + local.get $21 + local.set $22 i32.const 0 i32.const 1 i32.ge_s drop - local.get $11 - local.get $6 - local.get $10 + local.get $24 + local.get $23 + local.get $22 call $~lib/util/number/utoa32_lut - local.get $9 + local.get $19 i32.const 45 i32.const 43 - local.get $4 + local.get $20 select i32.store16 - local.get $5 + local.get $21 i32.add local.set $1 local.get $1 @@ -10258,19 +10605,51 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 f64) - (local $17 i64) - (local $18 i64) - (local $19 i64) - (local $20 i64) + (local $16 i32) + (local $17 f64) + (local $18 i32) + (local $19 i32) + (local $20 i32) (local $21 i64) - (local $22 i64) + (local $22 i32) (local $23 i64) (local $24 i64) (local $25 i64) - (local $26 i32) + (local $26 i64) (local $27 i64) - (local $28 i32) + (local $28 i64) + (local $29 i64) + (local $30 i64) + (local $31 i64) + (local $32 i64) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i64) + (local $37 i64) + (local $38 i64) + (local $39 i64) + (local $40 i64) + (local $41 i64) + (local $42 i64) + (local $43 i64) + (local $44 i64) + (local $45 i64) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i64) + (local $50 i64) + (local $51 i64) + (local $52 i64) + (local $53 i64) + (local $54 i64) + (local $55 i64) + (local $56 i64) + (local $57 i64) + (local $58 i64) + (local $59 i64) + (local $60 i32) local.get $1 f64.const 0 f64.lt @@ -10374,47 +10753,47 @@ local.get $13 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp - local.set $10 + local.set $16 i32.const -61 - local.get $10 + local.get $16 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 f64.mul f64.const 347 f64.add - local.set $16 - local.get $16 + local.set $17 + local.get $17 i32.trunc_f64_s - local.set $15 - local.get $15 - local.get $15 + local.set $18 + local.get $18 + local.get $18 f64.convert_i32_s - local.get $16 + local.get $17 f64.ne i32.add - local.set $15 - local.get $15 + local.set $18 + local.get $18 i32.const 3 i32.shr_s i32.const 1 i32.add - local.set $14 + local.set $19 i32.const 348 - local.get $14 + local.get $19 i32.const 3 i32.shl i32.sub global.set $~lib/util/number/_K i32.const 14720 - local.get $14 + local.get $19 i32.const 3 i32.shl i32.add i64.load global.set $~lib/util/number/_frc_pow i32.const 15416 - local.get $14 + local.get $19 i32.const 1 i32.shl i32.add @@ -10423,249 +10802,249 @@ local.get $9 i64.clz i32.wrap_i64 - local.set $14 + local.set $20 local.get $9 - local.get $14 + local.get $20 i64.extend_i32_s i64.shl local.set $9 local.get $7 - local.get $14 + local.get $20 i32.sub local.set $7 global.get $~lib/util/number/_frc_pow - local.set $12 + local.set $21 global.get $~lib/util/number/_exp_pow - local.set $15 + local.set $22 local.get $9 - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $24 + local.get $21 + local.set $23 + local.get $24 i64.const 4294967295 i64.and - local.set $18 - local.get $11 + local.set $25 + local.get $23 i64.const 4294967295 i64.and - local.set $19 - local.get $17 + local.set $26 + local.get $24 i64.const 32 i64.shr_u - local.set $20 - local.get $11 + local.set $27 + local.get $23 i64.const 32 i64.shr_u - local.set $21 - local.get $18 - local.get $19 + local.set $28 + local.get $25 + local.get $26 i64.mul - local.set $22 - local.get $20 - local.get $19 + local.set $29 + local.get $27 + local.get $26 i64.mul - local.get $22 + local.get $29 i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $18 - local.get $21 + local.set $30 + local.get $25 + local.get $28 i64.mul - local.get $23 + local.get $30 i64.const 4294967295 i64.and i64.add - local.set $24 - local.get $24 + local.set $31 + local.get $31 i64.const 2147483647 i64.add - local.set $24 - local.get $23 + local.set $31 + local.get $30 i64.const 32 i64.shr_u - local.set $23 - local.get $24 + local.set $30 + local.get $31 i64.const 32 i64.shr_u - local.set $24 - local.get $20 - local.get $21 + local.set $31 + local.get $27 + local.get $28 i64.mul - local.get $23 + local.get $30 i64.add - local.get $24 + local.get $31 i64.add - local.set $24 + local.set $32 local.get $7 - local.set $10 - local.get $15 - local.set $13 - local.get $10 - local.get $13 + local.set $34 + local.get $22 + local.set $33 + local.get $34 + local.get $33 i32.add i32.const 64 i32.add - local.set $10 + local.set $35 global.get $~lib/util/number/_frc_plus - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $37 + local.get $21 + local.set $36 + local.get $37 i64.const 4294967295 i64.and - local.set $23 - local.get $11 + local.set $38 + local.get $36 i64.const 4294967295 i64.and - local.set $22 - local.get $17 + local.set $39 + local.get $37 i64.const 32 i64.shr_u - local.set $21 - local.get $11 + local.set $40 + local.get $36 i64.const 32 i64.shr_u - local.set $20 - local.get $23 - local.get $22 + local.set $41 + local.get $38 + local.get $39 i64.mul - local.set $19 - local.get $21 - local.get $22 + local.set $42 + local.get $40 + local.get $39 i64.mul - local.get $19 + local.get $42 i64.const 32 i64.shr_u i64.add - local.set $18 - local.get $23 - local.get $20 + local.set $43 + local.get $38 + local.get $41 i64.mul - local.get $18 + local.get $43 i64.const 4294967295 i64.and i64.add - local.set $25 - local.get $25 + local.set $44 + local.get $44 i64.const 2147483647 i64.add - local.set $25 - local.get $18 + local.set $44 + local.get $43 i64.const 32 i64.shr_u - local.set $18 - local.get $25 + local.set $43 + local.get $44 i64.const 32 i64.shr_u - local.set $25 - local.get $21 - local.get $20 + local.set $44 + local.get $40 + local.get $41 i64.mul - local.get $18 + local.get $43 i64.add - local.get $25 + local.get $44 i64.add i64.const 1 i64.sub - local.set $25 + local.set $45 global.get $~lib/util/number/_exp - local.set $26 - local.get $15 - local.set $13 - local.get $26 - local.get $13 + local.set $47 + local.get $22 + local.set $46 + local.get $47 + local.get $46 i32.add i32.const 64 i32.add - local.set $26 + local.set $48 global.get $~lib/util/number/_frc_minus - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $50 + local.get $21 + local.set $49 + local.get $50 i64.const 4294967295 i64.and - local.set $18 - local.get $11 + local.set $51 + local.get $49 i64.const 4294967295 i64.and - local.set $19 - local.get $17 + local.set $52 + local.get $50 i64.const 32 i64.shr_u - local.set $20 - local.get $11 + local.set $53 + local.get $49 i64.const 32 i64.shr_u - local.set $21 - local.get $18 - local.get $19 + local.set $54 + local.get $51 + local.get $52 i64.mul - local.set $22 - local.get $20 - local.get $19 + local.set $55 + local.get $53 + local.get $52 i64.mul - local.get $22 + local.get $55 i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $18 - local.get $21 + local.set $56 + local.get $51 + local.get $54 i64.mul - local.get $23 + local.get $56 i64.const 4294967295 i64.and i64.add - local.set $27 - local.get $27 + local.set $57 + local.get $57 i64.const 2147483647 i64.add - local.set $27 - local.get $23 + local.set $57 + local.get $56 i64.const 32 i64.shr_u - local.set $23 - local.get $27 + local.set $56 + local.get $57 i64.const 32 i64.shr_u - local.set $27 - local.get $20 - local.get $21 + local.set $57 + local.get $53 + local.get $54 i64.mul - local.get $23 + local.get $56 i64.add - local.get $27 + local.get $57 i64.add i64.const 1 i64.add - local.set $27 - local.get $25 - local.get $27 + local.set $58 + local.get $45 + local.get $58 i64.sub - local.set $23 + local.set $59 local.get $4 - local.get $24 - local.get $10 - local.get $25 - local.get $26 - local.get $23 + local.get $32 + local.get $35 + local.get $45 + local.get $48 + local.get $59 local.get $3 call $~lib/util/number/genDigits - local.set $28 + local.set $60 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $28 + local.get $60 local.get $2 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.set $28 - local.get $28 + local.set $60 + local.get $60 local.get $2 i32.add ) @@ -10761,39 +11140,39 @@ (local $21 i32) (local $22 i32) (local $23 i32) - (local $24 i32) - (local $25 i32) - (local $26 i32) - (local $27 i32) - (local $28 i32) - (local $29 i32) - (local $30 i32) - (local $31 i32) - (local $32 f64) - (local $33 i32) - (local $34 i32) - (local $35 i32) - (local $36 i32) - (local $37 i32) - (local $38 i32) - (local $39 i32) - (local $40 i32) - (local $41 i32) - (local $42 i32) - (local $43 i32) - (local $44 i32) - (local $45 i32) - (local $46 i32) - (local $47 i32) - (local $48 i32) - (local $49 i32) - (local $50 i32) - (local $51 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 f64) + (local $33 f64) + (local $34 f64) + (local $35 f64) + (local $36 f64) + (local $37 f64) + (local $38 f64) + (local $39 f64) + (local $40 f64) + (local $41 f64) + (local $42 f64) + (local $43 f64) + (local $44 f64) + (local $45 f64) + (local $46 f64) + (local $47 f64) + (local $48 f64) + (local $49 f64) + (local $50 f64) + (local $51 f64) (local $52 i32) (local $53 i32) (local $54 i32) (local $55 i32) - (local $56 i32) + (local $56 f64) (local $57 i32) (local $58 i32) (local $59 i32) @@ -10949,6 +11328,121 @@ (local $209 i32) (local $210 i32) (local $211 i32) + (local $212 i32) + (local $213 i32) + (local $214 i32) + (local $215 i32) + (local $216 i32) + (local $217 i32) + (local $218 i32) + (local $219 i32) + (local $220 i32) + (local $221 i32) + (local $222 i32) + (local $223 i32) + (local $224 i32) + (local $225 i32) + (local $226 i32) + (local $227 i32) + (local $228 i32) + (local $229 i32) + (local $230 i32) + (local $231 i32) + (local $232 i32) + (local $233 i32) + (local $234 i32) + (local $235 i32) + (local $236 i32) + (local $237 i32) + (local $238 i32) + (local $239 i32) + (local $240 i32) + (local $241 i32) + (local $242 i32) + (local $243 i32) + (local $244 i32) + (local $245 i32) + (local $246 i32) + (local $247 i32) + (local $248 i32) + (local $249 i32) + (local $250 i32) + (local $251 i32) + (local $252 i32) + (local $253 i32) + (local $254 i32) + (local $255 i32) + (local $256 i32) + (local $257 i32) + (local $258 i32) + (local $259 i32) + (local $260 i32) + (local $261 i32) + (local $262 i32) + (local $263 i32) + (local $264 i32) + (local $265 i32) + (local $266 i32) + (local $267 i32) + (local $268 i32) + (local $269 i32) + (local $270 i32) + (local $271 i32) + (local $272 i32) + (local $273 i32) + (local $274 i32) + (local $275 i32) + (local $276 i32) + (local $277 i32) + (local $278 i32) + (local $279 i32) + (local $280 i32) + (local $281 i32) + (local $282 i32) + (local $283 i32) + (local $284 i32) + (local $285 i32) + (local $286 i32) + (local $287 i32) + (local $288 i32) + (local $289 i32) + (local $290 i32) + (local $291 i32) + (local $292 i32) + (local $293 i32) + (local $294 i32) + (local $295 i32) + (local $296 i32) + (local $297 i32) + (local $298 i32) + (local $299 i32) + (local $300 i32) + (local $301 i32) + (local $302 i32) + (local $303 i32) + (local $304 i32) + (local $305 i32) + (local $306 i32) + (local $307 i32) + (local $308 i32) + (local $309 i32) + (local $310 i32) + (local $311 i32) + (local $312 i32) + (local $313 i32) + (local $314 i32) + (local $315 i32) + (local $316 i32) + (local $317 i32) + (local $318 i32) + (local $319 i32) + (local $320 i32) + (local $321 i32) + (local $322 i32) + (local $323 i32) + (local $324 i32) + (local $325 i32) + (local $326 i32) global.get $std/string/str i32.const 32 i32.eq @@ -13243,8 +13737,8 @@ end i32.const 4544 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $33 + local.get $33 f64.ne i32.eqz if @@ -13257,8 +13751,8 @@ end i32.const 4576 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $34 + local.get $34 f64.ne i32.eqz if @@ -13271,8 +13765,8 @@ end i32.const 4608 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $35 + local.get $35 f64.ne i32.eqz if @@ -13285,8 +13779,8 @@ end i32.const 4640 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $36 + local.get $36 f64.ne i32.eqz if @@ -13299,8 +13793,8 @@ end i32.const 4672 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $37 + local.get $37 f64.ne i32.eqz if @@ -13313,8 +13807,8 @@ end i32.const 4704 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $38 + local.get $38 f64.ne i32.eqz if @@ -13327,8 +13821,8 @@ end i32.const 4736 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $39 + local.get $39 f64.ne i32.eqz if @@ -13341,8 +13835,8 @@ end i32.const 4768 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $40 + local.get $40 f64.ne i32.eqz if @@ -13355,8 +13849,8 @@ end i32.const 4800 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $41 + local.get $41 f64.ne i32.eqz if @@ -13369,8 +13863,8 @@ end i32.const 4832 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $42 + local.get $42 f64.ne i32.eqz if @@ -13383,8 +13877,8 @@ end i32.const 4864 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $43 + local.get $43 f64.ne i32.eqz if @@ -13397,8 +13891,8 @@ end i32.const 4896 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $44 + local.get $44 f64.ne i32.eqz if @@ -13411,8 +13905,8 @@ end i32.const 4928 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $45 + local.get $45 f64.ne i32.eqz if @@ -13425,8 +13919,8 @@ end i32.const 4960 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $46 + local.get $46 f64.ne i32.eqz if @@ -13439,8 +13933,8 @@ end i32.const 4992 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $47 + local.get $47 f64.ne i32.eqz if @@ -13453,8 +13947,8 @@ end i32.const 5024 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $48 + local.get $48 f64.ne i32.eqz if @@ -13794,8 +14288,8 @@ end i32.const 6160 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $49 + local.get $49 f64.ne i32.eqz if @@ -13808,8 +14302,8 @@ end i32.const 6192 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $50 + local.get $50 f64.ne i32.eqz if @@ -13822,8 +14316,8 @@ end i32.const 6224 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $51 + local.get $51 f64.ne i32.eqz if @@ -13876,16 +14370,16 @@ i32.const 6832 i32.const 6992 call $~lib/string/String.__concat - local.tee $33 + local.tee $52 i32.const 7152 call $~lib/string/String.__concat - local.tee $34 + local.tee $53 i32.const 7312 call $~lib/string/String.__concat - local.tee $35 + local.tee $54 i32.const 7472 call $~lib/string/String.__concat - local.tee $36 + local.tee $55 call $~lib/string/parseFloat global.get $~lib/builtins/f64.MAX_VALUE f64.eq @@ -14212,8 +14706,8 @@ end i32.const 10320 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $56 + local.get $56 f64.ne i32.eqz if @@ -14240,10 +14734,10 @@ i32.const 320 i32.const 10384 call $~lib/string/String.__concat - local.tee $37 + local.tee $57 call $~lib/rt/pure/__retain - local.set $38 - local.get $38 + local.set $58 + local.get $58 i32.const 10416 call $~lib/string/String.__eq i32.eqz @@ -14255,7 +14749,7 @@ call $~lib/builtins/abort unreachable end - local.get $38 + local.get $58 i32.const 320 call $~lib/string/String.__ne i32.eqz @@ -14267,9 +14761,9 @@ call $~lib/builtins/abort unreachable end - local.get $37 + local.get $57 call $~lib/rt/pure/__release - local.get $38 + local.get $58 call $~lib/rt/pure/__release i32.const 272 i32.const 272 @@ -14628,19 +15122,19 @@ end i32.const 65377 call $~lib/string/String.fromCodePoint - local.set $38 + local.set $59 i32.const 55296 call $~lib/string/String.fromCodePoint - local.tee $37 + local.tee $60 i32.const 56322 call $~lib/string/String.fromCodePoint - local.tee $39 + local.tee $61 call $~lib/string/String.__concat - local.tee $40 + local.tee $62 call $~lib/rt/pure/__retain - local.set $41 - local.get $38 - local.get $41 + local.set $63 + local.get $59 + local.get $63 call $~lib/string/String.__gt i32.eqz if @@ -14651,15 +15145,15 @@ call $~lib/builtins/abort unreachable end - local.get $38 + local.get $59 call $~lib/rt/pure/__release - local.get $37 + local.get $60 call $~lib/rt/pure/__release - local.get $39 + local.get $61 call $~lib/rt/pure/__release - local.get $40 + local.get $62 call $~lib/rt/pure/__release - local.get $41 + local.get $63 call $~lib/rt/pure/__release i32.const 864 call $~lib/string/String#get:length @@ -14677,7 +15171,7 @@ i32.const 272 i32.const 100 call $~lib/string/String#repeat - local.tee $41 + local.tee $64 i32.const 272 call $~lib/string/String.__eq i32.eqz @@ -14692,7 +15186,7 @@ i32.const 320 i32.const 0 call $~lib/string/String#repeat - local.tee $40 + local.tee $65 i32.const 272 call $~lib/string/String.__eq i32.eqz @@ -14707,7 +15201,7 @@ i32.const 320 i32.const 1 call $~lib/string/String#repeat - local.tee $39 + local.tee $66 i32.const 320 call $~lib/string/String.__eq i32.eqz @@ -14722,7 +15216,7 @@ i32.const 320 i32.const 2 call $~lib/string/String#repeat - local.tee $37 + local.tee $67 i32.const 10832 call $~lib/string/String.__eq i32.eqz @@ -14737,7 +15231,7 @@ i32.const 320 i32.const 3 call $~lib/string/String#repeat - local.tee $38 + local.tee $68 i32.const 10912 call $~lib/string/String.__eq i32.eqz @@ -14752,7 +15246,7 @@ i32.const 10416 i32.const 4 call $~lib/string/String#repeat - local.tee $42 + local.tee $69 i32.const 10944 call $~lib/string/String.__eq i32.eqz @@ -14767,7 +15261,7 @@ i32.const 320 i32.const 5 call $~lib/string/String#repeat - local.tee $43 + local.tee $70 i32.const 10976 call $~lib/string/String.__eq i32.eqz @@ -14782,7 +15276,7 @@ i32.const 320 i32.const 6 call $~lib/string/String#repeat - local.tee $44 + local.tee $71 i32.const 11008 call $~lib/string/String.__eq i32.eqz @@ -14797,7 +15291,7 @@ i32.const 320 i32.const 7 call $~lib/string/String#repeat - local.tee $45 + local.tee $72 i32.const 11040 call $~lib/string/String.__eq i32.eqz @@ -14813,7 +15307,7 @@ i32.const 272 i32.const 272 call $~lib/string/String#replace - local.tee $46 + local.tee $73 i32.const 272 call $~lib/string/String.__eq i32.eqz @@ -14829,7 +15323,7 @@ i32.const 272 i32.const 4544 call $~lib/string/String#replace - local.tee $47 + local.tee $74 i32.const 4544 call $~lib/string/String.__eq i32.eqz @@ -14845,7 +15339,7 @@ i32.const 4544 i32.const 272 call $~lib/string/String#replace - local.tee $48 + local.tee $75 i32.const 272 call $~lib/string/String.__eq i32.eqz @@ -14861,7 +15355,7 @@ i32.const 272 i32.const 272 call $~lib/string/String#replace - local.tee $49 + local.tee $76 i32.const 4544 call $~lib/string/String.__eq i32.eqz @@ -14877,7 +15371,7 @@ i32.const 4576 i32.const 4544 call $~lib/string/String#replace - local.tee $50 + local.tee $77 i32.const 800 call $~lib/string/String.__eq i32.eqz @@ -14893,7 +15387,7 @@ i32.const 800 i32.const 4544 call $~lib/string/String#replace - local.tee $51 + local.tee $78 i32.const 4544 call $~lib/string/String.__eq i32.eqz @@ -14909,7 +15403,7 @@ i32.const 1248 i32.const 4544 call $~lib/string/String#replace - local.tee $52 + local.tee $79 i32.const 800 call $~lib/string/String.__eq i32.eqz @@ -14925,7 +15419,7 @@ i32.const 10416 i32.const 10416 call $~lib/string/String#replace - local.tee $53 + local.tee $80 i32.const 800 call $~lib/string/String.__eq i32.eqz @@ -14941,7 +15435,7 @@ i32.const 4576 i32.const 4544 call $~lib/string/String#replace - local.tee $54 + local.tee $81 i32.const 11104 call $~lib/string/String.__eq i32.eqz @@ -14957,7 +15451,7 @@ i32.const 272 i32.const 4544 call $~lib/string/String#replace - local.tee $55 + local.tee $82 i32.const 11136 call $~lib/string/String.__eq i32.eqz @@ -14973,7 +15467,7 @@ i32.const 11200 i32.const 4544 call $~lib/string/String#replace - local.tee $56 + local.tee $83 i32.const 11136 call $~lib/string/String.__eq i32.eqz @@ -14989,7 +15483,7 @@ i32.const 11232 i32.const 11264 call $~lib/string/String#replace - local.tee $57 + local.tee $84 i32.const 11296 call $~lib/string/String.__eq i32.eqz @@ -15005,7 +15499,7 @@ i32.const 11232 i32.const 272 call $~lib/string/String#replace - local.tee $58 + local.tee $85 i32.const 10416 call $~lib/string/String.__eq i32.eqz @@ -15021,7 +15515,7 @@ i32.const 272 i32.const 800 call $~lib/string/String#replaceAll - local.tee $59 + local.tee $86 i32.const 800 call $~lib/string/String.__eq i32.eqz @@ -15037,7 +15531,7 @@ i32.const 4576 i32.const 4544 call $~lib/string/String#replaceAll - local.tee $60 + local.tee $87 i32.const 800 call $~lib/string/String.__eq i32.eqz @@ -15053,7 +15547,7 @@ i32.const 800 i32.const 4544 call $~lib/string/String#replaceAll - local.tee $61 + local.tee $88 i32.const 11264 call $~lib/string/String.__eq i32.eqz @@ -15069,7 +15563,7 @@ i32.const 800 i32.const 4544 call $~lib/string/String#replaceAll - local.tee $62 + local.tee $89 i32.const 11376 call $~lib/string/String.__eq i32.eqz @@ -15085,7 +15579,7 @@ i32.const 10416 i32.const 10416 call $~lib/string/String#replaceAll - local.tee $63 + local.tee $90 i32.const 992 call $~lib/string/String.__eq i32.eqz @@ -15101,7 +15595,7 @@ i32.const 320 i32.const 11376 call $~lib/string/String#replaceAll - local.tee $64 + local.tee $91 i32.const 11440 call $~lib/string/String.__eq i32.eqz @@ -15117,7 +15611,7 @@ i32.const 10416 i32.const 11264 call $~lib/string/String#replaceAll - local.tee $65 + local.tee $92 i32.const 11488 call $~lib/string/String.__eq i32.eqz @@ -15133,7 +15627,7 @@ i32.const 11552 i32.const 11264 call $~lib/string/String#replaceAll - local.tee $66 + local.tee $93 i32.const 11584 call $~lib/string/String.__eq i32.eqz @@ -15149,7 +15643,7 @@ i32.const 1248 i32.const 4544 call $~lib/string/String#replaceAll - local.tee $67 + local.tee $94 i32.const 800 call $~lib/string/String.__eq i32.eqz @@ -15165,7 +15659,7 @@ i32.const 11616 i32.const 11264 call $~lib/string/String#replaceAll - local.tee $68 + local.tee $95 i32.const 1248 call $~lib/string/String.__eq i32.eqz @@ -15181,7 +15675,7 @@ i32.const 11648 i32.const 4544 call $~lib/string/String#replaceAll - local.tee $69 + local.tee $96 i32.const 11680 call $~lib/string/String.__eq i32.eqz @@ -15197,7 +15691,7 @@ i32.const 10416 i32.const 4544 call $~lib/string/String#replaceAll - local.tee $70 + local.tee $97 i32.const 4544 call $~lib/string/String.__eq i32.eqz @@ -15213,7 +15707,7 @@ i32.const 4576 i32.const 4544 call $~lib/string/String#replaceAll - local.tee $71 + local.tee $98 i32.const 11712 call $~lib/string/String.__eq i32.eqz @@ -15229,7 +15723,7 @@ i32.const 272 i32.const 272 call $~lib/string/String#replaceAll - local.tee $72 + local.tee $99 i32.const 272 call $~lib/string/String.__eq i32.eqz @@ -15245,7 +15739,7 @@ i32.const 272 i32.const 4544 call $~lib/string/String#replaceAll - local.tee $73 + local.tee $100 i32.const 4544 call $~lib/string/String.__eq i32.eqz @@ -15261,7 +15755,7 @@ i32.const 4544 i32.const 272 call $~lib/string/String#replaceAll - local.tee $74 + local.tee $101 i32.const 272 call $~lib/string/String.__eq i32.eqz @@ -15277,7 +15771,7 @@ i32.const 272 i32.const 272 call $~lib/string/String#replaceAll - local.tee $75 + local.tee $102 i32.const 4544 call $~lib/string/String.__eq i32.eqz @@ -15293,7 +15787,7 @@ i32.const 800 i32.const 4576 call $~lib/string/String#replaceAll - local.tee $76 + local.tee $103 i32.const 4576 call $~lib/string/String.__eq i32.eqz @@ -15309,7 +15803,7 @@ i32.const 1216 i32.const 4576 call $~lib/string/String#replaceAll - local.tee $77 + local.tee $104 i32.const 800 call $~lib/string/String.__eq i32.eqz @@ -15325,7 +15819,7 @@ i32.const 272 i32.const 4544 call $~lib/string/String#replaceAll - local.tee $78 + local.tee $105 i32.const 11744 call $~lib/string/String.__eq i32.eqz @@ -15341,7 +15835,7 @@ i32.const 272 i32.const 272 call $~lib/string/String#replaceAll - local.tee $79 + local.tee $106 i32.const 800 call $~lib/string/String.__eq i32.eqz @@ -15354,16 +15848,16 @@ unreachable end i32.const 11776 - local.set $80 + local.set $107 global.get $std/string/str call $~lib/rt/pure/__release - local.get $80 + local.get $107 global.set $std/string/str global.get $std/string/str i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#slice - local.tee $80 + local.tee $108 i32.const 11776 call $~lib/string/String.__eq i32.eqz @@ -15379,7 +15873,7 @@ i32.const -1 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#slice - local.tee $81 + local.tee $109 i32.const 11824 call $~lib/string/String.__eq i32.eqz @@ -15395,7 +15889,7 @@ i32.const -5 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#slice - local.tee $82 + local.tee $110 i32.const 11856 call $~lib/string/String.__eq i32.eqz @@ -15411,7 +15905,7 @@ i32.const 2 i32.const 7 call $~lib/string/String#slice - local.tee $83 + local.tee $111 i32.const 11888 call $~lib/string/String.__eq i32.eqz @@ -15427,7 +15921,7 @@ i32.const -11 i32.const -6 call $~lib/string/String#slice - local.tee $84 + local.tee $112 i32.const 11920 call $~lib/string/String.__eq i32.eqz @@ -15443,7 +15937,7 @@ i32.const 4 i32.const 3 call $~lib/string/String#slice - local.tee $85 + local.tee $113 i32.const 272 call $~lib/string/String.__eq i32.eqz @@ -15459,7 +15953,7 @@ i32.const 0 i32.const -1 call $~lib/string/String#slice - local.tee $86 + local.tee $114 i32.const 11952 call $~lib/string/String.__eq i32.eqz @@ -15475,7 +15969,7 @@ i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substr - local.tee $87 + local.tee $115 i32.const 11776 call $~lib/string/String.__eq i32.eqz @@ -15491,7 +15985,7 @@ i32.const -1 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substr - local.tee $88 + local.tee $116 i32.const 11824 call $~lib/string/String.__eq i32.eqz @@ -15507,7 +16001,7 @@ i32.const -5 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substr - local.tee $89 + local.tee $117 i32.const 11856 call $~lib/string/String.__eq i32.eqz @@ -15523,7 +16017,7 @@ i32.const 2 i32.const 7 call $~lib/string/String#substr - local.tee $90 + local.tee $118 i32.const 12000 call $~lib/string/String.__eq i32.eqz @@ -15539,7 +16033,7 @@ i32.const -11 i32.const -6 call $~lib/string/String#substr - local.tee $91 + local.tee $119 i32.const 272 call $~lib/string/String.__eq i32.eqz @@ -15555,7 +16049,7 @@ i32.const 4 i32.const 3 call $~lib/string/String#substr - local.tee $92 + local.tee $120 i32.const 12032 call $~lib/string/String.__eq i32.eqz @@ -15571,7 +16065,7 @@ i32.const 0 i32.const -1 call $~lib/string/String#substr - local.tee $93 + local.tee $121 i32.const 272 call $~lib/string/String.__eq i32.eqz @@ -15587,7 +16081,7 @@ i32.const 0 i32.const 100 call $~lib/string/String#substr - local.tee $94 + local.tee $122 i32.const 11776 call $~lib/string/String.__eq i32.eqz @@ -15603,7 +16097,7 @@ i32.const 4 i32.const 4 call $~lib/string/String#substr - local.tee $95 + local.tee $123 i32.const 12064 call $~lib/string/String.__eq i32.eqz @@ -15619,7 +16113,7 @@ i32.const 4 i32.const -3 call $~lib/string/String#substr - local.tee $96 + local.tee $124 i32.const 272 call $~lib/string/String.__eq i32.eqz @@ -15635,7 +16129,7 @@ i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substring - local.tee $97 + local.tee $125 i32.const 11776 call $~lib/string/String.__eq i32.eqz @@ -15651,7 +16145,7 @@ i32.const -1 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substring - local.tee $98 + local.tee $126 i32.const 11776 call $~lib/string/String.__eq i32.eqz @@ -15667,7 +16161,7 @@ i32.const -5 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substring - local.tee $99 + local.tee $127 i32.const 11776 call $~lib/string/String.__eq i32.eqz @@ -15683,7 +16177,7 @@ i32.const 2 i32.const 7 call $~lib/string/String#substring - local.tee $100 + local.tee $128 i32.const 11888 call $~lib/string/String.__eq i32.eqz @@ -15699,7 +16193,7 @@ i32.const -11 i32.const -6 call $~lib/string/String#substring - local.tee $101 + local.tee $129 i32.const 272 call $~lib/string/String.__eq i32.eqz @@ -15715,7 +16209,7 @@ i32.const 4 i32.const 3 call $~lib/string/String#substring - local.tee $102 + local.tee $130 i32.const 12096 call $~lib/string/String.__eq i32.eqz @@ -15731,7 +16225,7 @@ i32.const 0 i32.const -1 call $~lib/string/String#substring - local.tee $103 + local.tee $131 i32.const 272 call $~lib/string/String.__eq i32.eqz @@ -15747,7 +16241,7 @@ i32.const 0 i32.const 100 call $~lib/string/String#substring - local.tee $104 + local.tee $132 i32.const 11776 call $~lib/string/String.__eq i32.eqz @@ -15763,7 +16257,7 @@ i32.const 4 i32.const 4 call $~lib/string/String#substring - local.tee $105 + local.tee $133 i32.const 272 call $~lib/string/String.__eq i32.eqz @@ -15779,7 +16273,7 @@ i32.const 4 i32.const -3 call $~lib/string/String#substring - local.tee $106 + local.tee $134 i32.const 1248 call $~lib/string/String.__eq i32.eqz @@ -15792,31 +16286,31 @@ unreachable end i32.const 0 - local.set $107 + local.set $135 i32.const 272 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $108 - local.get $107 + local.set $136 + local.get $135 call $~lib/rt/pure/__release - local.get $108 - local.set $107 - local.get $107 + local.get $136 + local.set $135 + local.get $135 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $107 + local.get $135 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $137 i32.const 272 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $138 + local.get $137 call $~lib/rt/pure/__release - local.get $109 + local.get $138 else i32.const 0 end @@ -15835,12 +16329,12 @@ i32.const 272 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $109 - local.get $107 + local.set $139 + local.get $135 call $~lib/rt/pure/__release - local.get $109 - local.set $107 - local.get $107 + local.get $139 + local.set $135 + local.get $135 call $~lib/array/Array<~lib/string/String>#get:length i32.const 0 i32.eq @@ -15857,26 +16351,26 @@ i32.const 1056 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $108 - local.get $107 + local.set $140 + local.get $135 call $~lib/rt/pure/__release - local.get $108 - local.set $107 - local.get $107 + local.get $140 + local.set $135 + local.get $135 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $107 + local.get $135 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $141 i32.const 272 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $142 + local.get $141 call $~lib/rt/pure/__release - local.get $109 + local.get $142 else i32.const 0 end @@ -15895,26 +16389,26 @@ i32.const 4736 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $109 - local.get $107 + local.set $143 + local.get $135 call $~lib/rt/pure/__release - local.get $109 - local.set $107 - local.get $107 + local.get $143 + local.set $135 + local.get $135 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $107 + local.get $135 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $144 i32.const 12352 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $145 + local.get $144 call $~lib/rt/pure/__release - local.get $108 + local.get $145 else i32.const 0 end @@ -15933,58 +16427,58 @@ i32.const 1056 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $108 - local.get $107 + local.set $146 + local.get $135 call $~lib/rt/pure/__release - local.get $108 - local.set $107 - local.get $107 + local.get $146 + local.set $135 + local.get $135 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $107 + local.get $135 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $147 i32.const 320 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $148 + local.get $147 call $~lib/rt/pure/__release - local.get $109 + local.get $148 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $149 i32.const 10384 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $150 + local.get $149 call $~lib/rt/pure/__release - local.get $109 + local.get $150 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $151 i32.const 11232 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $152 + local.get $151 call $~lib/rt/pure/__release - local.get $109 + local.get $152 else i32.const 0 end @@ -16003,58 +16497,58 @@ i32.const 12416 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $109 - local.get $107 + local.set $153 + local.get $135 call $~lib/rt/pure/__release - local.get $109 - local.set $107 - local.get $107 + local.get $153 + local.set $135 + local.get $135 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $107 + local.get $135 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $154 i32.const 320 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $155 + local.get $154 call $~lib/rt/pure/__release - local.get $108 + local.get $155 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $156 i32.const 10384 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $157 + local.get $156 call $~lib/rt/pure/__release - local.get $108 + local.get $157 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $158 i32.const 11232 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $159 + local.get $158 call $~lib/rt/pure/__release - local.get $108 + local.get $159 else i32.const 0 end @@ -16073,74 +16567,74 @@ i32.const 1056 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $108 - local.get $107 + local.set $160 + local.get $135 call $~lib/rt/pure/__release - local.get $108 - local.set $107 - local.get $107 + local.get $160 + local.set $135 + local.get $135 call $~lib/array/Array<~lib/string/String>#get:length i32.const 4 i32.eq if (result i32) - local.get $107 + local.get $135 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $161 i32.const 320 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $162 + local.get $161 call $~lib/rt/pure/__release - local.get $109 + local.get $162 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $163 i32.const 10384 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $164 + local.get $163 call $~lib/rt/pure/__release - local.get $109 + local.get $164 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $165 i32.const 272 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $166 + local.get $165 call $~lib/rt/pure/__release - local.get $109 + local.get $166 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $167 i32.const 11232 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $168 + local.get $167 call $~lib/rt/pure/__release - local.get $109 + local.get $168 else i32.const 0 end @@ -16159,74 +16653,74 @@ i32.const 1056 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $109 - local.get $107 + local.set $169 + local.get $135 call $~lib/rt/pure/__release - local.get $109 - local.set $107 - local.get $107 + local.get $169 + local.set $135 + local.get $135 call $~lib/array/Array<~lib/string/String>#get:length i32.const 4 i32.eq if (result i32) - local.get $107 + local.get $135 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $170 i32.const 272 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $171 + local.get $170 call $~lib/rt/pure/__release - local.get $108 + local.get $171 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $172 i32.const 320 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $173 + local.get $172 call $~lib/rt/pure/__release - local.get $108 + local.get $173 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $174 i32.const 10384 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $175 + local.get $174 call $~lib/rt/pure/__release - local.get $108 + local.get $175 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $176 i32.const 11232 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $177 + local.get $176 call $~lib/rt/pure/__release - local.get $108 + local.get $177 else i32.const 0 end @@ -16245,74 +16739,74 @@ i32.const 1056 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $108 - local.get $107 + local.set $178 + local.get $135 call $~lib/rt/pure/__release - local.get $108 - local.set $107 - local.get $107 + local.get $178 + local.set $135 + local.get $135 call $~lib/array/Array<~lib/string/String>#get:length i32.const 4 i32.eq if (result i32) - local.get $107 + local.get $135 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $179 i32.const 320 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $180 + local.get $179 call $~lib/rt/pure/__release - local.get $109 + local.get $180 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $181 i32.const 10384 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $182 + local.get $181 call $~lib/rt/pure/__release - local.get $109 + local.get $182 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $183 i32.const 11232 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $184 + local.get $183 call $~lib/rt/pure/__release - local.get $109 + local.get $184 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $185 i32.const 272 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $186 + local.get $185 call $~lib/rt/pure/__release - local.get $109 + local.get $186 else i32.const 0 end @@ -16331,58 +16825,58 @@ i32.const 272 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $109 - local.get $107 + local.set $187 + local.get $135 call $~lib/rt/pure/__release - local.get $109 - local.set $107 - local.get $107 + local.get $187 + local.set $135 + local.get $135 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $107 + local.get $135 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $188 i32.const 320 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $189 + local.get $188 call $~lib/rt/pure/__release - local.get $108 + local.get $189 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $190 i32.const 10384 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $191 + local.get $190 call $~lib/rt/pure/__release - local.get $108 + local.get $191 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $192 i32.const 11232 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $193 + local.get $192 call $~lib/rt/pure/__release - local.get $108 + local.get $193 else i32.const 0 end @@ -16401,12 +16895,12 @@ i32.const 272 i32.const 0 call $~lib/string/String#split - local.set $108 - local.get $107 + local.set $194 + local.get $135 call $~lib/rt/pure/__release - local.get $108 - local.set $107 - local.get $107 + local.get $194 + local.set $135 + local.get $135 call $~lib/array/Array<~lib/string/String>#get:length i32.const 0 i32.eq @@ -16423,26 +16917,26 @@ i32.const 272 i32.const 1 call $~lib/string/String#split - local.set $109 - local.get $107 + local.set $195 + local.get $135 call $~lib/rt/pure/__release - local.get $109 - local.set $107 - local.get $107 + local.get $195 + local.set $135 + local.get $135 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $107 + local.get $135 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $196 i32.const 320 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $197 + local.get $196 call $~lib/rt/pure/__release - local.get $108 + local.get $197 else i32.const 0 end @@ -16461,26 +16955,26 @@ i32.const 1056 i32.const 1 call $~lib/string/String#split - local.set $108 - local.get $107 + local.set $198 + local.get $135 call $~lib/rt/pure/__release - local.get $108 - local.set $107 - local.get $107 + local.get $198 + local.set $135 + local.get $135 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $107 + local.get $135 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $199 i32.const 320 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $200 + local.get $199 call $~lib/rt/pure/__release - local.get $109 + local.get $200 else i32.const 0 end @@ -16499,58 +16993,58 @@ i32.const 272 i32.const 4 call $~lib/string/String#split - local.set $109 - local.get $107 + local.set $201 + local.get $135 call $~lib/rt/pure/__release - local.get $109 - local.set $107 - local.get $107 + local.get $201 + local.set $135 + local.get $135 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $107 + local.get $135 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $202 i32.const 320 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $203 + local.get $202 call $~lib/rt/pure/__release - local.get $108 + local.get $203 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $204 i32.const 10384 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $205 + local.get $204 call $~lib/rt/pure/__release - local.get $108 + local.get $205 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $206 i32.const 11232 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $207 + local.get $206 call $~lib/rt/pure/__release - local.get $108 + local.get $207 else i32.const 0 end @@ -16569,58 +17063,58 @@ i32.const 272 i32.const -1 call $~lib/string/String#split - local.set $108 - local.get $107 + local.set $208 + local.get $135 call $~lib/rt/pure/__release - local.get $108 - local.set $107 - local.get $107 + local.get $208 + local.set $135 + local.get $135 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $107 + local.get $135 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $209 i32.const 320 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $210 + local.get $209 call $~lib/rt/pure/__release - local.get $109 + local.get $210 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $211 i32.const 10384 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $212 + local.get $211 call $~lib/rt/pure/__release - local.get $109 + local.get $212 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $108 + local.tee $213 i32.const 11232 call $~lib/string/String.__eq - local.set $109 - local.get $108 + local.set $214 + local.get $213 call $~lib/rt/pure/__release - local.get $109 + local.get $214 else i32.const 0 end @@ -16639,58 +17133,58 @@ i32.const 1056 i32.const -1 call $~lib/string/String#split - local.set $109 - local.get $107 + local.set $215 + local.get $135 call $~lib/rt/pure/__release - local.get $109 - local.set $107 - local.get $107 + local.get $215 + local.set $135 + local.get $135 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $107 + local.get $135 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $216 i32.const 320 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $217 + local.get $216 call $~lib/rt/pure/__release - local.get $108 + local.get $217 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $218 i32.const 10384 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $219 + local.get $218 call $~lib/rt/pure/__release - local.get $108 + local.get $219 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $107 + local.get $135 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $109 + local.tee $220 i32.const 11232 call $~lib/string/String.__eq - local.set $108 - local.get $109 + local.set $221 + local.get $220 call $~lib/rt/pure/__release - local.get $108 + local.get $221 else i32.const 0 end @@ -16705,11 +17199,11 @@ call $~lib/builtins/abort unreachable end - local.get $107 + local.get $135 call $~lib/rt/pure/__release i32.const 0 call $~lib/util/number/itoa32 - local.tee $107 + local.tee $222 i32.const 1424 call $~lib/string/String.__eq i32.eqz @@ -16723,7 +17217,7 @@ end i32.const 1 call $~lib/util/number/itoa32 - local.tee $109 + local.tee $223 i32.const 1488 call $~lib/string/String.__eq i32.eqz @@ -16737,7 +17231,7 @@ end i32.const 8 call $~lib/util/number/itoa32 - local.tee $108 + local.tee $224 i32.const 12944 call $~lib/string/String.__eq i32.eqz @@ -16751,7 +17245,7 @@ end i32.const 12 call $~lib/util/number/itoa32 - local.tee $110 + local.tee $225 i32.const 12976 call $~lib/string/String.__eq i32.eqz @@ -16765,7 +17259,7 @@ end i32.const 123 call $~lib/util/number/itoa32 - local.tee $111 + local.tee $226 i32.const 864 call $~lib/string/String.__eq i32.eqz @@ -16779,7 +17273,7 @@ end i32.const -1000 call $~lib/util/number/itoa32 - local.tee $112 + local.tee $227 i32.const 13008 call $~lib/string/String.__eq i32.eqz @@ -16793,7 +17287,7 @@ end i32.const 1234 call $~lib/util/number/itoa32 - local.tee $113 + local.tee $228 i32.const 13040 call $~lib/string/String.__eq i32.eqz @@ -16807,7 +17301,7 @@ end i32.const 12345 call $~lib/util/number/itoa32 - local.tee $114 + local.tee $229 i32.const 13072 call $~lib/string/String.__eq i32.eqz @@ -16821,7 +17315,7 @@ end i32.const 123456 call $~lib/util/number/itoa32 - local.tee $115 + local.tee $230 i32.const 13104 call $~lib/string/String.__eq i32.eqz @@ -16835,7 +17329,7 @@ end i32.const 1111111 call $~lib/util/number/itoa32 - local.tee $116 + local.tee $231 i32.const 13136 call $~lib/string/String.__eq i32.eqz @@ -16849,7 +17343,7 @@ end i32.const 1234567 call $~lib/util/number/itoa32 - local.tee $117 + local.tee $232 i32.const 13168 call $~lib/string/String.__eq i32.eqz @@ -16863,7 +17357,7 @@ end i32.const 12345678 call $~lib/util/number/itoa32 - local.tee $118 + local.tee $233 i32.const 13200 call $~lib/string/String.__eq i32.eqz @@ -16877,7 +17371,7 @@ end i32.const 123456789 call $~lib/util/number/itoa32 - local.tee $119 + local.tee $234 i32.const 13232 call $~lib/string/String.__eq i32.eqz @@ -16891,7 +17385,7 @@ end i32.const 2147483646 call $~lib/util/number/itoa32 - local.tee $120 + local.tee $235 i32.const 13280 call $~lib/string/String.__eq i32.eqz @@ -16905,7 +17399,7 @@ end i32.const 2147483647 call $~lib/util/number/itoa32 - local.tee $121 + local.tee $236 i32.const 13328 call $~lib/string/String.__eq i32.eqz @@ -16919,7 +17413,7 @@ end i32.const -2147483648 call $~lib/util/number/itoa32 - local.tee $122 + local.tee $237 i32.const 13376 call $~lib/string/String.__eq i32.eqz @@ -16933,7 +17427,7 @@ end i32.const -1 call $~lib/util/number/itoa32 - local.tee $123 + local.tee $238 i32.const 13424 call $~lib/string/String.__eq i32.eqz @@ -16947,7 +17441,7 @@ end i32.const 0 call $~lib/util/number/utoa32 - local.tee $124 + local.tee $239 i32.const 1424 call $~lib/string/String.__eq i32.eqz @@ -16961,7 +17455,7 @@ end i32.const 1000 call $~lib/util/number/utoa32 - local.tee $125 + local.tee $240 i32.const 13456 call $~lib/string/String.__eq i32.eqz @@ -16975,7 +17469,7 @@ end i32.const 2147483647 call $~lib/util/number/utoa32 - local.tee $126 + local.tee $241 i32.const 13328 call $~lib/string/String.__eq i32.eqz @@ -16989,7 +17483,7 @@ end i32.const -2147483648 call $~lib/util/number/utoa32 - local.tee $127 + local.tee $242 i32.const 13488 call $~lib/string/String.__eq i32.eqz @@ -17003,7 +17497,7 @@ end global.get $~lib/builtins/u32.MAX_VALUE call $~lib/util/number/utoa32 - local.tee $128 + local.tee $243 i32.const 13536 call $~lib/string/String.__eq i32.eqz @@ -17017,7 +17511,7 @@ end i64.const 0 call $~lib/util/number/utoa64 - local.tee $129 + local.tee $244 i32.const 1424 call $~lib/string/String.__eq i32.eqz @@ -17031,7 +17525,7 @@ end i64.const 12 call $~lib/util/number/utoa64 - local.tee $130 + local.tee $245 i32.const 12976 call $~lib/string/String.__eq i32.eqz @@ -17045,7 +17539,7 @@ end i64.const 123 call $~lib/util/number/utoa64 - local.tee $131 + local.tee $246 i32.const 864 call $~lib/string/String.__eq i32.eqz @@ -17059,7 +17553,7 @@ end i64.const 1234 call $~lib/util/number/utoa64 - local.tee $132 + local.tee $247 i32.const 13040 call $~lib/string/String.__eq i32.eqz @@ -17073,7 +17567,7 @@ end i64.const 12345 call $~lib/util/number/utoa64 - local.tee $133 + local.tee $248 i32.const 13072 call $~lib/string/String.__eq i32.eqz @@ -17087,7 +17581,7 @@ end i64.const 123456 call $~lib/util/number/utoa64 - local.tee $134 + local.tee $249 i32.const 13104 call $~lib/string/String.__eq i32.eqz @@ -17101,7 +17595,7 @@ end i64.const 1234567 call $~lib/util/number/utoa64 - local.tee $135 + local.tee $250 i32.const 13168 call $~lib/string/String.__eq i32.eqz @@ -17115,7 +17609,7 @@ end i64.const 99999999 call $~lib/util/number/utoa64 - local.tee $136 + local.tee $251 i32.const 13584 call $~lib/string/String.__eq i32.eqz @@ -17129,7 +17623,7 @@ end i64.const 100000000 call $~lib/util/number/utoa64 - local.tee $137 + local.tee $252 i32.const 13616 call $~lib/string/String.__eq i32.eqz @@ -17143,7 +17637,7 @@ end i64.const 4294967295 call $~lib/util/number/utoa64 - local.tee $138 + local.tee $253 i32.const 13536 call $~lib/string/String.__eq i32.eqz @@ -17157,7 +17651,7 @@ end i64.const 4294967297 call $~lib/util/number/utoa64 - local.tee $139 + local.tee $254 i32.const 13664 call $~lib/string/String.__eq i32.eqz @@ -17171,7 +17665,7 @@ end i64.const 68719476735 call $~lib/util/number/utoa64 - local.tee $140 + local.tee $255 i32.const 13712 call $~lib/string/String.__eq i32.eqz @@ -17185,7 +17679,7 @@ end i64.const 868719476735 call $~lib/util/number/utoa64 - local.tee $141 + local.tee $256 i32.const 13760 call $~lib/string/String.__eq i32.eqz @@ -17199,7 +17693,7 @@ end i64.const 8687194767350 call $~lib/util/number/utoa64 - local.tee $142 + local.tee $257 i32.const 13808 call $~lib/string/String.__eq i32.eqz @@ -17213,7 +17707,7 @@ end i64.const 86871947673501 call $~lib/util/number/utoa64 - local.tee $143 + local.tee $258 i32.const 13856 call $~lib/string/String.__eq i32.eqz @@ -17227,7 +17721,7 @@ end i64.const 999868719476735 call $~lib/util/number/utoa64 - local.tee $144 + local.tee $259 i32.const 13904 call $~lib/string/String.__eq i32.eqz @@ -17241,7 +17735,7 @@ end i64.const 9999868719476735 call $~lib/util/number/utoa64 - local.tee $145 + local.tee $260 i32.const 13952 call $~lib/string/String.__eq i32.eqz @@ -17255,7 +17749,7 @@ end i64.const 19999868719476735 call $~lib/util/number/utoa64 - local.tee $146 + local.tee $261 i32.const 14000 call $~lib/string/String.__eq i32.eqz @@ -17269,7 +17763,7 @@ end i64.const 129999868719476735 call $~lib/util/number/utoa64 - local.tee $147 + local.tee $262 i32.const 14064 call $~lib/string/String.__eq i32.eqz @@ -17283,7 +17777,7 @@ end i64.const 1239999868719476735 call $~lib/util/number/utoa64 - local.tee $148 + local.tee $263 i32.const 14128 call $~lib/string/String.__eq i32.eqz @@ -17297,7 +17791,7 @@ end global.get $~lib/builtins/u64.MAX_VALUE call $~lib/util/number/utoa64 - local.tee $149 + local.tee $264 i32.const 14192 call $~lib/string/String.__eq i32.eqz @@ -17311,7 +17805,7 @@ end i64.const 0 call $~lib/util/number/itoa64 - local.tee $150 + local.tee $265 i32.const 1424 call $~lib/string/String.__eq i32.eqz @@ -17325,7 +17819,7 @@ end i64.const -1234 call $~lib/util/number/itoa64 - local.tee $151 + local.tee $266 i32.const 14256 call $~lib/string/String.__eq i32.eqz @@ -17339,7 +17833,7 @@ end i64.const 4294967295 call $~lib/util/number/itoa64 - local.tee $152 + local.tee $267 i32.const 13536 call $~lib/string/String.__eq i32.eqz @@ -17353,7 +17847,7 @@ end i64.const 4294967297 call $~lib/util/number/itoa64 - local.tee $153 + local.tee $268 i32.const 13664 call $~lib/string/String.__eq i32.eqz @@ -17367,7 +17861,7 @@ end i64.const -4294967295 call $~lib/util/number/itoa64 - local.tee $154 + local.tee $269 i32.const 14288 call $~lib/string/String.__eq i32.eqz @@ -17381,7 +17875,7 @@ end i64.const 68719476735 call $~lib/util/number/itoa64 - local.tee $155 + local.tee $270 i32.const 13712 call $~lib/string/String.__eq i32.eqz @@ -17395,7 +17889,7 @@ end i64.const -68719476735 call $~lib/util/number/itoa64 - local.tee $156 + local.tee $271 i32.const 14336 call $~lib/string/String.__eq i32.eqz @@ -17409,7 +17903,7 @@ end i64.const -868719476735 call $~lib/util/number/itoa64 - local.tee $157 + local.tee $272 i32.const 14384 call $~lib/string/String.__eq i32.eqz @@ -17423,7 +17917,7 @@ end i64.const -999868719476735 call $~lib/util/number/itoa64 - local.tee $158 + local.tee $273 i32.const 14432 call $~lib/string/String.__eq i32.eqz @@ -17437,7 +17931,7 @@ end i64.const -19999868719476735 call $~lib/util/number/itoa64 - local.tee $159 + local.tee $274 i32.const 14480 call $~lib/string/String.__eq i32.eqz @@ -17451,7 +17945,7 @@ end global.get $~lib/builtins/i64.MAX_VALUE call $~lib/util/number/itoa64 - local.tee $160 + local.tee $275 i32.const 14544 call $~lib/string/String.__eq i32.eqz @@ -17465,7 +17959,7 @@ end global.get $~lib/builtins/i64.MIN_VALUE call $~lib/util/number/itoa64 - local.tee $161 + local.tee $276 i32.const 14608 call $~lib/string/String.__eq i32.eqz @@ -17479,7 +17973,7 @@ end f64.const 0 call $~lib/util/number/dtoa - local.tee $162 + local.tee $277 i32.const 14672 call $~lib/string/String.__eq i32.eqz @@ -17493,7 +17987,7 @@ end f64.const -0 call $~lib/util/number/dtoa - local.tee $163 + local.tee $278 i32.const 14672 call $~lib/string/String.__eq i32.eqz @@ -17507,7 +18001,7 @@ end f64.const nan:0x8000000000000 call $~lib/util/number/dtoa - local.tee $164 + local.tee $279 i32.const 4800 call $~lib/string/String.__eq i32.eqz @@ -17521,7 +18015,7 @@ end f64.const inf call $~lib/util/number/dtoa - local.tee $165 + local.tee $280 i32.const 14704 call $~lib/string/String.__eq i32.eqz @@ -17536,7 +18030,7 @@ f64.const inf f64.neg call $~lib/util/number/dtoa - local.tee $166 + local.tee $281 i32.const 6016 call $~lib/string/String.__eq i32.eqz @@ -17550,7 +18044,7 @@ end global.get $~lib/builtins/f64.EPSILON call $~lib/util/number/dtoa - local.tee $167 + local.tee $282 i32.const 5312 call $~lib/string/String.__eq i32.eqz @@ -17565,7 +18059,7 @@ global.get $~lib/builtins/f64.EPSILON f64.neg call $~lib/util/number/dtoa - local.tee $168 + local.tee $283 i32.const 15648 call $~lib/string/String.__eq i32.eqz @@ -17579,7 +18073,7 @@ end global.get $~lib/builtins/f64.MAX_VALUE call $~lib/util/number/dtoa - local.tee $169 + local.tee $284 i32.const 5376 call $~lib/string/String.__eq i32.eqz @@ -17594,7 +18088,7 @@ global.get $~lib/builtins/f64.MAX_VALUE f64.neg call $~lib/util/number/dtoa - local.tee $170 + local.tee $285 i32.const 15712 call $~lib/string/String.__eq i32.eqz @@ -17608,7 +18102,7 @@ end f64.const 4185580496821356722454785e274 call $~lib/util/number/dtoa - local.tee $171 + local.tee $286 i32.const 15776 call $~lib/string/String.__eq i32.eqz @@ -17622,7 +18116,7 @@ end f64.const 2.2250738585072014e-308 call $~lib/util/number/dtoa - local.tee $172 + local.tee $287 i32.const 15840 call $~lib/string/String.__eq i32.eqz @@ -17636,7 +18130,7 @@ end f64.const 4.940656e-318 call $~lib/util/number/dtoa - local.tee $173 + local.tee $288 i32.const 15904 call $~lib/string/String.__eq i32.eqz @@ -17650,7 +18144,7 @@ end f64.const 9060801153433600 call $~lib/util/number/dtoa - local.tee $174 + local.tee $289 i32.const 15952 call $~lib/string/String.__eq i32.eqz @@ -17664,7 +18158,7 @@ end f64.const 4708356024711512064 call $~lib/util/number/dtoa - local.tee $175 + local.tee $290 i32.const 16016 call $~lib/string/String.__eq i32.eqz @@ -17678,7 +18172,7 @@ end f64.const 9409340012568248320 call $~lib/util/number/dtoa - local.tee $176 + local.tee $291 i32.const 16080 call $~lib/string/String.__eq i32.eqz @@ -17692,7 +18186,7 @@ end f64.const 5e-324 call $~lib/util/number/dtoa - local.tee $177 + local.tee $292 i32.const 5440 call $~lib/string/String.__eq i32.eqz @@ -17706,7 +18200,7 @@ end f64.const 1 call $~lib/util/number/dtoa - local.tee $178 + local.tee $293 i32.const 16144 call $~lib/string/String.__eq i32.eqz @@ -17720,7 +18214,7 @@ end f64.const 0.1 call $~lib/util/number/dtoa - local.tee $179 + local.tee $294 i32.const 2448 call $~lib/string/String.__eq i32.eqz @@ -17734,7 +18228,7 @@ end f64.const -1 call $~lib/util/number/dtoa - local.tee $180 + local.tee $295 i32.const 16176 call $~lib/string/String.__eq i32.eqz @@ -17748,7 +18242,7 @@ end f64.const -0.1 call $~lib/util/number/dtoa - local.tee $181 + local.tee $296 i32.const 16208 call $~lib/string/String.__eq i32.eqz @@ -17762,7 +18256,7 @@ end f64.const 1e6 call $~lib/util/number/dtoa - local.tee $182 + local.tee $297 i32.const 16240 call $~lib/string/String.__eq i32.eqz @@ -17776,7 +18270,7 @@ end f64.const 1e-06 call $~lib/util/number/dtoa - local.tee $183 + local.tee $298 i32.const 16288 call $~lib/string/String.__eq i32.eqz @@ -17790,7 +18284,7 @@ end f64.const -1e6 call $~lib/util/number/dtoa - local.tee $184 + local.tee $299 i32.const 16320 call $~lib/string/String.__eq i32.eqz @@ -17804,7 +18298,7 @@ end f64.const -1e-06 call $~lib/util/number/dtoa - local.tee $185 + local.tee $300 i32.const 16368 call $~lib/string/String.__eq i32.eqz @@ -17818,7 +18312,7 @@ end f64.const 1e7 call $~lib/util/number/dtoa - local.tee $186 + local.tee $301 i32.const 16416 call $~lib/string/String.__eq i32.eqz @@ -17832,7 +18326,7 @@ end f64.const 1e-07 call $~lib/util/number/dtoa - local.tee $187 + local.tee $302 i32.const 16464 call $~lib/string/String.__eq i32.eqz @@ -17846,7 +18340,7 @@ end f64.const 1.e+308 call $~lib/util/number/dtoa - local.tee $188 + local.tee $303 i32.const 2672 call $~lib/string/String.__eq i32.eqz @@ -17860,7 +18354,7 @@ end f64.const -1.e+308 call $~lib/util/number/dtoa - local.tee $189 + local.tee $304 i32.const 16496 call $~lib/string/String.__eq i32.eqz @@ -17874,7 +18368,7 @@ end f64.const inf call $~lib/util/number/dtoa - local.tee $190 + local.tee $305 i32.const 14704 call $~lib/string/String.__eq i32.eqz @@ -17888,7 +18382,7 @@ end f64.const -inf call $~lib/util/number/dtoa - local.tee $191 + local.tee $306 i32.const 6016 call $~lib/string/String.__eq i32.eqz @@ -17902,7 +18396,7 @@ end f64.const 1e-308 call $~lib/util/number/dtoa - local.tee $192 + local.tee $307 i32.const 16528 call $~lib/string/String.__eq i32.eqz @@ -17916,7 +18410,7 @@ end f64.const -1e-308 call $~lib/util/number/dtoa - local.tee $193 + local.tee $308 i32.const 16560 call $~lib/string/String.__eq i32.eqz @@ -17930,7 +18424,7 @@ end f64.const 1e-323 call $~lib/util/number/dtoa - local.tee $194 + local.tee $309 i32.const 16592 call $~lib/string/String.__eq i32.eqz @@ -17944,7 +18438,7 @@ end f64.const -1e-323 call $~lib/util/number/dtoa - local.tee $195 + local.tee $310 i32.const 16624 call $~lib/string/String.__eq i32.eqz @@ -17958,7 +18452,7 @@ end f64.const 0 call $~lib/util/number/dtoa - local.tee $196 + local.tee $311 i32.const 14672 call $~lib/string/String.__eq i32.eqz @@ -17972,7 +18466,7 @@ end f64.const 4294967272 call $~lib/util/number/dtoa - local.tee $197 + local.tee $312 i32.const 16656 call $~lib/string/String.__eq i32.eqz @@ -17986,7 +18480,7 @@ end f64.const 1.2312145673456234e-08 call $~lib/util/number/dtoa - local.tee $198 + local.tee $313 i32.const 16704 call $~lib/string/String.__eq i32.eqz @@ -18000,7 +18494,7 @@ end f64.const 555555555.5555556 call $~lib/util/number/dtoa - local.tee $199 + local.tee $314 i32.const 16768 call $~lib/string/String.__eq i32.eqz @@ -18014,7 +18508,7 @@ end f64.const 0.9999999999999999 call $~lib/util/number/dtoa - local.tee $200 + local.tee $315 i32.const 16832 call $~lib/string/String.__eq i32.eqz @@ -18028,7 +18522,7 @@ end f64.const 1 call $~lib/util/number/dtoa - local.tee $201 + local.tee $316 i32.const 16144 call $~lib/string/String.__eq i32.eqz @@ -18042,7 +18536,7 @@ end f64.const 12.34 call $~lib/util/number/dtoa - local.tee $202 + local.tee $317 i32.const 16896 call $~lib/string/String.__eq i32.eqz @@ -18058,7 +18552,7 @@ f64.const 3 f64.div call $~lib/util/number/dtoa - local.tee $203 + local.tee $318 i32.const 16928 call $~lib/string/String.__eq i32.eqz @@ -18072,7 +18566,7 @@ end f64.const 1234e17 call $~lib/util/number/dtoa - local.tee $204 + local.tee $319 i32.const 16992 call $~lib/string/String.__eq i32.eqz @@ -18086,7 +18580,7 @@ end f64.const 1234e18 call $~lib/util/number/dtoa - local.tee $205 + local.tee $320 i32.const 17056 call $~lib/string/String.__eq i32.eqz @@ -18100,7 +18594,7 @@ end f64.const 2.71828 call $~lib/util/number/dtoa - local.tee $206 + local.tee $321 i32.const 17104 call $~lib/string/String.__eq i32.eqz @@ -18114,7 +18608,7 @@ end f64.const 0.0271828 call $~lib/util/number/dtoa - local.tee $207 + local.tee $322 i32.const 17136 call $~lib/string/String.__eq i32.eqz @@ -18128,7 +18622,7 @@ end f64.const 271.828 call $~lib/util/number/dtoa - local.tee $208 + local.tee $323 i32.const 17184 call $~lib/string/String.__eq i32.eqz @@ -18142,7 +18636,7 @@ end f64.const 1.1e+128 call $~lib/util/number/dtoa - local.tee $209 + local.tee $324 i32.const 17216 call $~lib/string/String.__eq i32.eqz @@ -18156,7 +18650,7 @@ end f64.const 1.1e-64 call $~lib/util/number/dtoa - local.tee $210 + local.tee $325 i32.const 17248 call $~lib/string/String.__eq i32.eqz @@ -18170,7 +18664,7 @@ end f64.const 0.000035689 call $~lib/util/number/dtoa - local.tee $211 + local.tee $326 i32.const 17280 call $~lib/string/String.__eq i32.eqz @@ -18248,44 +18742,6 @@ call $~lib/rt/pure/__release local.get $31 call $~lib/rt/pure/__release - local.get $33 - call $~lib/rt/pure/__release - local.get $34 - call $~lib/rt/pure/__release - local.get $35 - call $~lib/rt/pure/__release - local.get $36 - call $~lib/rt/pure/__release - local.get $37 - call $~lib/rt/pure/__release - local.get $38 - call $~lib/rt/pure/__release - local.get $39 - call $~lib/rt/pure/__release - local.get $40 - call $~lib/rt/pure/__release - local.get $41 - call $~lib/rt/pure/__release - local.get $42 - call $~lib/rt/pure/__release - local.get $43 - call $~lib/rt/pure/__release - local.get $44 - call $~lib/rt/pure/__release - local.get $45 - call $~lib/rt/pure/__release - local.get $46 - call $~lib/rt/pure/__release - local.get $47 - call $~lib/rt/pure/__release - local.get $48 - call $~lib/rt/pure/__release - local.get $49 - call $~lib/rt/pure/__release - local.get $50 - call $~lib/rt/pure/__release - local.get $51 - call $~lib/rt/pure/__release local.get $52 call $~lib/rt/pure/__release local.get $53 @@ -18294,22 +18750,6 @@ call $~lib/rt/pure/__release local.get $55 call $~lib/rt/pure/__release - local.get $56 - call $~lib/rt/pure/__release - local.get $57 - call $~lib/rt/pure/__release - local.get $58 - call $~lib/rt/pure/__release - local.get $59 - call $~lib/rt/pure/__release - local.get $60 - call $~lib/rt/pure/__release - local.get $61 - call $~lib/rt/pure/__release - local.get $62 - call $~lib/rt/pure/__release - local.get $63 - call $~lib/rt/pure/__release local.get $64 call $~lib/rt/pure/__release local.get $65 @@ -18396,8 +18836,6 @@ call $~lib/rt/pure/__release local.get $106 call $~lib/rt/pure/__release - local.get $107 - call $~lib/rt/pure/__release local.get $108 call $~lib/rt/pure/__release local.get $109 @@ -18452,159 +18890,215 @@ call $~lib/rt/pure/__release local.get $134 call $~lib/rt/pure/__release - local.get $135 + local.get $222 call $~lib/rt/pure/__release - local.get $136 + local.get $223 call $~lib/rt/pure/__release - local.get $137 + local.get $224 call $~lib/rt/pure/__release - local.get $138 + local.get $225 call $~lib/rt/pure/__release - local.get $139 + local.get $226 call $~lib/rt/pure/__release - local.get $140 + local.get $227 call $~lib/rt/pure/__release - local.get $141 + local.get $228 call $~lib/rt/pure/__release - local.get $142 + local.get $229 call $~lib/rt/pure/__release - local.get $143 + local.get $230 call $~lib/rt/pure/__release - local.get $144 + local.get $231 call $~lib/rt/pure/__release - local.get $145 + local.get $232 call $~lib/rt/pure/__release - local.get $146 + local.get $233 call $~lib/rt/pure/__release - local.get $147 + local.get $234 call $~lib/rt/pure/__release - local.get $148 + local.get $235 call $~lib/rt/pure/__release - local.get $149 + local.get $236 call $~lib/rt/pure/__release - local.get $150 + local.get $237 call $~lib/rt/pure/__release - local.get $151 + local.get $238 call $~lib/rt/pure/__release - local.get $152 + local.get $239 call $~lib/rt/pure/__release - local.get $153 + local.get $240 call $~lib/rt/pure/__release - local.get $154 + local.get $241 call $~lib/rt/pure/__release - local.get $155 + local.get $242 call $~lib/rt/pure/__release - local.get $156 + local.get $243 call $~lib/rt/pure/__release - local.get $157 + local.get $244 call $~lib/rt/pure/__release - local.get $158 + local.get $245 call $~lib/rt/pure/__release - local.get $159 + local.get $246 call $~lib/rt/pure/__release - local.get $160 + local.get $247 call $~lib/rt/pure/__release - local.get $161 + local.get $248 call $~lib/rt/pure/__release - local.get $162 + local.get $249 call $~lib/rt/pure/__release - local.get $163 + local.get $250 call $~lib/rt/pure/__release - local.get $164 + local.get $251 call $~lib/rt/pure/__release - local.get $165 + local.get $252 call $~lib/rt/pure/__release - local.get $166 + local.get $253 call $~lib/rt/pure/__release - local.get $167 + local.get $254 call $~lib/rt/pure/__release - local.get $168 + local.get $255 call $~lib/rt/pure/__release - local.get $169 + local.get $256 call $~lib/rt/pure/__release - local.get $170 + local.get $257 call $~lib/rt/pure/__release - local.get $171 + local.get $258 call $~lib/rt/pure/__release - local.get $172 + local.get $259 call $~lib/rt/pure/__release - local.get $173 + local.get $260 call $~lib/rt/pure/__release - local.get $174 + local.get $261 call $~lib/rt/pure/__release - local.get $175 + local.get $262 call $~lib/rt/pure/__release - local.get $176 + local.get $263 call $~lib/rt/pure/__release - local.get $177 + local.get $264 call $~lib/rt/pure/__release - local.get $178 + local.get $265 call $~lib/rt/pure/__release - local.get $179 + local.get $266 call $~lib/rt/pure/__release - local.get $180 + local.get $267 call $~lib/rt/pure/__release - local.get $181 + local.get $268 call $~lib/rt/pure/__release - local.get $182 + local.get $269 call $~lib/rt/pure/__release - local.get $183 + local.get $270 call $~lib/rt/pure/__release - local.get $184 + local.get $271 call $~lib/rt/pure/__release - local.get $185 + local.get $272 call $~lib/rt/pure/__release - local.get $186 + local.get $273 call $~lib/rt/pure/__release - local.get $187 + local.get $274 call $~lib/rt/pure/__release - local.get $188 + local.get $275 call $~lib/rt/pure/__release - local.get $189 + local.get $276 call $~lib/rt/pure/__release - local.get $190 + local.get $277 call $~lib/rt/pure/__release - local.get $191 + local.get $278 call $~lib/rt/pure/__release - local.get $192 + local.get $279 call $~lib/rt/pure/__release - local.get $193 + local.get $280 call $~lib/rt/pure/__release - local.get $194 + local.get $281 call $~lib/rt/pure/__release - local.get $195 + local.get $282 call $~lib/rt/pure/__release - local.get $196 + local.get $283 call $~lib/rt/pure/__release - local.get $197 + local.get $284 call $~lib/rt/pure/__release - local.get $198 + local.get $285 call $~lib/rt/pure/__release - local.get $199 + local.get $286 call $~lib/rt/pure/__release - local.get $200 + local.get $287 call $~lib/rt/pure/__release - local.get $201 + local.get $288 call $~lib/rt/pure/__release - local.get $202 + local.get $289 call $~lib/rt/pure/__release - local.get $203 + local.get $290 call $~lib/rt/pure/__release - local.get $204 + local.get $291 call $~lib/rt/pure/__release - local.get $205 + local.get $292 call $~lib/rt/pure/__release - local.get $206 + local.get $293 call $~lib/rt/pure/__release - local.get $207 + local.get $294 call $~lib/rt/pure/__release - local.get $208 + local.get $295 + call $~lib/rt/pure/__release + local.get $296 + call $~lib/rt/pure/__release + local.get $297 + call $~lib/rt/pure/__release + local.get $298 + call $~lib/rt/pure/__release + local.get $299 + call $~lib/rt/pure/__release + local.get $300 + call $~lib/rt/pure/__release + local.get $301 + call $~lib/rt/pure/__release + local.get $302 + call $~lib/rt/pure/__release + local.get $303 + call $~lib/rt/pure/__release + local.get $304 + call $~lib/rt/pure/__release + local.get $305 + call $~lib/rt/pure/__release + local.get $306 + call $~lib/rt/pure/__release + local.get $307 + call $~lib/rt/pure/__release + local.get $308 + call $~lib/rt/pure/__release + local.get $309 + call $~lib/rt/pure/__release + local.get $310 + call $~lib/rt/pure/__release + local.get $311 + call $~lib/rt/pure/__release + local.get $312 + call $~lib/rt/pure/__release + local.get $313 + call $~lib/rt/pure/__release + local.get $314 + call $~lib/rt/pure/__release + local.get $315 + call $~lib/rt/pure/__release + local.get $316 + call $~lib/rt/pure/__release + local.get $317 + call $~lib/rt/pure/__release + local.get $318 + call $~lib/rt/pure/__release + local.get $319 + call $~lib/rt/pure/__release + local.get $320 + call $~lib/rt/pure/__release + local.get $321 + call $~lib/rt/pure/__release + local.get $322 + call $~lib/rt/pure/__release + local.get $323 call $~lib/rt/pure/__release - local.get $209 + local.get $324 call $~lib/rt/pure/__release - local.get $210 + local.get $325 call $~lib/rt/pure/__release - local.get $211 + local.get $326 call $~lib/rt/pure/__release ) (func $std/string/getString (result i32) diff --git a/tests/compiler/std/symbol.untouched.wat b/tests/compiler/std/symbol.untouched.wat index 8cbadd9712..8e6f7c915d 100644 --- a/tests/compiler/std/symbol.untouched.wat +++ b/tests/compiler/std/symbol.untouched.wat @@ -66,6 +66,7 @@ (func $~lib/symbol/Symbol (param $0 i32) (result i32) (local $1 i32) (local $2 i32) + (local $3 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -82,10 +83,10 @@ unreachable end local.get $2 - local.set $1 + local.set $3 local.get $0 call $~lib/rt/stub/__release - local.get $1 + local.get $3 ) (func $~lib/rt/stub/maybeGrowMemory (param $0 i32) (local $1 i32) @@ -93,6 +94,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -123,8 +125,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -443,6 +445,8 @@ (func $~lib/map/Map<~lib/string/String,usize>#clear (param $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) local.get $0 local.tee $1 i32.const 0 @@ -460,15 +464,15 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $2 + local.tee $3 i32.const 0 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 + local.set $4 + local.get $3 i32.load offset=8 call $~lib/rt/stub/__release - local.get $1 + local.get $4 i32.store offset=8 local.get $0 i32.const 4 @@ -515,6 +519,8 @@ (func $~lib/map/Map#clear (param $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) local.get $0 local.tee $1 i32.const 0 @@ -532,15 +538,15 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $2 + local.tee $3 i32.const 0 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 + local.set $4 + local.get $3 i32.load offset=8 call $~lib/rt/stub/__release - local.get $1 + local.get $4 i32.store offset=8 local.get $0 i32.const 4 @@ -597,6 +603,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -638,10 +645,10 @@ end end local.get $1 - local.set $3 + local.set $5 local.get $0 call $~lib/rt/stub/__release - local.get $3 + local.get $5 ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) @@ -650,6 +657,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -721,33 +731,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $10 + local.get $12 return end local.get $5 @@ -762,16 +772,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -803,49 +816,50 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $6 ) (func $~lib/map/Map<~lib/string/String,usize>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) local.get $1 call $~lib/rt/stub/__retain local.set $1 @@ -897,14 +911,15 @@ end end i32.const 0 - local.set $4 + local.set $6 local.get $1 call $~lib/rt/stub/__release - local.get $4 + local.get $6 ) (func $~lib/map/Map<~lib/string/String,usize>#has (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) local.get $1 call $~lib/rt/stub/__retain local.set $1 @@ -927,15 +942,16 @@ call $~lib/map/Map<~lib/string/String,usize>#find i32.const 0 i32.ne - local.set $2 + local.set $4 local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $4 ) (func $~lib/map/Map<~lib/string/String,usize>#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $1 call $~lib/rt/stub/__retain local.set $1 @@ -971,10 +987,10 @@ end local.get $4 i32.load offset=4 - local.set $2 + local.set $5 local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $5 ) (func $~lib/map/Map<~lib/string/String,usize>#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -989,6 +1005,14 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) local.get $1 i32.const 1 i32.add @@ -1065,18 +1089,18 @@ end local.get $1 i32.and - local.set $12 + local.set $14 local.get $3 - local.get $12 + local.get $14 i32.const 4 i32.mul i32.add - local.set $13 + local.set $15 local.get $11 - local.get $13 + local.get $15 i32.load i32.store offset=8 - local.get $13 + local.get $15 local.get $8 i32.store local.get $8 @@ -1092,41 +1116,41 @@ end end local.get $0 - local.tee $11 + local.tee $16 local.get $3 - local.tee $12 - local.get $11 + local.tee $17 + local.get $16 i32.load - local.tee $9 + local.tee $18 i32.ne if - local.get $12 + local.get $17 call $~lib/rt/stub/__retain - local.set $12 - local.get $9 + local.set $17 + local.get $18 call $~lib/rt/stub/__release end - local.get $12 + local.get $17 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $13 + local.tee $19 local.get $5 - local.tee $9 - local.get $13 + local.tee $20 + local.get $19 i32.load offset=8 - local.tee $11 + local.tee $21 i32.ne if - local.get $9 + local.get $20 call $~lib/rt/stub/__retain - local.set $9 - local.get $11 + local.set $20 + local.get $21 call $~lib/rt/stub/__release end - local.get $9 + local.get $20 i32.store offset=8 local.get $0 local.get $4 @@ -1145,6 +1169,10 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) local.get $1 call $~lib/rt/stub/__retain local.set $1 @@ -1208,16 +1236,16 @@ local.get $0 i32.load offset=8 call $~lib/rt/stub/__retain - local.set $3 - local.get $3 + local.set $7 + local.get $7 local.get $0 local.get $0 i32.load offset=16 - local.tee $4 + local.tee $8 i32.const 1 i32.add i32.store offset=16 - local.get $4 + local.get $8 i32.const 12 i32.mul i32.add @@ -1244,23 +1272,23 @@ i32.const 4 i32.mul i32.add - local.set $4 + local.set $9 local.get $6 - local.get $4 + local.get $9 i32.load i32.store offset=8 - local.get $4 + local.get $9 local.get $6 i32.store - local.get $3 + local.get $7 call $~lib/rt/stub/__release end local.get $0 call $~lib/rt/stub/__retain - local.set $4 + local.set $10 local.get $1 call $~lib/rt/stub/__release - local.get $4 + local.get $10 ) (func $~lib/util/hash/hash32 (param $0 i32) (result i32) (local $1 i32) @@ -1365,6 +1393,13 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.const 1 i32.add @@ -1452,18 +1487,18 @@ end local.get $1 i32.and - local.set $12 + local.set $13 local.get $3 - local.get $12 + local.get $13 i32.const 4 i32.mul i32.add - local.set $13 + local.set $14 local.get $11 - local.get $13 + local.get $14 i32.load i32.store offset=8 - local.get $13 + local.get $14 local.get $8 i32.store local.get $8 @@ -1479,41 +1514,41 @@ end end local.get $0 - local.tee $11 + local.tee $15 local.get $3 - local.tee $12 - local.get $11 + local.tee $16 + local.get $15 i32.load - local.tee $9 + local.tee $17 i32.ne if - local.get $12 + local.get $16 call $~lib/rt/stub/__retain - local.set $12 - local.get $9 + local.set $16 + local.get $17 call $~lib/rt/stub/__release end - local.get $12 + local.get $16 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $13 + local.tee $18 local.get $5 - local.tee $9 - local.get $13 + local.tee $19 + local.get $18 i32.load offset=8 - local.tee $11 + local.tee $20 i32.ne if - local.get $9 + local.get $19 call $~lib/rt/stub/__retain - local.set $9 - local.get $11 + local.set $19 + local.get $20 call $~lib/rt/stub/__release end - local.get $9 + local.get $19 i32.store offset=8 local.get $0 local.get $4 @@ -1532,6 +1567,10 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) local.get $2 call $~lib/rt/stub/__retain local.set $2 @@ -1572,16 +1611,16 @@ drop local.get $5 i32.load offset=4 - local.set $3 + local.set $6 local.get $2 - local.get $3 + local.get $6 i32.ne if local.get $5 local.get $2 call $~lib/rt/stub/__retain i32.store offset=4 - local.get $3 + local.get $6 call $~lib/rt/stub/__release end else @@ -1617,16 +1656,16 @@ local.get $0 i32.load offset=8 call $~lib/rt/stub/__retain - local.set $3 - local.get $3 + local.set $7 + local.get $7 local.get $0 local.get $0 i32.load offset=16 - local.tee $6 + local.tee $8 i32.const 1 i32.add i32.store offset=16 - local.get $6 + local.get $8 i32.const 12 i32.mul i32.add @@ -1653,27 +1692,31 @@ i32.const 4 i32.mul i32.add - local.set $6 + local.set $9 local.get $5 - local.get $6 + local.get $9 i32.load i32.store offset=8 - local.get $6 + local.get $9 local.get $5 i32.store - local.get $3 + local.get $7 call $~lib/rt/stub/__release end local.get $0 call $~lib/rt/stub/__retain - local.set $6 + local.set $10 local.get $2 call $~lib/rt/stub/__release - local.get $6 + local.get $10 ) (func $~lib/symbol/_Symbol.for (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 call $~lib/rt/stub/__retain local.set $0 @@ -1689,10 +1732,10 @@ global.set $~lib/symbol/stringToId i32.const 0 call $~lib/map/Map#constructor - local.set $1 + local.set $2 global.get $~lib/symbol/idToString call $~lib/rt/stub/__release - local.get $1 + local.get $2 global.set $~lib/symbol/idToString else global.get $~lib/symbol/stringToId @@ -1702,40 +1745,40 @@ global.get $~lib/symbol/stringToId local.get $0 call $~lib/map/Map<~lib/string/String,usize>#get - local.set $1 + local.set $3 local.get $0 call $~lib/rt/stub/__release - local.get $1 + local.get $3 return end end global.get $~lib/symbol/nextId - local.tee $1 + local.tee $4 i32.const 1 i32.add global.set $~lib/symbol/nextId - local.get $1 - local.set $2 - local.get $2 + local.get $4 + local.set $5 + local.get $5 i32.eqz if unreachable end global.get $~lib/symbol/stringToId local.get $0 - local.get $2 + local.get $5 call $~lib/map/Map<~lib/string/String,usize>#set call $~lib/rt/stub/__release global.get $~lib/symbol/idToString - local.get $2 + local.get $5 local.get $0 call $~lib/map/Map#set call $~lib/rt/stub/__release - local.get $2 - local.set $1 + local.get $5 + local.set $6 local.get $0 call $~lib/rt/stub/__release - local.get $1 + local.get $6 ) (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1841,6 +1884,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -1860,11 +1985,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -1884,8 +2009,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -1994,17 +2119,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -2021,16 +2146,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -2040,45 +2165,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -2089,8 +2214,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -2175,31 +2300,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -2210,8 +2335,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -2296,17 +2421,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -2317,8 +2442,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -2405,227 +2530,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -2634,115 +2759,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -2751,59 +2876,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -2812,31 +2937,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -2845,17 +2970,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -2866,6 +2991,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -2943,11 +3076,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -2957,8 +3090,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -2982,21 +3115,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -3025,8 +3158,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -3051,8 +3184,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -3072,8 +3205,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -3099,6 +3232,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $1 call $~lib/rt/stub/__retain local.set $1 @@ -3141,32 +3276,32 @@ if i32.const 336 call $~lib/rt/stub/__retain - local.set $2 + local.set $7 local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $7 return end local.get $6 i32.const 1 call $~lib/rt/stub/__alloc call $~lib/rt/stub/__retain - local.set $7 - local.get $7 + local.set $8 + local.get $8 local.get $0 local.get $4 call $~lib/memory/memory.copy - local.get $7 + local.get $8 local.get $4 i32.add local.get $1 local.get $5 call $~lib/memory/memory.copy - local.get $7 - local.set $2 + local.get $8 + local.set $9 local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $9 ) (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3197,6 +3332,19 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 local.set $1 i32.const 336 @@ -3263,90 +3411,90 @@ br $case11|0 end i32.const 352 - local.set $3 + local.set $4 local.get $2 call $~lib/rt/stub/__release - local.get $3 + local.get $4 local.set $2 br $break|0 end i32.const 400 - local.set $3 + local.set $5 local.get $2 call $~lib/rt/stub/__release - local.get $3 + local.get $5 local.set $2 br $break|0 end i32.const 464 - local.set $3 + local.set $6 local.get $2 call $~lib/rt/stub/__release - local.get $3 + local.get $6 local.set $2 br $break|0 end i32.const 496 - local.set $3 + local.set $7 local.get $2 call $~lib/rt/stub/__release - local.get $3 + local.get $7 local.set $2 br $break|0 end i32.const 528 - local.set $3 + local.set $8 local.get $2 call $~lib/rt/stub/__release - local.get $3 + local.get $8 local.set $2 br $break|0 end i32.const 560 - local.set $3 + local.set $9 local.get $2 call $~lib/rt/stub/__release - local.get $3 + local.get $9 local.set $2 br $break|0 end i32.const 592 - local.set $3 + local.set $10 local.get $2 call $~lib/rt/stub/__release - local.get $3 + local.get $10 local.set $2 br $break|0 end i32.const 624 - local.set $3 + local.set $11 local.get $2 call $~lib/rt/stub/__release - local.get $3 + local.get $11 local.set $2 br $break|0 end i32.const 656 - local.set $3 + local.set $12 local.get $2 call $~lib/rt/stub/__release - local.get $3 + local.get $12 local.set $2 br $break|0 end i32.const 704 - local.set $3 + local.set $13 local.get $2 call $~lib/rt/stub/__release - local.get $3 + local.get $13 local.set $2 br $break|0 end i32.const 752 - local.set $3 + local.set $14 local.get $2 call $~lib/rt/stub/__release - local.get $3 + local.get $14 local.set $2 br $break|0 end @@ -3364,10 +3512,10 @@ global.get $~lib/symbol/idToString local.get $1 call $~lib/map/Map#get - local.set $3 + local.set $15 local.get $2 call $~lib/rt/stub/__release - local.get $3 + local.get $15 local.set $2 end br $break|0 @@ -3375,22 +3523,24 @@ i32.const 800 local.get $2 call $~lib/string/String.__concat - local.tee $3 + local.tee $16 i32.const 864 call $~lib/string/String.__concat - local.tee $4 - local.set $5 - local.get $3 + local.tee $17 + local.set $18 + local.get $16 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $5 + local.get $18 ) (func $start:std/symbol (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) i32.const 32 call $~lib/symbol/Symbol global.set $std/symbol/sym1 @@ -3484,9 +3634,9 @@ global.set $std/symbol/key3 global.get $std/symbol/sym4 call $~lib/symbol/_Symbol.keyFor - local.tee $0 + local.tee $1 if (result i32) - local.get $0 + local.get $1 else i32.const 0 i32.const 64 @@ -3524,7 +3674,7 @@ i32.const 0 call $~lib/symbol/Symbol call $~lib/symbol/_Symbol#toString - local.tee $0 + local.tee $2 i32.const 896 call $~lib/string/String.__eq i32.eqz @@ -3538,7 +3688,7 @@ end global.get $std/symbol/sym3 call $~lib/symbol/_Symbol#toString - local.tee $1 + local.tee $3 i32.const 928 call $~lib/string/String.__eq i32.eqz @@ -3556,7 +3706,7 @@ global.set $std/symbol/isConcatSpreadable global.get $std/symbol/hasInstance call $~lib/symbol/_Symbol#toString - local.tee $2 + local.tee $4 i32.const 976 call $~lib/string/String.__eq i32.eqz @@ -3570,7 +3720,7 @@ end global.get $std/symbol/isConcatSpreadable call $~lib/symbol/_Symbol#toString - local.tee $3 + local.tee $5 i32.const 1040 call $~lib/string/String.__eq i32.eqz @@ -3586,14 +3736,14 @@ drop global.get $~lib/symbol/_Symbol.isConcatSpreadable drop - local.get $0 - call $~lib/rt/stub/__release - local.get $1 - call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release local.get $3 call $~lib/rt/stub/__release + local.get $4 + call $~lib/rt/stub/__release + local.get $5 + call $~lib/rt/stub/__release ) (func $~start call $start:std/symbol diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 143daff047..2a2fd29b13 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -2500,27 +2500,27 @@ local.get $1 i32.const 1 i32.sub - local.set $3 + local.set $2 loop $for-loop|0 - local.get $3 + local.get $2 i32.const 0 i32.gt_s if - local.get $3 - local.set $2 + local.get $2 + local.set $3 loop $while-continue|1 - local.get $2 + local.get $3 i32.const 1 i32.and local.get $5 - local.get $2 + local.get $3 i32.const 6 i32.shr_u i32.const 2 i32.shl i32.add i32.load - local.get $2 + local.get $3 i32.const 1 i32.shr_s i32.const 31 @@ -2530,25 +2530,25 @@ i32.and i32.eq if - local.get $2 + local.get $3 i32.const 1 i32.shr_s - local.set $2 + local.set $3 br $while-continue|1 end end local.get $0 - local.get $2 + local.get $3 i32.const 1 i32.shr_s - local.tee $2 + local.tee $3 i32.const 3 i32.shl i32.add f64.load local.set $4 local.get $0 - local.get $3 + local.get $2 i32.const 3 i32.shl i32.add @@ -2563,7 +2563,7 @@ i32.lt_s if local.get $5 - local.get $3 + local.get $2 i32.const 5 i32.shr_u i32.const 2 @@ -2573,31 +2573,31 @@ local.get $7 i32.load i32.const 1 - local.get $3 + local.get $2 i32.const 31 i32.and i32.shl i32.xor i32.store local.get $0 - local.get $3 + local.get $2 i32.const 3 i32.shl i32.add local.get $4 f64.store local.get $0 - local.get $2 + local.get $3 i32.const 3 i32.shl i32.add local.get $6 f64.store end - local.get $3 + local.get $2 i32.const 1 i32.sub - local.set $3 + local.set $2 br $for-loop|0 end end @@ -8268,22 +8268,23 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) i32.const 2812 i32.load local.tee $1 call $~lib/typedarray/Int8Array#constructor - local.tee $4 - local.set $2 - local.get $1 - call $~lib/typedarray/Int8Array#constructor local.tee $5 local.set $3 + local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $6 + local.set $4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2800 local.get $0 @@ -8293,7 +8294,7 @@ i32.const 24 i32.shr_s call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $4 local.get $0 i32.const 2800 local.get $0 @@ -8310,24 +8311,22 @@ br $for-loop|0 end end - local.get $2 + local.get $3 call $~lib/typedarray/Int8Array#reverse call $~lib/rt/pure/__release - i32.const 0 - local.set $0 loop $for-loop|1 - local.get $0 + local.get $2 local.get $1 i32.lt_s if + local.get $3 local.get $2 - local.get $0 call $~lib/typedarray/Int8Array#__get i32.const 2800 local.get $1 i32.const 1 i32.sub - local.get $0 + local.get $2 i32.sub call $~lib/array/Array#__get i32.const 24 @@ -8343,14 +8342,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $3 + local.get $4 i32.const 4 i32.const 8 call $~lib/typedarray/Int8Array#subarray @@ -8408,10 +8407,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -8535,22 +8534,23 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) i32.const 2812 i32.load local.tee $1 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 - local.set $2 - local.get $1 - call $~lib/typedarray/Uint8Array#constructor local.tee $5 local.set $3 + local.get $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $6 + local.set $4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2800 local.get $0 @@ -8558,7 +8558,7 @@ i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $4 local.get $0 i32.const 2800 local.get $0 @@ -8573,24 +8573,22 @@ br $for-loop|0 end end - local.get $2 + local.get $3 call $~lib/typedarray/Uint8Array#reverse call $~lib/rt/pure/__release - i32.const 0 - local.set $0 loop $for-loop|1 - local.get $0 + local.get $2 local.get $1 i32.lt_s if + local.get $3 local.get $2 - local.get $0 call $~lib/typedarray/Uint8Array#__get i32.const 2800 local.get $1 i32.const 1 i32.sub - local.get $0 + local.get $2 i32.sub call $~lib/array/Array#__get i32.const 255 @@ -8604,14 +8602,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $3 + local.get $4 i32.const 8 call $~lib/typedarray/Uint8Array#subarray local.tee $1 @@ -8668,10 +8666,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -8745,22 +8743,23 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) i32.const 2812 i32.load local.tee $1 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 - local.set $2 - local.get $1 - call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $5 local.set $3 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $6 + local.set $4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2800 local.get $0 @@ -8768,7 +8767,7 @@ i32.const 255 i32.and call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $4 local.get $0 i32.const 2800 local.get $0 @@ -8783,24 +8782,22 @@ br $for-loop|0 end end - local.get $2 + local.get $3 call $~lib/typedarray/Uint8Array#reverse call $~lib/rt/pure/__release - i32.const 0 - local.set $0 loop $for-loop|1 - local.get $0 + local.get $2 local.get $1 i32.lt_s if + local.get $3 local.get $2 - local.get $0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2800 local.get $1 i32.const 1 i32.sub - local.get $0 + local.get $2 i32.sub call $~lib/array/Array#__get i32.const 255 @@ -8814,14 +8811,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $3 + local.get $4 i32.const 8 call $~lib/typedarray/Uint8ClampedArray#subarray local.tee $1 @@ -8878,10 +8875,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -9017,22 +9014,23 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) i32.const 2812 i32.load local.tee $1 call $~lib/typedarray/Int16Array#constructor - local.tee $4 - local.set $2 - local.get $1 - call $~lib/typedarray/Int16Array#constructor local.tee $5 local.set $3 + local.get $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $6 + local.set $4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2800 local.get $0 @@ -9042,7 +9040,7 @@ i32.const 16 i32.shr_s call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $4 local.get $0 i32.const 2800 local.get $0 @@ -9059,24 +9057,22 @@ br $for-loop|0 end end - local.get $2 + local.get $3 call $~lib/typedarray/Int16Array#reverse call $~lib/rt/pure/__release - i32.const 0 - local.set $0 loop $for-loop|1 - local.get $0 + local.get $2 local.get $1 i32.lt_s if + local.get $3 local.get $2 - local.get $0 call $~lib/typedarray/Int16Array#__get i32.const 2800 local.get $1 i32.const 1 i32.sub - local.get $0 + local.get $2 i32.sub call $~lib/array/Array#__get i32.const 16 @@ -9092,14 +9088,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $3 + local.get $4 i32.const 8 call $~lib/typedarray/Int16Array#subarray local.tee $1 @@ -9156,10 +9152,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -9295,22 +9291,23 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) i32.const 2812 i32.load local.tee $1 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 - local.set $2 - local.get $1 - call $~lib/typedarray/Uint16Array#constructor local.tee $5 local.set $3 + local.get $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $6 + local.set $4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2800 local.get $0 @@ -9318,7 +9315,7 @@ i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $4 local.get $0 i32.const 2800 local.get $0 @@ -9333,24 +9330,22 @@ br $for-loop|0 end end - local.get $2 + local.get $3 call $~lib/typedarray/Uint16Array#reverse call $~lib/rt/pure/__release - i32.const 0 - local.set $0 loop $for-loop|1 - local.get $0 + local.get $2 local.get $1 i32.lt_s if + local.get $3 local.get $2 - local.get $0 call $~lib/typedarray/Uint16Array#__get i32.const 2800 local.get $1 i32.const 1 i32.sub - local.get $0 + local.get $2 i32.sub call $~lib/array/Array#__get i32.const 65535 @@ -9364,14 +9359,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $3 + local.get $4 i32.const 8 call $~lib/typedarray/Uint16Array#subarray local.tee $1 @@ -9428,10 +9423,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -9500,28 +9495,29 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) i32.const 2812 i32.load local.tee $1 call $~lib/typedarray/Int32Array#constructor - local.tee $4 - local.set $2 - local.get $1 - call $~lib/typedarray/Int32Array#constructor local.tee $5 local.set $3 + local.get $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 + local.set $4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2800 local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $4 local.get $0 i32.const 2800 local.get $0 @@ -9534,24 +9530,22 @@ br $for-loop|0 end end - local.get $2 + local.get $3 call $~lib/typedarray/Int32Array#reverse call $~lib/rt/pure/__release - i32.const 0 - local.set $0 loop $for-loop|1 - local.get $0 + local.get $2 local.get $1 i32.lt_s if + local.get $3 local.get $2 - local.get $0 call $~lib/typedarray/Int32Array#__get i32.const 2800 local.get $1 i32.const 1 i32.sub - local.get $0 + local.get $2 i32.sub call $~lib/array/Array#__get i32.ne @@ -9563,14 +9557,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $3 + local.get $4 i32.const 4 i32.const 8 call $~lib/typedarray/Int32Array#subarray @@ -9628,10 +9622,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -9711,28 +9705,29 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) i32.const 2812 i32.load local.tee $1 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 - local.set $2 - local.get $1 - call $~lib/typedarray/Uint32Array#constructor local.tee $5 local.set $3 + local.get $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $6 + local.set $4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2800 local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $4 local.get $0 i32.const 2800 local.get $0 @@ -9745,24 +9740,22 @@ br $for-loop|0 end end - local.get $2 + local.get $3 call $~lib/typedarray/Int32Array#reverse call $~lib/rt/pure/__release - i32.const 0 - local.set $0 loop $for-loop|1 - local.get $0 + local.get $2 local.get $1 i32.lt_s if + local.get $3 local.get $2 - local.get $0 call $~lib/typedarray/Uint32Array#__get i32.const 2800 local.get $1 i32.const 1 i32.sub - local.get $0 + local.get $2 i32.sub call $~lib/array/Array#__get i32.ne @@ -9774,14 +9767,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $3 + local.get $4 i32.const 8 call $~lib/typedarray/Uint32Array#subarray local.tee $1 @@ -9838,10 +9831,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -9977,29 +9970,30 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) i32.const 2812 i32.load local.tee $1 call $~lib/typedarray/Int64Array#constructor - local.tee $4 - local.set $2 - local.get $1 - call $~lib/typedarray/Int64Array#constructor local.tee $5 local.set $3 + local.get $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + local.set $4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2800 local.get $0 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $4 local.get $0 i32.const 2800 local.get $0 @@ -10013,24 +10007,22 @@ br $for-loop|0 end end - local.get $2 + local.get $3 call $~lib/typedarray/Int64Array#reverse call $~lib/rt/pure/__release - i32.const 0 - local.set $0 loop $for-loop|1 - local.get $0 + local.get $2 local.get $1 i32.lt_s if + local.get $3 local.get $2 - local.get $0 call $~lib/typedarray/Int64Array#__get i32.const 2800 local.get $1 i32.const 1 i32.sub - local.get $0 + local.get $2 i32.sub call $~lib/array/Array#__get i64.extend_i32_s @@ -10043,14 +10035,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $3 + local.get $4 i32.const 8 call $~lib/typedarray/Int64Array#subarray local.tee $1 @@ -10107,10 +10099,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -10190,29 +10182,30 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) i32.const 2812 i32.load local.tee $1 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 - local.set $2 - local.get $1 - call $~lib/typedarray/Uint64Array#constructor local.tee $5 local.set $3 + local.get $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $6 + local.set $4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2800 local.get $0 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $4 local.get $0 i32.const 2800 local.get $0 @@ -10226,24 +10219,22 @@ br $for-loop|0 end end - local.get $2 + local.get $3 call $~lib/typedarray/Int64Array#reverse call $~lib/rt/pure/__release - i32.const 0 - local.set $0 loop $for-loop|1 - local.get $0 + local.get $2 local.get $1 i32.lt_s if + local.get $3 local.get $2 - local.get $0 call $~lib/typedarray/Uint64Array#__get i32.const 2800 local.get $1 i32.const 1 i32.sub - local.get $0 + local.get $2 i32.sub call $~lib/array/Array#__get i64.extend_i32_s @@ -10256,14 +10247,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $3 + local.get $4 i32.const 8 call $~lib/typedarray/Uint64Array#subarray local.tee $1 @@ -10320,10 +10311,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -10459,29 +10450,30 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) i32.const 2812 i32.load local.tee $1 call $~lib/typedarray/Float32Array#constructor - local.tee $4 - local.set $2 - local.get $1 - call $~lib/typedarray/Float32Array#constructor local.tee $5 local.set $3 + local.get $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $6 + local.set $4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2800 local.get $0 call $~lib/array/Array#__get f32.convert_i32_s call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $4 local.get $0 i32.const 2800 local.get $0 @@ -10495,24 +10487,22 @@ br $for-loop|0 end end - local.get $2 + local.get $3 call $~lib/typedarray/Float32Array#reverse call $~lib/rt/pure/__release - i32.const 0 - local.set $0 loop $for-loop|1 - local.get $0 + local.get $2 local.get $1 i32.lt_s if + local.get $3 local.get $2 - local.get $0 call $~lib/typedarray/Float32Array#__get i32.const 2800 local.get $1 i32.const 1 i32.sub - local.get $0 + local.get $2 i32.sub call $~lib/array/Array#__get f32.convert_i32_s @@ -10525,14 +10515,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $3 + local.get $4 i32.const 8 call $~lib/typedarray/Float32Array#subarray local.tee $1 @@ -10589,10 +10579,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -10661,29 +10651,30 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) i32.const 2812 i32.load local.tee $1 call $~lib/typedarray/Float64Array#constructor - local.tee $4 - local.set $2 - local.get $1 - call $~lib/typedarray/Float64Array#constructor local.tee $5 local.set $3 + local.get $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $6 + local.set $4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2800 local.get $0 call $~lib/array/Array#__get f64.convert_i32_s call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $4 local.get $0 i32.const 2800 local.get $0 @@ -10697,24 +10688,22 @@ br $for-loop|0 end end - local.get $2 + local.get $3 call $~lib/typedarray/Float64Array#reverse call $~lib/rt/pure/__release - i32.const 0 - local.set $0 loop $for-loop|1 - local.get $0 + local.get $2 local.get $1 i32.lt_s if + local.get $3 local.get $2 - local.get $0 call $~lib/typedarray/Float64Array#__get i32.const 2800 local.get $1 i32.const 1 i32.sub - local.get $0 + local.get $2 i32.sub call $~lib/array/Array#__get f64.convert_i32_s @@ -10727,14 +10716,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $3 + local.get $4 i32.const 4 i32.const 8 call $~lib/typedarray/Float64Array#subarray @@ -10792,10 +10781,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -18367,8 +18356,6 @@ global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $8 - local.set $1 local.get $9 i32.const 0 local.get $4 @@ -18379,7 +18366,7 @@ i32.add i64.load32_u i64.mul - local.set $3 + local.set $1 local.get $0 local.get $6 i32.const 1 @@ -18392,30 +18379,30 @@ local.set $4 loop $while-continue|6 i32.const 1 - local.get $3 local.get $1 + local.get $8 i64.sub - local.get $1 + local.get $8 local.get $11 i64.add - local.get $3 + local.get $1 i64.sub i64.gt_u - local.get $1 + local.get $8 local.get $11 i64.add - local.get $3 + local.get $1 i64.lt_u select i32.const 0 local.get $5 - local.get $1 + local.get $8 i64.sub local.get $11 i64.ge_u i32.const 0 + local.get $8 local.get $1 - local.get $3 i64.lt_u select select @@ -18424,10 +18411,10 @@ i32.const 1 i32.sub local.set $4 - local.get $1 + local.get $8 local.get $11 i64.add - local.set $1 + local.set $8 br $while-continue|6 end end diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index 595131540d..be92f04f56 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -247,6 +247,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -383,59 +392,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -465,6 +474,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -527,8 +550,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -539,16 +562,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -566,18 +589,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -589,7 +612,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -602,23 +625,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -632,14 +655,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -659,7 +682,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -677,24 +700,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -702,21 +725,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -732,86 +755,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -822,6 +845,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -961,11 +985,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -985,6 +1009,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -1041,66 +1071,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -1113,11 +1143,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -1166,6 +1196,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1239,11 +1277,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1254,10 +1292,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1270,30 +1308,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1304,45 +1342,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1351,6 +1389,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1397,15 +1436,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1419,12 +1458,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1434,6 +1473,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1498,11 +1539,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1510,11 +1551,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -2854,6 +2895,16 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -2880,11 +2931,11 @@ select else local.get $4 - local.tee $7 + local.tee $9 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $10 + local.get $9 + local.get $10 i32.lt_s select end @@ -2896,43 +2947,43 @@ local.get $6 local.get $3 i32.add - local.tee $7 + local.tee $11 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 + local.tee $12 + local.get $11 + local.get $12 i32.gt_s select else local.get $3 - local.tee $7 + local.tee $13 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $14 + local.get $13 + local.get $14 i32.lt_s select end local.set $3 local.get $3 - local.tee $7 + local.tee $15 local.get $4 - local.tee $8 - local.get $7 - local.get $8 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select local.set $3 i32.const 12 i32.const 8 call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 + local.set $17 + local.get $17 local.get $5 i32.load call $~lib/rt/pure/__retain i32.store - local.get $7 + local.get $17 local.get $5 i32.load offset=4 local.get $4 @@ -2940,19 +2991,19 @@ i32.shl i32.add i32.store offset=4 - local.get $7 + local.get $17 local.get $3 local.get $4 i32.sub i32.const 2 i32.shl i32.store offset=8 - local.get $7 + local.get $17 call $~lib/rt/pure/__retain - local.set $8 + local.set $18 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $18 ) (func $~lib/typedarray/Float64Array#__set (param $0 i32) (param $1 i32) (param $2 f64) local.get $1 @@ -2985,6 +3036,16 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -3011,11 +3072,11 @@ select else local.get $4 - local.tee $7 + local.tee $9 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $10 + local.get $9 + local.get $10 i32.lt_s select end @@ -3027,43 +3088,43 @@ local.get $6 local.get $3 i32.add - local.tee $7 + local.tee $11 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 + local.tee $12 + local.get $11 + local.get $12 i32.gt_s select else local.get $3 - local.tee $7 + local.tee $13 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $14 + local.get $13 + local.get $14 i32.lt_s select end local.set $3 local.get $3 - local.tee $7 + local.tee $15 local.get $4 - local.tee $8 - local.get $7 - local.get $8 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select local.set $3 i32.const 12 i32.const 13 call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 + local.set $17 + local.get $17 local.get $5 i32.load call $~lib/rt/pure/__retain i32.store - local.get $7 + local.get $17 local.get $5 i32.load offset=4 local.get $4 @@ -3071,19 +3132,19 @@ i32.shl i32.add i32.store offset=4 - local.get $7 + local.get $17 local.get $3 local.get $4 i32.sub i32.const 3 i32.shl i32.store offset=8 - local.get $7 + local.get $17 call $~lib/rt/pure/__retain - local.set $8 + local.set $18 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $18 ) (func $~setArgumentsLength (param $0 i32) local.get $0 @@ -3258,10 +3319,18 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f64) + (local $9 i32) (local $10 f64) - (local $11 i32) - (local $12 f64) + (local $11 f64) + (local $12 i32) + (local $13 i32) + (local $14 f64) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 f64) + (local $20 f64) local.get $1 i32.const 31 i32.add @@ -3325,23 +3394,23 @@ local.get $7 i32.const 1 i32.shr_s - local.set $8 + local.set $9 local.get $0 - local.get $8 + local.get $9 i32.const 3 i32.shl i32.add f64.load - local.set $9 + local.set $10 local.get $0 local.get $5 i32.const 3 i32.shl i32.add f64.load - local.set $10 - local.get $9 + local.set $11 local.get $10 + local.get $11 i32.const 2 global.set $~argumentsLength local.get $2 @@ -3376,14 +3445,14 @@ i32.const 3 i32.shl i32.add - local.get $9 + local.get $10 f64.store local.get $0 - local.get $8 + local.get $9 i32.const 3 i32.shl i32.add - local.get $10 + local.get $11 f64.store end local.get $5 @@ -3396,83 +3465,83 @@ local.get $1 i32.const 1 i32.sub - local.set $5 + local.set $12 loop $for-loop|2 - local.get $5 + local.get $12 i32.const 2 i32.ge_s - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $0 f64.load - local.set $10 + local.set $14 local.get $0 local.get $0 - local.get $5 + local.get $12 i32.const 3 i32.shl i32.add f64.load f64.store local.get $0 - local.get $5 + local.get $12 i32.const 3 i32.shl i32.add - local.get $10 + local.get $14 f64.store i32.const 1 - local.set $8 + local.set $15 loop $while-continue|3 - local.get $8 + local.get $15 i32.const 1 i32.shl local.get $4 - local.get $8 + local.get $15 i32.const 5 i32.shr_u i32.const 2 i32.shl i32.add i32.load - local.get $8 + local.get $15 i32.const 31 i32.and i32.shr_u i32.const 1 i32.and i32.add - local.tee $7 - local.get $5 + local.tee $16 + local.get $12 i32.lt_s - local.set $11 - local.get $11 + local.set $17 + local.get $17 if - local.get $7 - local.set $8 + local.get $16 + local.set $15 br $while-continue|3 end end loop $while-continue|4 - local.get $8 + local.get $15 i32.const 0 i32.gt_s - local.set $11 - local.get $11 + local.set $18 + local.get $18 if local.get $0 f64.load - local.set $10 + local.set $14 local.get $0 - local.get $8 + local.get $15 i32.const 3 i32.shl i32.add f64.load - local.set $9 - local.get $10 - local.get $9 + local.set $19 + local.get $14 + local.get $19 i32.const 2 global.set $~argumentsLength local.get $2 @@ -3481,14 +3550,14 @@ i32.lt_s if local.get $4 - local.get $8 + local.get $15 i32.const 5 i32.shr_u i32.const 2 i32.shl i32.add local.get $4 - local.get $8 + local.get $15 i32.const 5 i32.shr_u i32.const 2 @@ -3496,34 +3565,34 @@ i32.add i32.load i32.const 1 - local.get $8 + local.get $15 i32.const 31 i32.and i32.shl i32.xor i32.store local.get $0 - local.get $8 + local.get $15 i32.const 3 i32.shl i32.add - local.get $10 + local.get $14 f64.store local.get $0 - local.get $9 + local.get $19 f64.store end - local.get $8 + local.get $15 i32.const 1 i32.shr_s - local.set $8 + local.set $15 br $while-continue|4 end end - local.get $5 + local.get $12 i32.const 1 i32.sub - local.set $5 + local.set $12 br $for-loop|2 end end @@ -3531,13 +3600,13 @@ call $~lib/rt/tlsf/__free local.get $0 f64.load offset=8 - local.set $12 + local.set $20 local.get $0 local.get $0 f64.load f64.store offset=8 local.get $0 - local.get $12 + local.get $20 f64.store ) (func $~lib/typedarray/Float64Array#sort (param $0 i32) (param $1 i32) (result i32) @@ -3786,6 +3855,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $0 call $~lib/rt/pure/__retain local.set $7 @@ -3817,11 +3892,11 @@ select else local.get $5 - local.tee $10 + local.tee $12 local.get $9 - local.tee $11 - local.get $10 - local.get $11 + local.tee $13 + local.get $12 + local.get $13 i32.lt_s select end @@ -3833,20 +3908,20 @@ local.get $9 local.get $4 i32.add - local.tee $10 + local.tee $14 i32.const 0 - local.tee $11 - local.get $10 - local.get $11 + local.tee $15 + local.get $14 + local.get $15 i32.gt_s select else local.get $4 - local.tee $10 + local.tee $16 local.get $9 - local.tee $11 - local.get $10 - local.get $11 + local.tee $17 + local.get $16 + local.get $17 i32.lt_s select end @@ -3875,6 +3950,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -3894,11 +4051,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -3918,8 +4075,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -4028,17 +4185,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -4055,16 +4212,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -4074,45 +4231,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -4123,8 +4280,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -4209,31 +4366,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -4244,8 +4401,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -4330,17 +4487,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -4351,8 +4508,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -4439,227 +4596,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -4668,115 +4825,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -4785,59 +4942,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -4846,31 +5003,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -4879,17 +5036,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -4900,6 +5057,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -4977,11 +5142,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -4991,8 +5156,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -5016,21 +5181,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -5059,8 +5224,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -5085,8 +5250,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -5106,8 +5271,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -5232,6 +5397,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -5254,48 +5421,48 @@ return end i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/typedarray/Int8Array#get:length - local.set $3 + local.set $4 loop $for-loop|0 - local.get $2 local.get $3 - i32.lt_s - local.set $4 local.get $4 + i32.lt_s + local.set $5 + local.get $5 if local.get $0 - local.get $2 + local.get $3 call $~lib/typedarray/Int8Array#__get local.get $1 - local.get $2 + local.get $3 call $~lib/array/Array#__get i32.ne if i32.const 0 - local.set $5 + local.set $6 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end i32.const 1 - local.set $3 + local.set $7 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $7 ) (func $~lib/typedarray/Int8Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -5304,6 +5471,16 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -5330,11 +5507,11 @@ select else local.get $4 - local.tee $7 + local.tee $9 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $10 + local.get $9 + local.get $10 i32.lt_s select end @@ -5346,43 +5523,43 @@ local.get $6 local.get $3 i32.add - local.tee $7 + local.tee $11 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 + local.tee $12 + local.get $11 + local.get $12 i32.gt_s select else local.get $3 - local.tee $7 + local.tee $13 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $14 + local.get $13 + local.get $14 i32.lt_s select end local.set $3 local.get $3 - local.tee $7 + local.tee $15 local.get $4 - local.tee $8 - local.get $7 - local.get $8 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select local.set $3 i32.const 12 i32.const 3 call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 + local.set $17 + local.get $17 local.get $5 i32.load call $~lib/rt/pure/__retain i32.store - local.get $7 + local.get $17 local.get $5 i32.load offset=4 local.get $4 @@ -5390,19 +5567,19 @@ i32.shl i32.add i32.store offset=4 - local.get $7 + local.get $17 local.get $3 local.get $4 i32.sub i32.const 0 i32.shl i32.store offset=8 - local.get $7 + local.get $17 call $~lib/rt/pure/__retain - local.set $8 + local.set $18 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $18 ) (func $~lib/typedarray/Int32Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) @@ -5413,6 +5590,13 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 call $~lib/rt/pure/__retain local.set $7 @@ -5444,11 +5628,11 @@ select else local.get $5 - local.tee $10 + local.tee $12 local.get $9 - local.tee $11 - local.get $10 - local.get $11 + local.tee $13 + local.get $12 + local.get $13 i32.lt_s select end @@ -5460,20 +5644,20 @@ local.get $9 local.get $4 i32.add - local.tee $10 + local.tee $14 i32.const 0 - local.tee $11 - local.get $10 - local.get $11 + local.tee $15 + local.get $14 + local.get $15 i32.gt_s select else local.get $4 - local.tee $10 + local.tee $16 local.get $9 - local.tee $11 - local.get $10 - local.get $11 + local.tee $17 + local.get $16 + local.get $17 i32.lt_s select end @@ -5486,8 +5670,8 @@ local.get $5 local.get $4 i32.lt_s - local.set $10 - local.get $10 + local.set $18 + local.get $18 if local.get $8 local.get $5 @@ -5545,6 +5729,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -5567,48 +5753,48 @@ return end i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $3 + local.set $4 loop $for-loop|0 - local.get $2 local.get $3 - i32.lt_s - local.set $4 local.get $4 + i32.lt_s + local.set $5 + local.get $5 if local.get $0 - local.get $2 + local.get $3 call $~lib/typedarray/Int32Array#__get local.get $1 - local.get $2 + local.get $3 call $~lib/array/Array#__get i32.ne if i32.const 0 - local.set $5 + local.set $6 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end i32.const 1 - local.set $3 + local.set $7 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $7 ) (func $~lib/typedarray/Int32Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -5618,6 +5804,16 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -5644,11 +5840,11 @@ select else local.get $4 - local.tee $7 + local.tee $9 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $10 + local.get $9 + local.get $10 i32.lt_s select end @@ -5660,20 +5856,20 @@ local.get $3 local.get $6 i32.add - local.tee $7 + local.tee $11 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 + local.tee $12 + local.get $11 + local.get $12 i32.gt_s select else local.get $3 - local.tee $7 + local.tee $13 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $14 + local.get $13 + local.get $14 i32.lt_s select end @@ -5681,21 +5877,21 @@ local.get $3 local.get $4 i32.sub - local.tee $7 + local.tee $15 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select local.set $6 i32.const 0 local.get $6 call $~lib/typedarray/Int32Array#constructor - local.tee $7 + local.tee $17 call $~lib/rt/pure/__retain - local.set $8 - local.get $8 + local.set $18 + local.get $18 i32.load offset=4 local.get $5 i32.load offset=4 @@ -5707,13 +5903,13 @@ i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $8 - local.set $9 + local.get $18 + local.set $19 local.get $5 call $~lib/rt/pure/__release - local.get $7 + local.get $17 call $~lib/rt/pure/__release - local.get $9 + local.get $19 ) (func $~lib/typedarray/Int32Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) @@ -5727,6 +5923,21 @@ (local $12 i32) (local $13 i32) (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) local.get $0 call $~lib/rt/pure/__retain local.set $7 @@ -5758,24 +5969,24 @@ local.get $8 local.get $6 i32.add - local.tee $10 + local.tee $12 i32.const 0 - local.tee $11 - local.get $10 - local.get $11 + local.tee $13 + local.get $12 + local.get $13 i32.gt_s select else local.get $6 - local.tee $10 + local.tee $14 local.get $8 - local.tee $11 - local.get $10 - local.get $11 + local.tee $15 + local.get $14 + local.get $15 i32.lt_s select end - local.set $10 + local.set $16 local.get $5 i32.const 0 i32.lt_s @@ -5783,24 +5994,24 @@ local.get $8 local.get $5 i32.add - local.tee $11 + local.tee $17 i32.const 0 - local.tee $12 - local.get $11 - local.get $12 + local.tee $18 + local.get $17 + local.get $18 i32.gt_s select else local.get $5 - local.tee $11 + local.tee $19 local.get $8 - local.tee $12 - local.get $11 - local.get $12 + local.tee $20 + local.get $19 + local.get $20 i32.lt_s select end - local.set $11 + local.set $21 local.get $4 i32.const 0 i32.lt_s @@ -5808,48 +6019,48 @@ local.get $8 local.get $4 i32.add - local.tee $12 + local.tee $22 i32.const 0 - local.tee $13 - local.get $12 - local.get $13 + local.tee $23 + local.get $22 + local.get $23 i32.gt_s select else local.get $4 - local.tee $12 + local.tee $24 local.get $8 - local.tee $13 - local.get $12 - local.get $13 + local.tee $25 + local.get $24 + local.get $25 i32.lt_s select end - local.set $12 - local.get $12 - local.get $11 + local.set $26 + local.get $26 + local.get $21 i32.sub - local.tee $13 + local.tee $27 local.get $8 - local.get $10 + local.get $16 i32.sub - local.tee $14 - local.get $13 - local.get $14 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select - local.set $13 + local.set $29 local.get $9 - local.get $10 + local.get $16 i32.const 2 i32.shl i32.add local.get $9 - local.get $11 + local.get $21 i32.const 2 i32.shl i32.add - local.get $13 + local.get $29 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -5876,6 +6087,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -5920,10 +6132,10 @@ end end local.get $3 - local.set $8 + local.set $10 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> (local $0 i32) @@ -6014,6 +6226,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -6058,10 +6271,10 @@ end end local.get $3 - local.set $8 + local.set $10 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> (local $0 i32) @@ -6130,6 +6343,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -6174,10 +6388,10 @@ end end local.get $3 - local.set $8 + local.set $10 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> (local $0 i32) @@ -6270,6 +6484,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -6314,10 +6529,10 @@ end end local.get $3 - local.set $8 + local.set $10 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> (local $0 i32) @@ -6412,6 +6627,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -6456,10 +6672,10 @@ end end local.get $3 - local.set $8 + local.set $10 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> (local $0 i32) @@ -6528,6 +6744,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -6572,10 +6789,10 @@ end end local.get $3 - local.set $8 + local.set $10 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> (local $0 i32) @@ -6666,6 +6883,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -6710,10 +6928,10 @@ end end local.get $3 - local.set $8 + local.set $10 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> (local $0 i32) @@ -7311,6 +7529,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -7355,10 +7574,10 @@ end end local.get $3 - local.set $7 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $7 + local.get $9 ) (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> (local $0 i32) @@ -7428,6 +7647,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -7472,10 +7692,10 @@ end end local.get $3 - local.set $7 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $7 + local.get $9 ) (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> (local $0 i32) @@ -7543,6 +7763,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -7587,10 +7808,10 @@ end end local.get $3 - local.set $7 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $7 + local.get $9 ) (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> (local $0 i32) @@ -7658,6 +7879,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -7702,10 +7924,10 @@ end end local.get $3 - local.set $7 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $7 + local.get $9 ) (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> (local $0 i32) @@ -7775,6 +7997,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -7819,10 +8042,10 @@ end end local.get $3 - local.set $7 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $7 + local.get $9 ) (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> (local $0 i32) @@ -7890,6 +8113,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -7934,10 +8158,10 @@ end end local.get $3 - local.set $7 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $7 + local.get $9 ) (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> (local $0 i32) @@ -8003,6 +8227,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -8047,10 +8272,10 @@ end end local.get $3 - local.set $7 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $7 + local.get $9 ) (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> (local $0 i32) @@ -8575,6 +8800,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -8644,10 +8870,10 @@ i32.store offset=8 local.get $7 call $~lib/rt/pure/__retain - local.set $9 + local.set $11 local.get $3 call $~lib/rt/pure/__release - local.get $9 + local.get $11 ) (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> (local $0 i32) @@ -8747,6 +8973,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -8816,10 +9043,10 @@ i32.store offset=8 local.get $7 call $~lib/rt/pure/__retain - local.set $9 + local.set $11 local.get $3 call $~lib/rt/pure/__release - local.get $9 + local.get $11 ) (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -8938,6 +9165,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -9007,10 +9235,10 @@ i32.store offset=8 local.get $7 call $~lib/rt/pure/__retain - local.set $9 + local.set $11 local.get $3 call $~lib/rt/pure/__release - local.get $9 + local.get $11 ) (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> (local $0 i32) @@ -9110,6 +9338,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -9179,10 +9408,10 @@ i32.store offset=8 local.get $7 call $~lib/rt/pure/__retain - local.set $9 + local.set $11 local.get $3 call $~lib/rt/pure/__release - local.get $9 + local.get $11 ) (func $~lib/typedarray/Int16Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -9305,6 +9534,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -9374,10 +9604,10 @@ i32.store offset=8 local.get $7 call $~lib/rt/pure/__retain - local.set $9 + local.set $11 local.get $3 call $~lib/rt/pure/__release - local.get $9 + local.get $11 ) (func $~lib/typedarray/Uint16Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -9500,6 +9730,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -9569,10 +9800,10 @@ i32.store offset=8 local.get $7 call $~lib/rt/pure/__retain - local.set $9 + local.set $11 local.get $3 call $~lib/rt/pure/__release - local.get $9 + local.get $11 ) (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> (local $0 i32) @@ -9672,6 +9903,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -9741,10 +9973,10 @@ i32.store offset=8 local.get $7 call $~lib/rt/pure/__retain - local.set $9 + local.set $11 local.get $3 call $~lib/rt/pure/__release - local.get $9 + local.get $11 ) (func $~lib/typedarray/Uint32Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -9867,6 +10099,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -9936,10 +10169,10 @@ i32.store offset=8 local.get $7 call $~lib/rt/pure/__retain - local.set $9 + local.set $11 local.get $3 call $~lib/rt/pure/__release - local.get $9 + local.get $11 ) (func $~lib/typedarray/Int64Array#__get (param $0 i32) (param $1 i32) (result i64) local.get $1 @@ -10062,6 +10295,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -10131,10 +10365,10 @@ i32.store offset=8 local.get $7 call $~lib/rt/pure/__retain - local.set $9 + local.set $11 local.get $3 call $~lib/rt/pure/__release - local.get $9 + local.get $11 ) (func $~lib/typedarray/Uint64Array#__get (param $0 i32) (param $1 i32) (result i64) local.get $1 @@ -10257,6 +10491,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -10326,10 +10561,10 @@ i32.store offset=8 local.get $7 call $~lib/rt/pure/__retain - local.set $9 + local.set $11 local.get $3 call $~lib/rt/pure/__release - local.get $9 + local.get $11 ) (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) local.get $1 @@ -10452,6 +10687,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -10521,10 +10757,10 @@ i32.store offset=8 local.get $7 call $~lib/rt/pure/__retain - local.set $9 + local.set $11 local.get $3 call $~lib/rt/pure/__release - local.get $9 + local.get $11 ) (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> (local $0 i32) @@ -10625,6 +10861,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) local.get $2 call $~lib/rt/tlsf/prepareSize local.set $3 @@ -10682,8 +10919,8 @@ i32.xor i32.and i32.add - local.set $5 - local.get $5 + local.set $8 + local.get $8 local.get $3 i32.ge_u if @@ -10694,7 +10931,7 @@ local.get $4 i32.const 3 i32.and - local.get $5 + local.get $8 i32.or i32.store local.get $1 @@ -10713,12 +10950,12 @@ local.get $1 i32.load offset=8 call $~lib/rt/tlsf/allocateBlock - local.set $8 - local.get $8 + local.set $9 + local.get $9 local.get $1 i32.load offset=4 i32.store offset=4 - local.get $8 + local.get $9 i32.const 16 i32.add local.get $1 @@ -10733,13 +10970,13 @@ i32.const 1 drop local.get $1 - local.get $8 + local.get $9 call $~lib/rt/rtrace/onrealloc local.get $0 local.get $1 call $~lib/rt/tlsf/freeBlock end - local.get $8 + local.get $9 ) (func $~lib/rt/tlsf/__realloc (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize @@ -10762,6 +10999,9 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -10832,27 +11072,27 @@ local.get $8 i32.const 0 i32.shl - local.set $9 + local.set $13 local.get $6 - local.get $9 + local.get $13 call $~lib/rt/tlsf/__realloc - local.set $10 + local.set $14 local.get $5 - local.get $10 + local.get $14 call $~lib/rt/pure/__retain i32.store local.get $5 - local.get $9 + local.get $13 i32.store offset=8 local.get $5 - local.get $10 + local.get $14 i32.store offset=4 local.get $5 call $~lib/rt/pure/__retain - local.set $11 + local.set $15 local.get $3 call $~lib/rt/pure/__release - local.get $11 + local.get $15 ) (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> (local $0 i32) @@ -10990,6 +11230,9 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -11060,27 +11303,27 @@ local.get $8 i32.const 0 i32.shl - local.set $9 + local.set $13 local.get $6 - local.get $9 + local.get $13 call $~lib/rt/tlsf/__realloc - local.set $10 + local.set $14 local.get $5 - local.get $10 + local.get $14 call $~lib/rt/pure/__retain i32.store local.get $5 - local.get $9 + local.get $13 i32.store offset=8 local.get $5 - local.get $10 + local.get $14 i32.store offset=4 local.get $5 call $~lib/rt/pure/__retain - local.set $11 + local.set $15 local.get $3 call $~lib/rt/pure/__release - local.get $11 + local.get $15 ) (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> (local $0 i32) @@ -11218,6 +11461,9 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -11288,27 +11534,27 @@ local.get $8 i32.const 0 i32.shl - local.set $9 + local.set $13 local.get $6 - local.get $9 + local.get $13 call $~lib/rt/tlsf/__realloc - local.set $10 + local.set $14 local.get $5 - local.get $10 + local.get $14 call $~lib/rt/pure/__retain i32.store local.get $5 - local.get $9 + local.get $13 i32.store offset=8 local.get $5 - local.get $10 + local.get $14 i32.store offset=4 local.get $5 call $~lib/rt/pure/__retain - local.set $11 + local.set $15 local.get $3 call $~lib/rt/pure/__release - local.get $11 + local.get $15 ) (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> (local $0 i32) @@ -11448,6 +11694,9 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -11518,27 +11767,27 @@ local.get $8 i32.const 1 i32.shl - local.set $9 + local.set $13 local.get $6 - local.get $9 + local.get $13 call $~lib/rt/tlsf/__realloc - local.set $10 + local.set $14 local.get $5 - local.get $10 + local.get $14 call $~lib/rt/pure/__retain i32.store local.get $5 - local.get $9 + local.get $13 i32.store offset=8 local.get $5 - local.get $10 + local.get $14 i32.store offset=4 local.get $5 call $~lib/rt/pure/__retain - local.set $11 + local.set $15 local.get $3 call $~lib/rt/pure/__release - local.get $11 + local.get $15 ) (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> (local $0 i32) @@ -11676,6 +11925,9 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -11746,27 +11998,27 @@ local.get $8 i32.const 1 i32.shl - local.set $9 + local.set $13 local.get $6 - local.get $9 + local.get $13 call $~lib/rt/tlsf/__realloc - local.set $10 + local.set $14 local.get $5 - local.get $10 + local.get $14 call $~lib/rt/pure/__retain i32.store local.get $5 - local.get $9 + local.get $13 i32.store offset=8 local.get $5 - local.get $10 + local.get $14 i32.store offset=4 local.get $5 call $~lib/rt/pure/__retain - local.set $11 + local.set $15 local.get $3 call $~lib/rt/pure/__release - local.get $11 + local.get $15 ) (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> (local $0 i32) @@ -11902,6 +12154,9 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -11972,27 +12227,27 @@ local.get $8 i32.const 2 i32.shl - local.set $9 + local.set $13 local.get $6 - local.get $9 + local.get $13 call $~lib/rt/tlsf/__realloc - local.set $10 + local.set $14 local.get $5 - local.get $10 + local.get $14 call $~lib/rt/pure/__retain i32.store local.get $5 - local.get $9 + local.get $13 i32.store offset=8 local.get $5 - local.get $10 + local.get $14 i32.store offset=4 local.get $5 call $~lib/rt/pure/__retain - local.set $11 + local.set $15 local.get $3 call $~lib/rt/pure/__release - local.get $11 + local.get $15 ) (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> (local $0 i32) @@ -12128,6 +12383,9 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -12198,27 +12456,27 @@ local.get $8 i32.const 2 i32.shl - local.set $9 + local.set $13 local.get $6 - local.get $9 + local.get $13 call $~lib/rt/tlsf/__realloc - local.set $10 + local.set $14 local.get $5 - local.get $10 + local.get $14 call $~lib/rt/pure/__retain i32.store local.get $5 - local.get $9 + local.get $13 i32.store offset=8 local.get $5 - local.get $10 + local.get $14 i32.store offset=4 local.get $5 call $~lib/rt/pure/__retain - local.set $11 + local.set $15 local.get $3 call $~lib/rt/pure/__release - local.get $11 + local.get $15 ) (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> (local $0 i32) @@ -12354,6 +12612,9 @@ (local $10 i32) (local $11 i64) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -12424,27 +12685,27 @@ local.get $8 i32.const 3 i32.shl - local.set $9 + local.set $13 local.get $6 - local.get $9 + local.get $13 call $~lib/rt/tlsf/__realloc - local.set $10 + local.set $14 local.get $5 - local.get $10 + local.get $14 call $~lib/rt/pure/__retain i32.store local.get $5 - local.get $9 + local.get $13 i32.store offset=8 local.get $5 - local.get $10 + local.get $14 i32.store offset=4 local.get $5 call $~lib/rt/pure/__retain - local.set $12 + local.set $15 local.get $3 call $~lib/rt/pure/__release - local.get $12 + local.get $15 ) (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> (local $0 i32) @@ -12580,6 +12841,9 @@ (local $10 i32) (local $11 i64) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -12650,27 +12914,27 @@ local.get $8 i32.const 3 i32.shl - local.set $9 + local.set $13 local.get $6 - local.get $9 + local.get $13 call $~lib/rt/tlsf/__realloc - local.set $10 + local.set $14 local.get $5 - local.get $10 + local.get $14 call $~lib/rt/pure/__retain i32.store local.get $5 - local.get $9 + local.get $13 i32.store offset=8 local.get $5 - local.get $10 + local.get $14 i32.store offset=4 local.get $5 call $~lib/rt/pure/__retain - local.set $12 + local.set $15 local.get $3 call $~lib/rt/pure/__release - local.get $12 + local.get $15 ) (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> (local $0 i32) @@ -12806,6 +13070,9 @@ (local $10 i32) (local $11 f32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -12876,27 +13143,27 @@ local.get $8 i32.const 2 i32.shl - local.set $9 + local.set $13 local.get $6 - local.get $9 + local.get $13 call $~lib/rt/tlsf/__realloc - local.set $10 + local.set $14 local.get $5 - local.get $10 + local.get $14 call $~lib/rt/pure/__retain i32.store local.get $5 - local.get $9 + local.get $13 i32.store offset=8 local.get $5 - local.get $10 + local.get $14 i32.store offset=4 local.get $5 call $~lib/rt/pure/__retain - local.set $12 + local.set $15 local.get $3 call $~lib/rt/pure/__release - local.get $12 + local.get $15 ) (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> (local $0 i32) @@ -13032,6 +13299,9 @@ (local $10 i32) (local $11 f64) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -13102,27 +13372,27 @@ local.get $8 i32.const 3 i32.shl - local.set $9 + local.set $13 local.get $6 - local.get $9 + local.get $13 call $~lib/rt/tlsf/__realloc - local.set $10 + local.set $14 local.get $5 - local.get $10 + local.get $14 call $~lib/rt/pure/__retain i32.store local.get $5 - local.get $9 + local.get $13 i32.store offset=8 local.get $5 - local.get $10 + local.get $14 i32.store offset=4 local.get $5 call $~lib/rt/pure/__retain - local.set $12 + local.set $15 local.get $3 call $~lib/rt/pure/__release - local.get $12 + local.get $15 ) (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> (local $0 i32) @@ -13258,6 +13528,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -13307,10 +13578,10 @@ end end i32.const 0 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -13412,6 +13683,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -13461,10 +13733,10 @@ end end i32.const 0 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -13564,6 +13836,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -13613,10 +13886,10 @@ end end i32.const 0 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -13718,6 +13991,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -13767,10 +14041,10 @@ end end i32.const 0 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -13872,6 +14146,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -13921,10 +14196,10 @@ end end i32.const 0 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -14022,6 +14297,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -14071,10 +14347,10 @@ end end i32.const 0 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -14170,6 +14446,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -14219,10 +14496,10 @@ end end i32.const 0 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -14318,6 +14595,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -14367,10 +14645,10 @@ end end i32.const 0 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) @@ -14466,6 +14744,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -14515,10 +14794,10 @@ end end i32.const 0 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) @@ -14614,6 +14893,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -14663,10 +14943,10 @@ end end i32.const 0 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) @@ -14762,6 +15042,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -14811,10 +15092,10 @@ end end i32.const 0 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) @@ -14914,6 +15195,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -14963,10 +15245,10 @@ end end i32.const -1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -15069,6 +15351,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -15118,10 +15401,10 @@ end end i32.const -1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -15222,6 +15505,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -15271,10 +15555,10 @@ end end i32.const -1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -15377,6 +15661,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -15426,10 +15711,10 @@ end end i32.const -1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -15532,6 +15817,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -15581,10 +15867,10 @@ end end i32.const -1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -15683,6 +15969,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -15732,10 +16019,10 @@ end end i32.const -1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -15832,6 +16119,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -15881,10 +16169,10 @@ end end i32.const -1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -15981,6 +16269,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -16030,10 +16319,10 @@ end end i32.const -1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) @@ -16130,6 +16419,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -16179,10 +16469,10 @@ end end i32.const -1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) @@ -16279,6 +16569,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -16328,10 +16619,10 @@ end end i32.const -1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) @@ -16428,6 +16719,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -16477,10 +16769,10 @@ end end i32.const -1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) @@ -16583,6 +16875,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -16635,10 +16928,10 @@ end end i32.const 1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -16742,6 +17035,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -16794,10 +17088,10 @@ end end i32.const 1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -16899,6 +17193,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -16951,10 +17246,10 @@ end end i32.const 1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -17058,6 +17353,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -17110,10 +17406,10 @@ end end i32.const 1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -17217,6 +17513,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -17269,10 +17566,10 @@ end end i32.const 1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -17372,6 +17669,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -17424,10 +17722,10 @@ end end i32.const 1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -17525,6 +17823,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -17577,10 +17876,10 @@ end end i32.const 1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -17678,6 +17977,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -17730,10 +18030,10 @@ end end i32.const 1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) @@ -17831,6 +18131,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -17883,10 +18184,10 @@ end end i32.const 1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) @@ -18232,6 +18533,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -18284,10 +18586,10 @@ end end i32.const 1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) @@ -18639,6 +18941,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -18691,10 +18994,10 @@ end end i32.const 1 - local.set $6 + local.set $9 local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $9 end ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) @@ -20601,6 +20904,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $std/typedarray/testArrayReverseValues call $~lib/rt/pure/__retain local.set $0 @@ -20659,22 +20965,22 @@ call $~lib/typedarray/Int8Array#reverse call $~lib/rt/pure/__release i32.const 0 - local.set $6 + local.set $8 loop $for-loop|1 - local.get $6 + local.get $8 local.get $1 i32.lt_s - local.set $7 - local.get $7 + local.set $9 + local.get $9 if local.get $3 - local.get $6 + local.get $8 call $~lib/typedarray/Int8Array#__get local.get $0 local.get $1 i32.const 1 i32.sub - local.get $6 + local.get $8 i32.sub call $~lib/array/Array#__get i32.const 24 @@ -20691,10 +20997,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|1 end end @@ -20702,10 +21008,10 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Int8Array#subarray - local.tee $6 + local.tee $10 call $~lib/typedarray/Int8Array#reverse - local.set $8 - local.get $8 + local.set $11 + local.get $11 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 8 @@ -20719,7 +21025,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 7 @@ -20733,7 +21039,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 6 @@ -20747,7 +21053,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 3 call $~lib/typedarray/Int8Array#__get i32.const 5 @@ -20765,7 +21071,7 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 + local.get $10 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -20773,7 +21079,7 @@ call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $11 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Uint8Array#reverse (param $0 i32) (result i32) @@ -20847,6 +21153,16 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -20873,11 +21189,11 @@ select else local.get $4 - local.tee $7 + local.tee $9 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $10 + local.get $9 + local.get $10 i32.lt_s select end @@ -20889,43 +21205,43 @@ local.get $6 local.get $3 i32.add - local.tee $7 + local.tee $11 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 + local.tee $12 + local.get $11 + local.get $12 i32.gt_s select else local.get $3 - local.tee $7 + local.tee $13 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $14 + local.get $13 + local.get $14 i32.lt_s select end local.set $3 local.get $3 - local.tee $7 + local.tee $15 local.get $4 - local.tee $8 - local.get $7 - local.get $8 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select local.set $3 i32.const 12 i32.const 4 call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 + local.set $17 + local.get $17 local.get $5 i32.load call $~lib/rt/pure/__retain i32.store - local.get $7 + local.get $17 local.get $5 i32.load offset=4 local.get $4 @@ -20933,19 +21249,19 @@ i32.shl i32.add i32.store offset=4 - local.get $7 + local.get $17 local.get $3 local.get $4 i32.sub i32.const 0 i32.shl i32.store offset=8 - local.get $7 + local.get $17 call $~lib/rt/pure/__retain - local.set $8 + local.set $18 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $18 ) (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> (local $0 i32) @@ -20957,6 +21273,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $std/typedarray/testArrayReverseValues call $~lib/rt/pure/__retain local.set $0 @@ -21011,22 +21330,22 @@ call $~lib/typedarray/Uint8Array#reverse call $~lib/rt/pure/__release i32.const 0 - local.set $6 + local.set $8 loop $for-loop|1 - local.get $6 + local.get $8 local.get $1 i32.lt_s - local.set $7 - local.get $7 + local.set $9 + local.get $9 if local.get $3 - local.get $6 + local.get $8 call $~lib/typedarray/Uint8Array#__get local.get $0 local.get $1 i32.const 1 i32.sub - local.get $6 + local.get $8 i32.sub call $~lib/array/Array#__get i32.const 255 @@ -21041,10 +21360,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|1 end end @@ -21052,10 +21371,10 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Uint8Array#subarray - local.tee $6 + local.tee $10 call $~lib/typedarray/Uint8Array#reverse - local.set $8 - local.get $8 + local.set $11 + local.get $11 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 8 @@ -21069,7 +21388,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 7 @@ -21083,7 +21402,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 6 @@ -21097,7 +21416,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 3 call $~lib/typedarray/Uint8Array#__get i32.const 5 @@ -21115,7 +21434,7 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 + local.get $10 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -21123,7 +21442,7 @@ call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $11 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Uint8ClampedArray#reverse (param $0 i32) (result i32) @@ -21197,6 +21516,16 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -21223,11 +21552,11 @@ select else local.get $4 - local.tee $7 + local.tee $9 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $10 + local.get $9 + local.get $10 i32.lt_s select end @@ -21239,43 +21568,43 @@ local.get $6 local.get $3 i32.add - local.tee $7 + local.tee $11 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 + local.tee $12 + local.get $11 + local.get $12 i32.gt_s select else local.get $3 - local.tee $7 + local.tee $13 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $14 + local.get $13 + local.get $14 i32.lt_s select end local.set $3 local.get $3 - local.tee $7 + local.tee $15 local.get $4 - local.tee $8 - local.get $7 - local.get $8 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select local.set $3 i32.const 12 i32.const 5 call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 + local.set $17 + local.get $17 local.get $5 i32.load call $~lib/rt/pure/__retain i32.store - local.get $7 + local.get $17 local.get $5 i32.load offset=4 local.get $4 @@ -21283,19 +21612,19 @@ i32.shl i32.add i32.store offset=4 - local.get $7 + local.get $17 local.get $3 local.get $4 i32.sub i32.const 0 i32.shl i32.store offset=8 - local.get $7 + local.get $17 call $~lib/rt/pure/__retain - local.set $8 + local.set $18 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $18 ) (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> (local $0 i32) @@ -21307,6 +21636,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $std/typedarray/testArrayReverseValues call $~lib/rt/pure/__retain local.set $0 @@ -21361,22 +21693,22 @@ call $~lib/typedarray/Uint8ClampedArray#reverse call $~lib/rt/pure/__release i32.const 0 - local.set $6 + local.set $8 loop $for-loop|1 - local.get $6 + local.get $8 local.get $1 i32.lt_s - local.set $7 - local.get $7 + local.set $9 + local.get $9 if local.get $3 - local.get $6 + local.get $8 call $~lib/typedarray/Uint8ClampedArray#__get local.get $0 local.get $1 i32.const 1 i32.sub - local.get $6 + local.get $8 i32.sub call $~lib/array/Array#__get i32.const 255 @@ -21391,10 +21723,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|1 end end @@ -21402,10 +21734,10 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Uint8ClampedArray#subarray - local.tee $6 + local.tee $10 call $~lib/typedarray/Uint8ClampedArray#reverse - local.set $8 - local.get $8 + local.set $11 + local.get $11 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 8 @@ -21419,7 +21751,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 7 @@ -21433,7 +21765,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 6 @@ -21447,7 +21779,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 5 @@ -21465,7 +21797,7 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 + local.get $10 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -21473,7 +21805,7 @@ call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $11 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Int16Array#reverse (param $0 i32) (result i32) @@ -21547,6 +21879,16 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -21573,11 +21915,11 @@ select else local.get $4 - local.tee $7 + local.tee $9 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $10 + local.get $9 + local.get $10 i32.lt_s select end @@ -21589,43 +21931,43 @@ local.get $6 local.get $3 i32.add - local.tee $7 + local.tee $11 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 + local.tee $12 + local.get $11 + local.get $12 i32.gt_s select else local.get $3 - local.tee $7 + local.tee $13 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $14 + local.get $13 + local.get $14 i32.lt_s select end local.set $3 local.get $3 - local.tee $7 + local.tee $15 local.get $4 - local.tee $8 - local.get $7 - local.get $8 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select local.set $3 i32.const 12 i32.const 6 call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 + local.set $17 + local.get $17 local.get $5 i32.load call $~lib/rt/pure/__retain i32.store - local.get $7 + local.get $17 local.get $5 i32.load offset=4 local.get $4 @@ -21633,19 +21975,19 @@ i32.shl i32.add i32.store offset=4 - local.get $7 + local.get $17 local.get $3 local.get $4 i32.sub i32.const 1 i32.shl i32.store offset=8 - local.get $7 + local.get $17 call $~lib/rt/pure/__retain - local.set $8 + local.set $18 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $18 ) (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> (local $0 i32) @@ -21657,6 +21999,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $std/typedarray/testArrayReverseValues call $~lib/rt/pure/__retain local.set $0 @@ -21715,22 +22060,22 @@ call $~lib/typedarray/Int16Array#reverse call $~lib/rt/pure/__release i32.const 0 - local.set $6 + local.set $8 loop $for-loop|1 - local.get $6 + local.get $8 local.get $1 i32.lt_s - local.set $7 - local.get $7 + local.set $9 + local.get $9 if local.get $3 - local.get $6 + local.get $8 call $~lib/typedarray/Int16Array#__get local.get $0 local.get $1 i32.const 1 i32.sub - local.get $6 + local.get $8 i32.sub call $~lib/array/Array#__get i32.const 16 @@ -21747,10 +22092,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|1 end end @@ -21758,10 +22103,10 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Int16Array#subarray - local.tee $6 + local.tee $10 call $~lib/typedarray/Int16Array#reverse - local.set $8 - local.get $8 + local.set $11 + local.get $11 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 8 @@ -21775,7 +22120,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 7 @@ -21789,7 +22134,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 6 @@ -21803,7 +22148,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 3 call $~lib/typedarray/Int16Array#__get i32.const 5 @@ -21821,7 +22166,7 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 + local.get $10 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -21829,7 +22174,7 @@ call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $11 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Uint16Array#reverse (param $0 i32) (result i32) @@ -21903,6 +22248,16 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -21929,11 +22284,11 @@ select else local.get $4 - local.tee $7 + local.tee $9 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $10 + local.get $9 + local.get $10 i32.lt_s select end @@ -21945,43 +22300,43 @@ local.get $6 local.get $3 i32.add - local.tee $7 + local.tee $11 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 + local.tee $12 + local.get $11 + local.get $12 i32.gt_s select else local.get $3 - local.tee $7 + local.tee $13 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $14 + local.get $13 + local.get $14 i32.lt_s select end local.set $3 local.get $3 - local.tee $7 + local.tee $15 local.get $4 - local.tee $8 - local.get $7 - local.get $8 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select local.set $3 i32.const 12 i32.const 7 call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 + local.set $17 + local.get $17 local.get $5 i32.load call $~lib/rt/pure/__retain i32.store - local.get $7 + local.get $17 local.get $5 i32.load offset=4 local.get $4 @@ -21989,19 +22344,19 @@ i32.shl i32.add i32.store offset=4 - local.get $7 + local.get $17 local.get $3 local.get $4 i32.sub i32.const 1 i32.shl i32.store offset=8 - local.get $7 + local.get $17 call $~lib/rt/pure/__retain - local.set $8 + local.set $18 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $18 ) (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (local $0 i32) @@ -22013,6 +22368,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $std/typedarray/testArrayReverseValues call $~lib/rt/pure/__retain local.set $0 @@ -22067,22 +22425,22 @@ call $~lib/typedarray/Uint16Array#reverse call $~lib/rt/pure/__release i32.const 0 - local.set $6 + local.set $8 loop $for-loop|1 - local.get $6 + local.get $8 local.get $1 i32.lt_s - local.set $7 - local.get $7 + local.set $9 + local.get $9 if local.get $3 - local.get $6 + local.get $8 call $~lib/typedarray/Uint16Array#__get local.get $0 local.get $1 i32.const 1 i32.sub - local.get $6 + local.get $8 i32.sub call $~lib/array/Array#__get i32.const 65535 @@ -22097,10 +22455,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|1 end end @@ -22108,10 +22466,10 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Uint16Array#subarray - local.tee $6 + local.tee $10 call $~lib/typedarray/Uint16Array#reverse - local.set $8 - local.get $8 + local.set $11 + local.get $11 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 8 @@ -22125,7 +22483,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 7 @@ -22139,7 +22497,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 6 @@ -22153,7 +22511,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 3 call $~lib/typedarray/Uint16Array#__get i32.const 5 @@ -22171,7 +22529,7 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 + local.get $10 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -22179,7 +22537,7 @@ call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $11 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Int32Array#reverse (param $0 i32) (result i32) @@ -22256,6 +22614,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $std/typedarray/testArrayReverseValues call $~lib/rt/pure/__retain local.set $0 @@ -22306,22 +22667,22 @@ call $~lib/typedarray/Int32Array#reverse call $~lib/rt/pure/__release i32.const 0 - local.set $6 + local.set $8 loop $for-loop|1 - local.get $6 + local.get $8 local.get $1 i32.lt_s - local.set $7 - local.get $7 + local.set $9 + local.get $9 if local.get $3 - local.get $6 + local.get $8 call $~lib/typedarray/Int32Array#__get local.get $0 local.get $1 i32.const 1 i32.sub - local.get $6 + local.get $8 i32.sub call $~lib/array/Array#__get i32.eq @@ -22334,10 +22695,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|1 end end @@ -22345,10 +22706,10 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Int32Array#subarray - local.tee $6 + local.tee $10 call $~lib/typedarray/Int32Array#reverse - local.set $8 - local.get $8 + local.set $11 + local.get $11 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 8 @@ -22362,7 +22723,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 7 @@ -22376,7 +22737,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 6 @@ -22390,7 +22751,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 3 call $~lib/typedarray/Int32Array#__get i32.const 5 @@ -22408,7 +22769,7 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 + local.get $10 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -22416,7 +22777,7 @@ call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $11 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Uint32Array#reverse (param $0 i32) (result i32) @@ -22490,6 +22851,16 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -22516,11 +22887,11 @@ select else local.get $4 - local.tee $7 + local.tee $9 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $10 + local.get $9 + local.get $10 i32.lt_s select end @@ -22532,43 +22903,43 @@ local.get $6 local.get $3 i32.add - local.tee $7 + local.tee $11 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 + local.tee $12 + local.get $11 + local.get $12 i32.gt_s select else local.get $3 - local.tee $7 + local.tee $13 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $14 + local.get $13 + local.get $14 i32.lt_s select end local.set $3 local.get $3 - local.tee $7 + local.tee $15 local.get $4 - local.tee $8 - local.get $7 - local.get $8 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select local.set $3 i32.const 12 i32.const 9 call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 + local.set $17 + local.get $17 local.get $5 i32.load call $~lib/rt/pure/__retain i32.store - local.get $7 + local.get $17 local.get $5 i32.load offset=4 local.get $4 @@ -22576,19 +22947,19 @@ i32.shl i32.add i32.store offset=4 - local.get $7 + local.get $17 local.get $3 local.get $4 i32.sub i32.const 2 i32.shl i32.store offset=8 - local.get $7 + local.get $17 call $~lib/rt/pure/__retain - local.set $8 + local.set $18 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $18 ) (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (local $0 i32) @@ -22600,6 +22971,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $std/typedarray/testArrayReverseValues call $~lib/rt/pure/__retain local.set $0 @@ -22650,22 +23024,22 @@ call $~lib/typedarray/Uint32Array#reverse call $~lib/rt/pure/__release i32.const 0 - local.set $6 + local.set $8 loop $for-loop|1 - local.get $6 + local.get $8 local.get $1 i32.lt_s - local.set $7 - local.get $7 + local.set $9 + local.get $9 if local.get $3 - local.get $6 + local.get $8 call $~lib/typedarray/Uint32Array#__get local.get $0 local.get $1 i32.const 1 i32.sub - local.get $6 + local.get $8 i32.sub call $~lib/array/Array#__get i32.eq @@ -22678,10 +23052,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|1 end end @@ -22689,10 +23063,10 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Uint32Array#subarray - local.tee $6 + local.tee $10 call $~lib/typedarray/Uint32Array#reverse - local.set $8 - local.get $8 + local.set $11 + local.get $11 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 8 @@ -22706,7 +23080,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 7 @@ -22720,7 +23094,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 6 @@ -22734,7 +23108,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 3 call $~lib/typedarray/Uint32Array#__get i32.const 5 @@ -22752,7 +23126,7 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 + local.get $10 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -22760,7 +23134,7 @@ call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $11 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Int64Array#reverse (param $0 i32) (result i32) @@ -22834,6 +23208,16 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -22860,11 +23244,11 @@ select else local.get $4 - local.tee $7 + local.tee $9 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $10 + local.get $9 + local.get $10 i32.lt_s select end @@ -22876,43 +23260,43 @@ local.get $6 local.get $3 i32.add - local.tee $7 + local.tee $11 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 + local.tee $12 + local.get $11 + local.get $12 i32.gt_s select else local.get $3 - local.tee $7 + local.tee $13 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $14 + local.get $13 + local.get $14 i32.lt_s select end local.set $3 local.get $3 - local.tee $7 + local.tee $15 local.get $4 - local.tee $8 - local.get $7 - local.get $8 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select local.set $3 i32.const 12 i32.const 10 call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 + local.set $17 + local.get $17 local.get $5 i32.load call $~lib/rt/pure/__retain i32.store - local.get $7 + local.get $17 local.get $5 i32.load offset=4 local.get $4 @@ -22920,19 +23304,19 @@ i32.shl i32.add i32.store offset=4 - local.get $7 + local.get $17 local.get $3 local.get $4 i32.sub i32.const 3 i32.shl i32.store offset=8 - local.get $7 + local.get $17 call $~lib/rt/pure/__retain - local.set $8 + local.set $18 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $18 ) (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (local $0 i32) @@ -22944,6 +23328,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $std/typedarray/testArrayReverseValues call $~lib/rt/pure/__retain local.set $0 @@ -22996,22 +23383,22 @@ call $~lib/typedarray/Int64Array#reverse call $~lib/rt/pure/__release i32.const 0 - local.set $6 + local.set $8 loop $for-loop|1 - local.get $6 + local.get $8 local.get $1 i32.lt_s - local.set $7 - local.get $7 + local.set $9 + local.get $9 if local.get $3 - local.get $6 + local.get $8 call $~lib/typedarray/Int64Array#__get local.get $0 local.get $1 i32.const 1 i32.sub - local.get $6 + local.get $8 i32.sub call $~lib/array/Array#__get i64.extend_i32_s @@ -23025,10 +23412,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|1 end end @@ -23036,10 +23423,10 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Int64Array#subarray - local.tee $6 + local.tee $10 call $~lib/typedarray/Int64Array#reverse - local.set $8 - local.get $8 + local.set $11 + local.get $11 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 8 @@ -23053,7 +23440,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 7 @@ -23067,7 +23454,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 6 @@ -23081,7 +23468,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 3 call $~lib/typedarray/Int64Array#__get i64.const 5 @@ -23099,7 +23486,7 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 + local.get $10 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -23107,7 +23494,7 @@ call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $11 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Uint64Array#reverse (param $0 i32) (result i32) @@ -23181,6 +23568,16 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -23207,11 +23604,11 @@ select else local.get $4 - local.tee $7 + local.tee $9 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $10 + local.get $9 + local.get $10 i32.lt_s select end @@ -23223,43 +23620,43 @@ local.get $6 local.get $3 i32.add - local.tee $7 + local.tee $11 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 + local.tee $12 + local.get $11 + local.get $12 i32.gt_s select else local.get $3 - local.tee $7 + local.tee $13 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $14 + local.get $13 + local.get $14 i32.lt_s select end local.set $3 local.get $3 - local.tee $7 + local.tee $15 local.get $4 - local.tee $8 - local.get $7 - local.get $8 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select local.set $3 i32.const 12 i32.const 11 call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 + local.set $17 + local.get $17 local.get $5 i32.load call $~lib/rt/pure/__retain i32.store - local.get $7 + local.get $17 local.get $5 i32.load offset=4 local.get $4 @@ -23267,19 +23664,19 @@ i32.shl i32.add i32.store offset=4 - local.get $7 + local.get $17 local.get $3 local.get $4 i32.sub i32.const 3 i32.shl i32.store offset=8 - local.get $7 + local.get $17 call $~lib/rt/pure/__retain - local.set $8 + local.set $18 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $18 ) (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (local $0 i32) @@ -23291,6 +23688,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $std/typedarray/testArrayReverseValues call $~lib/rt/pure/__retain local.set $0 @@ -23343,22 +23743,22 @@ call $~lib/typedarray/Uint64Array#reverse call $~lib/rt/pure/__release i32.const 0 - local.set $6 + local.set $8 loop $for-loop|1 - local.get $6 + local.get $8 local.get $1 i32.lt_s - local.set $7 - local.get $7 + local.set $9 + local.get $9 if local.get $3 - local.get $6 + local.get $8 call $~lib/typedarray/Uint64Array#__get local.get $0 local.get $1 i32.const 1 i32.sub - local.get $6 + local.get $8 i32.sub call $~lib/array/Array#__get i64.extend_i32_s @@ -23372,10 +23772,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|1 end end @@ -23383,10 +23783,10 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Uint64Array#subarray - local.tee $6 + local.tee $10 call $~lib/typedarray/Uint64Array#reverse - local.set $8 - local.get $8 + local.set $11 + local.get $11 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 8 @@ -23400,7 +23800,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 7 @@ -23414,7 +23814,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 6 @@ -23428,7 +23828,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 3 call $~lib/typedarray/Uint64Array#__get i64.const 5 @@ -23446,7 +23846,7 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 + local.get $10 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -23454,7 +23854,7 @@ call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $11 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Float32Array#reverse (param $0 i32) (result i32) @@ -23528,6 +23928,16 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 call $~lib/rt/pure/__retain local.set $5 @@ -23554,11 +23964,11 @@ select else local.get $4 - local.tee $7 + local.tee $9 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $10 + local.get $9 + local.get $10 i32.lt_s select end @@ -23570,43 +23980,43 @@ local.get $6 local.get $3 i32.add - local.tee $7 + local.tee $11 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 + local.tee $12 + local.get $11 + local.get $12 i32.gt_s select else local.get $3 - local.tee $7 + local.tee $13 local.get $6 - local.tee $8 - local.get $7 - local.get $8 + local.tee $14 + local.get $13 + local.get $14 i32.lt_s select end local.set $3 local.get $3 - local.tee $7 + local.tee $15 local.get $4 - local.tee $8 - local.get $7 - local.get $8 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select local.set $3 i32.const 12 i32.const 12 call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 + local.set $17 + local.get $17 local.get $5 i32.load call $~lib/rt/pure/__retain i32.store - local.get $7 + local.get $17 local.get $5 i32.load offset=4 local.get $4 @@ -23614,19 +24024,19 @@ i32.shl i32.add i32.store offset=4 - local.get $7 + local.get $17 local.get $3 local.get $4 i32.sub i32.const 2 i32.shl i32.store offset=8 - local.get $7 + local.get $17 call $~lib/rt/pure/__retain - local.set $8 + local.set $18 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $18 ) (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (local $0 i32) @@ -23638,6 +24048,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $std/typedarray/testArrayReverseValues call $~lib/rt/pure/__retain local.set $0 @@ -23690,22 +24103,22 @@ call $~lib/typedarray/Float32Array#reverse call $~lib/rt/pure/__release i32.const 0 - local.set $6 + local.set $8 loop $for-loop|1 - local.get $6 + local.get $8 local.get $1 i32.lt_s - local.set $7 - local.get $7 + local.set $9 + local.get $9 if local.get $3 - local.get $6 + local.get $8 call $~lib/typedarray/Float32Array#__get local.get $0 local.get $1 i32.const 1 i32.sub - local.get $6 + local.get $8 i32.sub call $~lib/array/Array#__get f32.convert_i32_s @@ -23719,10 +24132,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|1 end end @@ -23730,10 +24143,10 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Float32Array#subarray - local.tee $6 + local.tee $10 call $~lib/typedarray/Float32Array#reverse - local.set $8 - local.get $8 + local.set $11 + local.get $11 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 8 @@ -23747,7 +24160,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 7 @@ -23761,7 +24174,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 6 @@ -23775,7 +24188,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 3 call $~lib/typedarray/Float32Array#__get f32.const 5 @@ -23793,7 +24206,7 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 + local.get $10 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -23801,7 +24214,7 @@ call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $11 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Float64Array#reverse (param $0 i32) (result i32) @@ -23878,6 +24291,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $std/typedarray/testArrayReverseValues call $~lib/rt/pure/__retain local.set $0 @@ -23930,22 +24346,22 @@ call $~lib/typedarray/Float64Array#reverse call $~lib/rt/pure/__release i32.const 0 - local.set $6 + local.set $8 loop $for-loop|1 - local.get $6 + local.get $8 local.get $1 i32.lt_s - local.set $7 - local.get $7 + local.set $9 + local.get $9 if local.get $3 - local.get $6 + local.get $8 call $~lib/typedarray/Float64Array#__get local.get $0 local.get $1 i32.const 1 i32.sub - local.get $6 + local.get $8 i32.sub call $~lib/array/Array#__get f64.convert_i32_s @@ -23959,10 +24375,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|1 end end @@ -23970,10 +24386,10 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Float64Array#subarray - local.tee $6 + local.tee $10 call $~lib/typedarray/Float64Array#reverse - local.set $8 - local.get $8 + local.set $11 + local.get $11 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 8 @@ -23987,7 +24403,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 7 @@ -24001,7 +24417,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 6 @@ -24015,7 +24431,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.const 3 call $~lib/typedarray/Float64Array#__get f64.const 5 @@ -24033,7 +24449,7 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 + local.get $10 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -24041,7 +24457,7 @@ call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $11 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Int8Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -24053,6 +24469,10 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -24091,26 +24511,26 @@ local.get $7 local.get $6 i32.add - local.tee $8 - i32.const 0 local.tee $9 - local.get $8 + i32.const 0 + local.tee $10 local.get $9 + local.get $10 i32.gt_s select local.set $6 end local.get $5 i32.load offset=4 - local.set $8 + local.set $11 loop $while-continue|0 local.get $6 local.get $7 i32.lt_s - local.set $9 - local.get $9 + local.set $12 + local.get $12 if - local.get $8 + local.get $11 local.get $6 i32.const 0 i32.shl @@ -24124,10 +24544,10 @@ i32.eq if local.get $6 - local.set $10 + local.set $13 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $13 br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 end local.get $6 @@ -24138,10 +24558,10 @@ end end i32.const -1 - local.set $9 + local.set $14 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $14 end ) (func $~lib/typedarray/Int8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -24153,6 +24573,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -24198,15 +24620,15 @@ end local.get $5 i32.load offset=4 - local.set $8 + local.set $9 loop $while-continue|0 local.get $6 i32.const 0 i32.ge_s - local.set $9 - local.get $9 + local.set $10 + local.get $10 if - local.get $8 + local.get $9 local.get $6 i32.const 0 i32.shl @@ -24220,10 +24642,10 @@ i32.eq if local.get $6 - local.set $10 + local.set $11 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $11 br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 end local.get $6 @@ -24234,10 +24656,10 @@ end end i32.const -1 - local.set $9 + local.set $12 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $12 end ) (func $~lib/typedarray/Int8Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -24748,6 +25170,10 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -24786,26 +25212,26 @@ local.get $7 local.get $6 i32.add - local.tee $8 - i32.const 0 local.tee $9 - local.get $8 + i32.const 0 + local.tee $10 local.get $9 + local.get $10 i32.gt_s select local.set $6 end local.get $5 i32.load offset=4 - local.set $8 + local.set $11 loop $while-continue|0 local.get $6 local.get $7 i32.lt_s - local.set $9 - local.get $9 + local.set $12 + local.get $12 if - local.get $8 + local.get $11 local.get $6 i32.const 0 i32.shl @@ -24817,10 +25243,10 @@ i32.eq if local.get $6 - local.set $10 + local.set $13 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $13 br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 end local.get $6 @@ -24831,10 +25257,10 @@ end end i32.const -1 - local.set $9 + local.set $14 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $14 end ) (func $~lib/typedarray/Uint8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -24846,6 +25272,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -24891,15 +25319,15 @@ end local.get $5 i32.load offset=4 - local.set $8 + local.set $9 loop $while-continue|0 local.get $6 i32.const 0 i32.ge_s - local.set $9 - local.get $9 + local.set $10 + local.get $10 if - local.get $8 + local.get $9 local.get $6 i32.const 0 i32.shl @@ -24911,10 +25339,10 @@ i32.eq if local.get $6 - local.set $10 + local.set $11 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $11 br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 end local.get $6 @@ -24925,10 +25353,10 @@ end end i32.const -1 - local.set $9 + local.set $12 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $12 end ) (func $~lib/typedarray/Uint8Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -25437,6 +25865,10 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -25475,26 +25907,26 @@ local.get $7 local.get $6 i32.add - local.tee $8 - i32.const 0 local.tee $9 - local.get $8 + i32.const 0 + local.tee $10 local.get $9 + local.get $10 i32.gt_s select local.set $6 end local.get $5 i32.load offset=4 - local.set $8 + local.set $11 loop $while-continue|0 local.get $6 local.get $7 i32.lt_s - local.set $9 - local.get $9 + local.set $12 + local.get $12 if - local.get $8 + local.get $11 local.get $6 i32.const 0 i32.shl @@ -25506,10 +25938,10 @@ i32.eq if local.get $6 - local.set $10 + local.set $13 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $13 br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 end local.get $6 @@ -25520,10 +25952,10 @@ end end i32.const -1 - local.set $9 + local.set $14 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $14 end ) (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -25535,6 +25967,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -25580,15 +26014,15 @@ end local.get $5 i32.load offset=4 - local.set $8 + local.set $9 loop $while-continue|0 local.get $6 i32.const 0 i32.ge_s - local.set $9 - local.get $9 + local.set $10 + local.get $10 if - local.get $8 + local.get $9 local.get $6 i32.const 0 i32.shl @@ -25600,10 +26034,10 @@ i32.eq if local.get $6 - local.set $10 + local.set $11 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $11 br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 end local.get $6 @@ -25614,10 +26048,10 @@ end end i32.const -1 - local.set $9 + local.set $12 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $12 end ) (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -26126,6 +26560,10 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -26164,26 +26602,26 @@ local.get $7 local.get $6 i32.add - local.tee $8 - i32.const 0 local.tee $9 - local.get $8 + i32.const 0 + local.tee $10 local.get $9 + local.get $10 i32.gt_s select local.set $6 end local.get $5 i32.load offset=4 - local.set $8 + local.set $11 loop $while-continue|0 local.get $6 local.get $7 i32.lt_s - local.set $9 - local.get $9 + local.set $12 + local.get $12 if - local.get $8 + local.get $11 local.get $6 i32.const 1 i32.shl @@ -26197,10 +26635,10 @@ i32.eq if local.get $6 - local.set $10 + local.set $13 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $13 br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 end local.get $6 @@ -26211,10 +26649,10 @@ end end i32.const -1 - local.set $9 + local.set $14 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $14 end ) (func $~lib/typedarray/Int16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -26226,6 +26664,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -26271,15 +26711,15 @@ end local.get $5 i32.load offset=4 - local.set $8 + local.set $9 loop $while-continue|0 local.get $6 i32.const 0 i32.ge_s - local.set $9 - local.get $9 + local.set $10 + local.get $10 if - local.get $8 + local.get $9 local.get $6 i32.const 1 i32.shl @@ -26293,10 +26733,10 @@ i32.eq if local.get $6 - local.set $10 + local.set $11 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $11 br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 end local.get $6 @@ -26307,10 +26747,10 @@ end end i32.const -1 - local.set $9 + local.set $12 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $12 end ) (func $~lib/typedarray/Int16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -26821,6 +27261,10 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -26859,26 +27303,26 @@ local.get $7 local.get $6 i32.add - local.tee $8 - i32.const 0 local.tee $9 - local.get $8 + i32.const 0 + local.tee $10 local.get $9 + local.get $10 i32.gt_s select local.set $6 end local.get $5 i32.load offset=4 - local.set $8 + local.set $11 loop $while-continue|0 local.get $6 local.get $7 i32.lt_s - local.set $9 - local.get $9 + local.set $12 + local.get $12 if - local.get $8 + local.get $11 local.get $6 i32.const 1 i32.shl @@ -26890,10 +27334,10 @@ i32.eq if local.get $6 - local.set $10 + local.set $13 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $13 br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 end local.get $6 @@ -26904,10 +27348,10 @@ end end i32.const -1 - local.set $9 + local.set $14 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $14 end ) (func $~lib/typedarray/Uint16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -26919,6 +27363,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -26964,15 +27410,15 @@ end local.get $5 i32.load offset=4 - local.set $8 + local.set $9 loop $while-continue|0 local.get $6 i32.const 0 i32.ge_s - local.set $9 - local.get $9 + local.set $10 + local.get $10 if - local.get $8 + local.get $9 local.get $6 i32.const 1 i32.shl @@ -26984,10 +27430,10 @@ i32.eq if local.get $6 - local.set $10 + local.set $11 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $11 br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 end local.get $6 @@ -26998,10 +27444,10 @@ end end i32.const -1 - local.set $9 + local.set $12 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $12 end ) (func $~lib/typedarray/Uint16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -27510,6 +27956,10 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -27548,26 +27998,26 @@ local.get $7 local.get $6 i32.add - local.tee $8 - i32.const 0 local.tee $9 - local.get $8 + i32.const 0 + local.tee $10 local.get $9 + local.get $10 i32.gt_s select local.set $6 end local.get $5 i32.load offset=4 - local.set $8 + local.set $11 loop $while-continue|0 local.get $6 local.get $7 i32.lt_s - local.set $9 - local.get $9 + local.set $12 + local.get $12 if - local.get $8 + local.get $11 local.get $6 i32.const 2 i32.shl @@ -27577,10 +28027,10 @@ i32.eq if local.get $6 - local.set $10 + local.set $13 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $13 br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 end local.get $6 @@ -27591,10 +28041,10 @@ end end i32.const -1 - local.set $9 + local.set $14 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $14 end ) (func $~lib/typedarray/Int32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -27606,6 +28056,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -27651,15 +28103,15 @@ end local.get $5 i32.load offset=4 - local.set $8 + local.set $9 loop $while-continue|0 local.get $6 i32.const 0 i32.ge_s - local.set $9 - local.get $9 + local.set $10 + local.get $10 if - local.get $8 + local.get $9 local.get $6 i32.const 2 i32.shl @@ -27669,10 +28121,10 @@ i32.eq if local.get $6 - local.set $10 + local.set $11 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $11 br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 end local.get $6 @@ -27683,10 +28135,10 @@ end end i32.const -1 - local.set $9 + local.set $12 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $12 end ) (func $~lib/typedarray/Int32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -28193,6 +28645,10 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -28231,26 +28687,26 @@ local.get $7 local.get $6 i32.add - local.tee $8 - i32.const 0 local.tee $9 - local.get $8 + i32.const 0 + local.tee $10 local.get $9 + local.get $10 i32.gt_s select local.set $6 end local.get $5 i32.load offset=4 - local.set $8 + local.set $11 loop $while-continue|0 local.get $6 local.get $7 i32.lt_s - local.set $9 - local.get $9 + local.set $12 + local.get $12 if - local.get $8 + local.get $11 local.get $6 i32.const 2 i32.shl @@ -28260,10 +28716,10 @@ i32.eq if local.get $6 - local.set $10 + local.set $13 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $13 br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 end local.get $6 @@ -28274,10 +28730,10 @@ end end i32.const -1 - local.set $9 + local.set $14 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $14 end ) (func $~lib/typedarray/Uint32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -28289,6 +28745,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -28334,15 +28792,15 @@ end local.get $5 i32.load offset=4 - local.set $8 + local.set $9 loop $while-continue|0 local.get $6 i32.const 0 i32.ge_s - local.set $9 - local.get $9 + local.set $10 + local.get $10 if - local.get $8 + local.get $9 local.get $6 i32.const 2 i32.shl @@ -28352,10 +28810,10 @@ i32.eq if local.get $6 - local.set $10 + local.set $11 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $11 br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 end local.get $6 @@ -28366,10 +28824,10 @@ end end i32.const -1 - local.set $9 + local.set $12 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $12 end ) (func $~lib/typedarray/Uint32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -28876,6 +29334,10 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -28914,26 +29376,26 @@ local.get $7 local.get $6 i32.add - local.tee $8 - i32.const 0 local.tee $9 - local.get $8 + i32.const 0 + local.tee $10 local.get $9 + local.get $10 i32.gt_s select local.set $6 end local.get $5 i32.load offset=4 - local.set $8 + local.set $11 loop $while-continue|0 local.get $6 local.get $7 i32.lt_s - local.set $9 - local.get $9 + local.set $12 + local.get $12 if - local.get $8 + local.get $11 local.get $6 i32.const 3 i32.shl @@ -28943,10 +29405,10 @@ i64.eq if local.get $6 - local.set $10 + local.set $13 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $13 br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 end local.get $6 @@ -28957,10 +29419,10 @@ end end i32.const -1 - local.set $9 + local.set $14 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $14 end ) (func $~lib/typedarray/Int64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) @@ -28972,6 +29434,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -29017,15 +29481,15 @@ end local.get $5 i32.load offset=4 - local.set $8 + local.set $9 loop $while-continue|0 local.get $6 i32.const 0 i32.ge_s - local.set $9 - local.get $9 + local.set $10 + local.get $10 if - local.get $8 + local.get $9 local.get $6 i32.const 3 i32.shl @@ -29035,10 +29499,10 @@ i64.eq if local.get $6 - local.set $10 + local.set $11 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $11 br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 end local.get $6 @@ -29049,10 +29513,10 @@ end end i32.const -1 - local.set $9 + local.set $12 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $12 end ) (func $~lib/typedarray/Int64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (param $2 i32) (result i32) @@ -29560,6 +30024,10 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -29598,26 +30066,26 @@ local.get $7 local.get $6 i32.add - local.tee $8 - i32.const 0 local.tee $9 - local.get $8 + i32.const 0 + local.tee $10 local.get $9 + local.get $10 i32.gt_s select local.set $6 end local.get $5 i32.load offset=4 - local.set $8 + local.set $11 loop $while-continue|0 local.get $6 local.get $7 i32.lt_s - local.set $9 - local.get $9 + local.set $12 + local.get $12 if - local.get $8 + local.get $11 local.get $6 i32.const 3 i32.shl @@ -29627,10 +30095,10 @@ i64.eq if local.get $6 - local.set $10 + local.set $13 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $13 br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 end local.get $6 @@ -29641,10 +30109,10 @@ end end i32.const -1 - local.set $9 + local.set $14 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $14 end ) (func $~lib/typedarray/Uint64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) @@ -29656,6 +30124,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -29701,15 +30171,15 @@ end local.get $5 i32.load offset=4 - local.set $8 + local.set $9 loop $while-continue|0 local.get $6 i32.const 0 i32.ge_s - local.set $9 - local.get $9 + local.set $10 + local.get $10 if - local.get $8 + local.get $9 local.get $6 i32.const 3 i32.shl @@ -29719,10 +30189,10 @@ i64.eq if local.get $6 - local.set $10 + local.set $11 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $11 br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 end local.get $6 @@ -29733,10 +30203,10 @@ end end i32.const -1 - local.set $9 + local.set $12 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $12 end ) (func $~lib/typedarray/Uint64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (param $2 i32) (result i32) @@ -30244,6 +30714,10 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -30282,26 +30756,26 @@ local.get $7 local.get $6 i32.add - local.tee $8 - i32.const 0 local.tee $9 - local.get $8 + i32.const 0 + local.tee $10 local.get $9 + local.get $10 i32.gt_s select local.set $6 end local.get $5 i32.load offset=4 - local.set $8 + local.set $11 loop $while-continue|0 local.get $6 local.get $7 i32.lt_s - local.set $9 - local.get $9 + local.set $12 + local.get $12 if - local.get $8 + local.get $11 local.get $6 i32.const 2 i32.shl @@ -30311,10 +30785,10 @@ f32.eq if local.get $6 - local.set $10 + local.set $13 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $13 br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 end local.get $6 @@ -30325,10 +30799,10 @@ end end i32.const -1 - local.set $9 + local.set $14 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $14 end ) (func $~lib/typedarray/Float32Array#lastIndexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) @@ -30340,6 +30814,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -30385,15 +30861,15 @@ end local.get $5 i32.load offset=4 - local.set $8 + local.set $9 loop $while-continue|0 local.get $6 i32.const 0 i32.ge_s - local.set $9 - local.get $9 + local.set $10 + local.get $10 if - local.get $8 + local.get $9 local.get $6 i32.const 2 i32.shl @@ -30403,10 +30879,10 @@ f32.eq if local.get $6 - local.set $10 + local.set $11 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $11 br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 end local.get $6 @@ -30417,10 +30893,10 @@ end end i32.const -1 - local.set $9 + local.set $12 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $12 end ) (func $~lib/typedarray/Float32Array#lastIndexOf@varargs (param $0 i32) (param $1 f32) (param $2 i32) (result i32) @@ -30928,6 +31404,10 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -30966,26 +31446,26 @@ local.get $7 local.get $6 i32.add - local.tee $8 - i32.const 0 local.tee $9 - local.get $8 + i32.const 0 + local.tee $10 local.get $9 + local.get $10 i32.gt_s select local.set $6 end local.get $5 i32.load offset=4 - local.set $8 + local.set $11 loop $while-continue|0 local.get $6 local.get $7 i32.lt_s - local.set $9 - local.get $9 + local.set $12 + local.get $12 if - local.get $8 + local.get $11 local.get $6 i32.const 3 i32.shl @@ -30995,10 +31475,10 @@ f64.eq if local.get $6 - local.set $10 + local.set $13 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $13 br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 end local.get $6 @@ -31009,10 +31489,10 @@ end end i32.const -1 - local.set $9 + local.set $14 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $14 end ) (func $~lib/typedarray/Float64Array#lastIndexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) @@ -31024,6 +31504,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -31069,15 +31551,15 @@ end local.get $5 i32.load offset=4 - local.set $8 + local.set $9 loop $while-continue|0 local.get $6 i32.const 0 i32.ge_s - local.set $9 - local.get $9 + local.set $10 + local.get $10 if - local.get $8 + local.get $9 local.get $6 i32.const 3 i32.shl @@ -31087,10 +31569,10 @@ f64.eq if local.get $6 - local.set $10 + local.set $11 local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $11 br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 end local.get $6 @@ -31101,10 +31583,10 @@ end end i32.const -1 - local.set $9 + local.set $12 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $12 end ) (func $~lib/typedarray/Float64Array#lastIndexOf@varargs (param $0 i32) (param $1 f64) (param $2 i32) (result i32) @@ -31611,8 +32093,12 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 f64) + (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 f64) + (local $14 i32) + (local $15 i32) block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -31653,40 +32139,40 @@ local.get $7 local.get $6 i32.add - local.tee $8 - i32.const 0 local.tee $9 - local.get $8 + i32.const 0 + local.tee $10 local.get $9 + local.get $10 i32.gt_s select local.set $6 end local.get $5 i32.load offset=4 - local.set $8 + local.set $11 loop $while-continue|0 local.get $6 local.get $7 i32.lt_s - local.set $9 - local.get $9 + local.set $12 + local.get $12 if - local.get $8 + local.get $11 local.get $6 i32.const 3 i32.shl i32.add f64.load - local.set $10 - local.get $10 + local.set $13 + local.get $13 local.get $4 f64.eq if (result i32) i32.const 1 else - local.get $10 - local.get $10 + local.get $13 + local.get $13 f64.ne local.get $4 local.get $4 @@ -31695,10 +32181,10 @@ end if i32.const 1 - local.set $11 + local.set $14 local.get $5 call $~lib/rt/pure/__release - local.get $11 + local.get $14 br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 end local.get $6 @@ -31709,10 +32195,10 @@ end end i32.const 0 - local.set $9 + local.set $15 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $15 br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 end ) @@ -31724,8 +32210,12 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 f32) + (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 f32) + (local $14 i32) + (local $15 i32) block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -31766,40 +32256,40 @@ local.get $7 local.get $6 i32.add - local.tee $8 - i32.const 0 local.tee $9 - local.get $8 + i32.const 0 + local.tee $10 local.get $9 + local.get $10 i32.gt_s select local.set $6 end local.get $5 i32.load offset=4 - local.set $8 + local.set $11 loop $while-continue|0 local.get $6 local.get $7 i32.lt_s - local.set $9 - local.get $9 + local.set $12 + local.get $12 if - local.get $8 + local.get $11 local.get $6 i32.const 2 i32.shl i32.add f32.load - local.set $10 - local.get $10 + local.set $13 + local.get $13 local.get $4 f32.eq if (result i32) i32.const 1 else - local.get $10 - local.get $10 + local.get $13 + local.get $13 f32.ne local.get $4 local.get $4 @@ -31808,10 +32298,10 @@ end if i32.const 1 - local.set $11 + local.set $14 local.get $5 call $~lib/rt/pure/__release - local.get $11 + local.get $14 br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 end local.get $6 @@ -31822,10 +32312,10 @@ end end i32.const 0 - local.set $9 + local.set $15 local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $15 br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 end ) @@ -31894,6 +32384,9 @@ (local $9 i64) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) loop $while-continue|0 local.get $1 i32.const 10000 @@ -31958,30 +32451,30 @@ local.get $1 i32.const 100 i32.div_u - local.set $3 + local.set $10 local.get $1 i32.const 100 i32.rem_u - local.set $10 - local.get $3 + local.set $11 + local.get $10 local.set $1 local.get $2 i32.const 2 i32.sub local.set $2 i32.const 1940 - local.get $10 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $12 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $12 i32.store end local.get $1 @@ -31998,13 +32491,13 @@ i32.shl i32.add i32.load - local.set $11 + local.set $13 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $13 i32.store else local.get $2 @@ -32014,13 +32507,13 @@ i32.const 48 local.get $1 i32.add - local.set $11 + local.set $14 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $14 i32.store16 end ) @@ -32223,6 +32716,16 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) local.get $0 call $~lib/string/String#get:length local.set $3 @@ -32234,67 +32737,67 @@ local.get $5 i32.gt_s select - local.tee $4 + local.tee $6 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $7 + local.get $6 + local.get $7 i32.lt_s select - local.set $6 + local.set $8 local.get $2 - local.tee $4 + local.tee $9 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 + local.tee $10 + local.get $9 + local.get $10 i32.gt_s select - local.tee $4 + local.tee $11 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $12 + local.get $11 + local.get $12 i32.lt_s select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 + local.set $13 + local.get $8 + local.tee $14 + local.get $13 + local.tee $15 + local.get $14 + local.get $15 i32.lt_s select i32.const 1 i32.shl - local.set $8 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 + local.set $16 + local.get $8 + local.tee $17 + local.get $13 + local.tee $18 + local.get $17 + local.get $18 i32.gt_s select i32.const 1 i32.shl - local.set $9 - local.get $9 - local.get $8 + local.set $19 + local.get $19 + local.get $16 i32.sub - local.set $10 - local.get $10 + local.set $20 + local.get $20 i32.eqz if i32.const 1920 call $~lib/rt/pure/__retain return end - local.get $8 + local.get $16 i32.eqz if (result i32) - local.get $9 + local.get $19 local.get $3 i32.const 1 i32.shl @@ -32307,17 +32810,17 @@ call $~lib/rt/pure/__retain return end - local.get $10 + local.get $20 i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $11 - local.get $11 + local.set $21 + local.get $21 local.get $0 - local.get $8 + local.get $16 i32.add - local.get $10 + local.get $20 call $~lib/memory/memory.copy - local.get $11 + local.get $21 call $~lib/rt/pure/__retain ) (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -32329,6 +32832,11 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -32353,77 +32861,77 @@ local.get $0 i32.load8_s call $~lib/util/number/itoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 11 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 11 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 0 i32.shl i32.add i32.load8_s - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -32433,35 +32941,35 @@ i32.shl i32.add i32.load8_s - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/typedarray/Int8Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -32486,6 +32994,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -32557,33 +33068,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $10 + local.get $12 return end local.get $5 @@ -32598,16 +33109,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -32639,44 +33153,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $6 ) (func $~lib/typedarray/Int8Array#toString (param $0 i32) (result i32) local.get $0 @@ -32886,6 +33400,11 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -32910,77 +33429,77 @@ local.get $0 i32.load8_u call $~lib/util/number/itoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 10 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 10 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 0 i32.shl i32.add i32.load8_u - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -32990,35 +33509,35 @@ i32.shl i32.add i32.load8_u - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/typedarray/Uint8Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -33336,6 +33855,11 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -33360,77 +33884,77 @@ local.get $0 i32.load16_s call $~lib/util/number/itoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 11 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 11 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 1 i32.shl i32.add i32.load16_s - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -33440,35 +33964,35 @@ i32.shl i32.add i32.load16_s - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/typedarray/Int16Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -33656,6 +34180,11 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -33680,77 +34209,77 @@ local.get $0 i32.load16_u call $~lib/util/number/itoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 10 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 10 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 1 i32.shl i32.add i32.load16_u - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -33760,35 +34289,35 @@ i32.shl i32.add i32.load16_u - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/typedarray/Uint16Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -33990,6 +34519,11 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -34014,77 +34548,77 @@ local.get $0 i32.load call $~lib/util/number/itoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 11 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 11 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 2 i32.shl i32.add i32.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -34094,35 +34628,35 @@ i32.shl i32.add i32.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/typedarray/Int32Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -34300,6 +34834,11 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -34324,77 +34863,77 @@ local.get $0 i32.load call $~lib/util/number/itoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 10 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 10 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 2 i32.shl i32.add i32.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -34404,35 +34943,35 @@ i32.shl i32.add i32.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/typedarray/Uint32Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -34716,7 +35255,10 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i64) + (local $8 i32) + (local $9 i32) + (local $10 i64) + (local $11 i32) local.get $0 i64.const 0 i64.ne @@ -34775,26 +35317,26 @@ call $~lib/util/number/decimalCount64High local.get $1 i32.add - local.set $4 - local.get $4 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc local.set $2 local.get $2 - local.set $6 + local.set $11 local.get $0 - local.set $8 - local.get $4 - local.set $5 + local.set $10 + local.get $8 + local.set $9 i32.const 0 i32.const 1 i32.ge_s drop - local.get $6 - local.get $8 - local.get $5 + local.get $11 + local.get $10 + local.get $9 call $~lib/util/number/utoa64_lut end local.get $1 @@ -34827,7 +35369,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) + (local $10 i64) + (local $11 i32) local.get $0 local.get $1 i32.const 1 @@ -34920,18 +35464,18 @@ i32.add local.set $4 local.get $0 - local.set $7 + local.set $11 local.get $2 - local.set $9 + local.set $10 local.get $4 - local.set $6 + local.set $9 i32.const 0 i32.const 1 i32.ge_s drop - local.get $7 + local.get $11 + local.get $10 local.get $9 - local.get $6 call $~lib/util/number/utoa64_lut end local.get $4 @@ -34944,7 +35488,12 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i64) + (local $10 i32) + (local $11 i64) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -34969,77 +35518,77 @@ local.get $0 i64.load call $~lib/util/number/itoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 21 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 21 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 3 i32.shl i32.add i64.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -35049,35 +35598,35 @@ i32.shl i32.add i64.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/typedarray/Int64Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -35178,7 +35727,10 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i64) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) local.get $0 i64.const 0 i64.ne @@ -35221,26 +35773,26 @@ else local.get $0 call $~lib/util/number/decimalCount64High - local.set $3 - local.get $3 + local.set $7 + local.get $7 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc local.set $1 local.get $1 - local.set $5 + local.set $10 local.get $0 - local.set $7 - local.get $3 - local.set $4 + local.set $9 + local.get $7 + local.set $8 i32.const 0 i32.const 1 i32.ge_s drop - local.get $5 - local.get $7 - local.get $4 + local.get $10 + local.get $9 + local.get $8 call $~lib/util/number/utoa64_lut end local.get $1 @@ -35267,7 +35819,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) + (local $10 i64) + (local $11 i32) local.get $0 local.get $1 i32.const 1 @@ -35336,18 +35890,18 @@ i32.add local.set $4 local.get $0 - local.set $7 + local.set $11 local.get $2 - local.set $9 + local.set $10 local.get $4 - local.set $6 + local.set $9 i32.const 0 i32.const 1 i32.ge_s drop - local.get $7 + local.get $11 + local.get $10 local.get $9 - local.get $6 call $~lib/util/number/utoa64_lut end local.get $4 @@ -35360,7 +35914,12 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i64) + (local $10 i32) + (local $11 i64) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -35385,77 +35944,77 @@ local.get $0 i64.load call $~lib/util/number/itoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 20 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 20 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 3 i32.shl i32.add i64.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -35465,35 +36024,35 @@ i32.shl i32.add i64.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/itoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/typedarray/Uint64Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -35600,16 +36159,31 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (local $19 i64) + (local $19 i32) (local $20 i64) (local $21 i64) (local $22 i64) (local $23 i64) - (local $24 i32) + (local $24 i64) (local $25 i32) (local $26 i32) (local $27 i32) - (local $28 i64) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i64) + (local $33 i32) + (local $34 i64) + (local $35 i64) + (local $36 i64) + (local $37 i64) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) i32.const 0 local.get $4 i32.sub @@ -35813,11 +36387,11 @@ if local.get $0 local.get $15 - local.tee $18 + local.tee $19 i32.const 1 i32.add local.set $15 - local.get $18 + local.get $19 i32.const 1 i32.shl i32.add @@ -35839,8 +36413,8 @@ i64.shl local.get $13 i64.add - local.set $19 - local.get $19 + local.set $20 + local.get $20 local.get $5 i64.le_u if @@ -35849,13 +36423,13 @@ i32.add global.set $~lib/util/number/_K local.get $0 - local.set $24 + local.set $26 local.get $15 - local.set $18 + local.set $25 local.get $5 + local.set $24 + local.get $20 local.set $23 - local.get $19 - local.set $22 i32.const 3448 local.get $14 i32.const 2 @@ -35865,71 +36439,71 @@ local.get $7 i64.extend_i32_s i64.shl - local.set $21 + local.set $22 local.get $10 - local.set $20 - local.get $24 - local.get $18 + local.set $21 + local.get $26 + local.get $25 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $25 - local.get $25 + local.set $27 + local.get $27 i32.load16_u - local.set $26 + local.set $28 loop $while-continue|3 - local.get $22 - local.get $20 + local.get $23 + local.get $21 i64.lt_u if (result i32) + local.get $24 local.get $23 - local.get $22 i64.sub - local.get $21 + local.get $22 i64.ge_u else i32.const 0 end if (result i32) + local.get $23 local.get $22 - local.get $21 i64.add - local.get $20 + local.get $21 i64.lt_u if (result i32) i32.const 1 else - local.get $20 - local.get $22 + local.get $21 + local.get $23 i64.sub + local.get $23 local.get $22 - local.get $21 i64.add - local.get $20 + local.get $21 i64.sub i64.gt_u end else i32.const 0 end - local.set $27 - local.get $27 + local.set $30 + local.get $30 if - local.get $26 + local.get $28 i32.const 1 i32.sub - local.set $26 + local.set $28 + local.get $23 local.get $22 - local.get $21 i64.add - local.set $22 + local.set $23 br $while-continue|3 end end - local.get $25 - local.get $26 + local.get $27 + local.get $28 i32.store16 local.get $15 return @@ -35939,8 +36513,8 @@ end loop $while-continue|4 i32.const 1 - local.set $16 - local.get $16 + local.set $31 + local.get $31 if local.get $13 i64.const 10 @@ -35954,8 +36528,8 @@ local.get $7 i64.extend_i32_s i64.shr_u - local.set $23 - local.get $23 + local.set $32 + local.get $32 local.get $15 i64.extend_i32_s i64.or @@ -35964,16 +36538,16 @@ if local.get $0 local.get $15 - local.tee $26 + local.tee $33 i32.const 1 i32.add local.set $15 - local.get $26 + local.get $33 i32.const 1 i32.shl i32.add i32.const 48 - local.get $23 + local.get $32 i32.wrap_i64 i32.const 65535 i32.and @@ -36008,79 +36582,79 @@ i64.mul local.set $10 local.get $0 - local.set $18 + local.set $39 local.get $15 - local.set $27 + local.set $38 local.get $5 - local.set $28 + local.set $37 local.get $13 - local.set $22 + local.set $36 local.get $8 - local.set $21 + local.set $35 local.get $10 - local.set $20 - local.get $18 - local.get $27 + local.set $34 + local.get $39 + local.get $38 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $26 - local.get $26 + local.set $40 + local.get $40 i32.load16_u - local.set $25 + local.set $41 loop $while-continue|6 - local.get $22 - local.get $20 + local.get $36 + local.get $34 i64.lt_u if (result i32) - local.get $28 - local.get $22 + local.get $37 + local.get $36 i64.sub - local.get $21 + local.get $35 i64.ge_u else i32.const 0 end if (result i32) - local.get $22 - local.get $21 + local.get $36 + local.get $35 i64.add - local.get $20 + local.get $34 i64.lt_u if (result i32) i32.const 1 else - local.get $20 - local.get $22 + local.get $34 + local.get $36 i64.sub - local.get $22 - local.get $21 + local.get $36 + local.get $35 i64.add - local.get $20 + local.get $34 i64.sub i64.gt_u end else i32.const 0 end - local.set $24 - local.get $24 + local.set $43 + local.get $43 if - local.get $25 + local.get $41 i32.const 1 i32.sub - local.set $25 - local.get $22 - local.get $21 + local.set $41 + local.get $36 + local.get $35 i64.add - local.set $22 + local.set $36 br $while-continue|6 end end - local.get $26 - local.get $25 + local.get $40 + local.get $41 i32.store16 local.get $15 return @@ -36100,6 +36674,19 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) local.get $2 i32.eqz if @@ -36189,11 +36776,11 @@ i32.const 1 i32.shl i32.add - local.set $4 - local.get $4 + local.set $6 + local.get $6 i32.const 2 i32.add - local.get $4 + local.get $6 i32.const 0 local.get $2 i32.sub @@ -36226,9 +36813,9 @@ i32.const 2 local.get $3 i32.sub - local.set $4 + local.set $7 local.get $0 - local.get $4 + local.get $7 i32.const 1 i32.shl i32.add @@ -36245,30 +36832,30 @@ i32.or i32.store i32.const 2 - local.set $5 + local.set $8 loop $for-loop|1 - local.get $5 - local.get $4 + local.get $8 + local.get $7 i32.lt_s - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $0 - local.get $5 + local.get $8 i32.const 1 i32.shl i32.add i32.const 48 i32.store16 - local.get $5 + local.get $8 i32.const 1 i32.add - local.set $5 + local.set $8 br $for-loop|1 end end local.get $1 - local.get $4 + local.get $7 i32.add return else @@ -36282,48 +36869,48 @@ local.get $0 i32.const 4 i32.add - local.set $5 + local.set $11 local.get $3 i32.const 1 i32.sub - local.set $6 - local.get $6 + local.set $10 + local.get $10 i32.const 0 i32.lt_s - local.set $4 - local.get $4 + local.set $12 + local.get $12 if i32.const 0 - local.get $6 + local.get $10 i32.sub - local.set $6 + local.set $10 end - local.get $6 + local.get $10 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $7 - local.get $5 - local.set $10 - local.get $6 - local.set $9 - local.get $7 - local.set $8 + local.set $13 + local.get $11 + local.set $16 + local.get $10 + local.set $15 + local.get $13 + local.set $14 i32.const 0 i32.const 1 i32.ge_s drop - local.get $10 - local.get $9 - local.get $8 + local.get $16 + local.get $15 + local.get $14 call $~lib/util/number/utoa32_lut - local.get $5 + local.get $11 i32.const 45 i32.const 43 - local.get $4 + local.get $12 select i32.store16 - local.get $7 + local.get $13 local.set $1 local.get $1 i32.const 2 @@ -36333,14 +36920,14 @@ local.get $1 i32.const 1 i32.shl - local.set $7 + local.set $17 local.get $0 i32.const 4 i32.add local.get $0 i32.const 2 i32.add - local.get $7 + local.get $17 i32.const 2 i32.sub call $~lib/memory/memory.copy @@ -36348,58 +36935,58 @@ i32.const 46 i32.store16 offset=2 local.get $0 - local.get $7 + local.get $17 i32.add i32.const 101 i32.store16 offset=2 local.get $1 local.get $0 - local.get $7 + local.get $17 i32.add i32.const 4 i32.add - local.set $9 + local.set $19 local.get $3 i32.const 1 i32.sub - local.set $8 - local.get $8 + local.set $18 + local.get $18 i32.const 0 i32.lt_s - local.set $4 - local.get $4 + local.set $20 + local.get $20 if i32.const 0 - local.get $8 + local.get $18 i32.sub - local.set $8 + local.set $18 end - local.get $8 + local.get $18 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $5 - local.get $9 - local.set $11 - local.get $8 - local.set $6 - local.get $5 - local.set $10 + local.set $21 + local.get $19 + local.set $24 + local.get $18 + local.set $23 + local.get $21 + local.set $22 i32.const 0 i32.const 1 i32.ge_s drop - local.get $11 - local.get $6 - local.get $10 + local.get $24 + local.get $23 + local.get $22 call $~lib/util/number/utoa32_lut - local.get $9 + local.get $19 i32.const 45 i32.const 43 - local.get $4 + local.get $20 select i32.store16 - local.get $5 + local.get $21 i32.add local.set $1 local.get $1 @@ -36430,19 +37017,51 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 f64) - (local $17 i64) - (local $18 i64) - (local $19 i64) - (local $20 i64) + (local $16 i32) + (local $17 f64) + (local $18 i32) + (local $19 i32) + (local $20 i32) (local $21 i64) - (local $22 i64) + (local $22 i32) (local $23 i64) (local $24 i64) (local $25 i64) - (local $26 i32) + (local $26 i64) (local $27 i64) - (local $28 i32) + (local $28 i64) + (local $29 i64) + (local $30 i64) + (local $31 i64) + (local $32 i64) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i64) + (local $37 i64) + (local $38 i64) + (local $39 i64) + (local $40 i64) + (local $41 i64) + (local $42 i64) + (local $43 i64) + (local $44 i64) + (local $45 i64) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i64) + (local $50 i64) + (local $51 i64) + (local $52 i64) + (local $53 i64) + (local $54 i64) + (local $55 i64) + (local $56 i64) + (local $57 i64) + (local $58 i64) + (local $59 i64) + (local $60 i32) local.get $1 f64.const 0 f64.lt @@ -36546,47 +37165,47 @@ local.get $13 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp - local.set $10 + local.set $16 i32.const -61 - local.get $10 + local.get $16 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 f64.mul f64.const 347 f64.add - local.set $16 - local.get $16 + local.set $17 + local.get $17 i32.trunc_f64_s - local.set $15 - local.get $15 - local.get $15 + local.set $18 + local.get $18 + local.get $18 f64.convert_i32_s - local.get $16 + local.get $17 f64.ne i32.add - local.set $15 - local.get $15 + local.set $18 + local.get $18 i32.const 3 i32.shr_s i32.const 1 i32.add - local.set $14 + local.set $19 i32.const 348 - local.get $14 + local.get $19 i32.const 3 i32.shl i32.sub global.set $~lib/util/number/_K i32.const 2576 - local.get $14 + local.get $19 i32.const 3 i32.shl i32.add i64.load global.set $~lib/util/number/_frc_pow i32.const 3272 - local.get $14 + local.get $19 i32.const 1 i32.shl i32.add @@ -36595,249 +37214,249 @@ local.get $9 i64.clz i32.wrap_i64 - local.set $14 + local.set $20 local.get $9 - local.get $14 + local.get $20 i64.extend_i32_s i64.shl local.set $9 local.get $7 - local.get $14 + local.get $20 i32.sub local.set $7 global.get $~lib/util/number/_frc_pow - local.set $12 + local.set $21 global.get $~lib/util/number/_exp_pow - local.set $15 + local.set $22 local.get $9 - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $24 + local.get $21 + local.set $23 + local.get $24 i64.const 4294967295 i64.and - local.set $18 - local.get $11 + local.set $25 + local.get $23 i64.const 4294967295 i64.and - local.set $19 - local.get $17 + local.set $26 + local.get $24 i64.const 32 i64.shr_u - local.set $20 - local.get $11 + local.set $27 + local.get $23 i64.const 32 i64.shr_u - local.set $21 - local.get $18 - local.get $19 + local.set $28 + local.get $25 + local.get $26 i64.mul - local.set $22 - local.get $20 - local.get $19 + local.set $29 + local.get $27 + local.get $26 i64.mul - local.get $22 + local.get $29 i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $18 - local.get $21 + local.set $30 + local.get $25 + local.get $28 i64.mul - local.get $23 + local.get $30 i64.const 4294967295 i64.and i64.add - local.set $24 - local.get $24 + local.set $31 + local.get $31 i64.const 2147483647 i64.add - local.set $24 - local.get $23 + local.set $31 + local.get $30 i64.const 32 i64.shr_u - local.set $23 - local.get $24 + local.set $30 + local.get $31 i64.const 32 i64.shr_u - local.set $24 - local.get $20 - local.get $21 + local.set $31 + local.get $27 + local.get $28 i64.mul - local.get $23 + local.get $30 i64.add - local.get $24 + local.get $31 i64.add - local.set $24 + local.set $32 local.get $7 - local.set $10 - local.get $15 - local.set $13 - local.get $10 - local.get $13 + local.set $34 + local.get $22 + local.set $33 + local.get $34 + local.get $33 i32.add i32.const 64 i32.add - local.set $10 + local.set $35 global.get $~lib/util/number/_frc_plus - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $37 + local.get $21 + local.set $36 + local.get $37 i64.const 4294967295 i64.and - local.set $23 - local.get $11 + local.set $38 + local.get $36 i64.const 4294967295 i64.and - local.set $22 - local.get $17 + local.set $39 + local.get $37 i64.const 32 i64.shr_u - local.set $21 - local.get $11 + local.set $40 + local.get $36 i64.const 32 i64.shr_u - local.set $20 - local.get $23 - local.get $22 + local.set $41 + local.get $38 + local.get $39 i64.mul - local.set $19 - local.get $21 - local.get $22 + local.set $42 + local.get $40 + local.get $39 i64.mul - local.get $19 + local.get $42 i64.const 32 i64.shr_u i64.add - local.set $18 - local.get $23 - local.get $20 + local.set $43 + local.get $38 + local.get $41 i64.mul - local.get $18 + local.get $43 i64.const 4294967295 i64.and i64.add - local.set $25 - local.get $25 + local.set $44 + local.get $44 i64.const 2147483647 i64.add - local.set $25 - local.get $18 + local.set $44 + local.get $43 i64.const 32 i64.shr_u - local.set $18 - local.get $25 + local.set $43 + local.get $44 i64.const 32 i64.shr_u - local.set $25 - local.get $21 - local.get $20 + local.set $44 + local.get $40 + local.get $41 i64.mul - local.get $18 + local.get $43 i64.add - local.get $25 + local.get $44 i64.add i64.const 1 i64.sub - local.set $25 + local.set $45 global.get $~lib/util/number/_exp - local.set $26 - local.get $15 - local.set $13 - local.get $26 - local.get $13 + local.set $47 + local.get $22 + local.set $46 + local.get $47 + local.get $46 i32.add i32.const 64 i32.add - local.set $26 + local.set $48 global.get $~lib/util/number/_frc_minus - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $50 + local.get $21 + local.set $49 + local.get $50 i64.const 4294967295 i64.and - local.set $18 - local.get $11 + local.set $51 + local.get $49 i64.const 4294967295 i64.and - local.set $19 - local.get $17 + local.set $52 + local.get $50 i64.const 32 i64.shr_u - local.set $20 - local.get $11 + local.set $53 + local.get $49 i64.const 32 i64.shr_u - local.set $21 - local.get $18 - local.get $19 + local.set $54 + local.get $51 + local.get $52 i64.mul - local.set $22 - local.get $20 - local.get $19 + local.set $55 + local.get $53 + local.get $52 i64.mul - local.get $22 + local.get $55 i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $18 - local.get $21 + local.set $56 + local.get $51 + local.get $54 i64.mul - local.get $23 + local.get $56 i64.const 4294967295 i64.and i64.add - local.set $27 - local.get $27 + local.set $57 + local.get $57 i64.const 2147483647 i64.add - local.set $27 - local.get $23 + local.set $57 + local.get $56 i64.const 32 i64.shr_u - local.set $23 - local.get $27 + local.set $56 + local.get $57 i64.const 32 i64.shr_u - local.set $27 - local.get $20 - local.get $21 + local.set $57 + local.get $53 + local.get $54 i64.mul - local.get $23 + local.get $56 i64.add - local.get $27 + local.get $57 i64.add i64.const 1 i64.add - local.set $27 - local.get $25 - local.get $27 + local.set $58 + local.get $45 + local.get $58 i64.sub - local.set $23 + local.set $59 local.get $4 - local.get $24 - local.get $10 - local.get $25 - local.get $26 - local.get $23 + local.get $32 + local.get $35 + local.get $45 + local.get $48 + local.get $59 local.get $3 call $~lib/util/number/genDigits - local.set $28 + local.set $60 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $28 + local.get $60 local.get $2 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.set $28 - local.get $28 + local.set $60 + local.get $60 local.get $2 i32.add ) @@ -36988,7 +37607,12 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 f32) + (local $10 i32) + (local $11 f32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -37014,78 +37638,78 @@ f32.load f64.promote_f32 call $~lib/util/number/dtoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 28 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 28 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 2 i32.shl i32.add f32.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 f64.promote_f32 call $~lib/util/number/dtoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -37095,36 +37719,36 @@ i32.shl i32.add f32.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 f64.promote_f32 call $~lib/util/number/dtoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/typedarray/Float32Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -37226,7 +37850,12 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 f64) + (local $10 i32) + (local $11 f64) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -37251,77 +37880,77 @@ local.get $0 f64.load call $~lib/util/number/dtoa - local.tee $4 - local.set $5 + local.tee $5 + local.set $6 local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $6 return end local.get $2 call $~lib/string/String#get:length - local.set $6 + local.set $7 i32.const 28 - local.get $6 + local.get $7 i32.add local.get $3 i32.mul i32.const 28 i32.add - local.set $7 - local.get $7 + local.set $8 + local.get $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 local.set $9 i32.const 0 - local.set $4 + local.set $10 + i32.const 0 + local.set $12 loop $for-loop|0 - local.get $4 + local.get $12 local.get $3 i32.lt_s - local.set $5 - local.get $5 + local.set $13 + local.get $13 if local.get $0 - local.get $4 + local.get $12 i32.const 3 i32.shl i32.add f64.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/dtoa_stream i32.add - local.set $9 - local.get $6 + local.set $10 + local.get $7 if - local.get $8 local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $6 + local.get $10 + local.get $7 i32.add - local.set $9 + local.set $10 end - local.get $4 + local.get $12 i32.const 1 i32.add - local.set $4 + local.set $12 br $for-loop|0 end end @@ -37331,35 +37960,35 @@ i32.shl i32.add f64.load - local.set $10 - local.get $9 - local.get $8 + local.set $11 + local.get $10 local.get $9 local.get $10 + local.get $11 call $~lib/util/number/dtoa_stream i32.add - local.set $9 - local.get $7 - local.get $9 + local.set $10 + local.get $8 + local.get $10 i32.gt_s if - local.get $8 - i32.const 0 local.get $9 + i32.const 0 + local.get $10 call $~lib/string/String#substring - local.set $4 + local.set $14 local.get $2 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $14 return end - local.get $8 - local.set $4 + local.get $9 + local.set $15 local.get $2 call $~lib/rt/pure/__release - local.get $4 + local.get $15 ) (func $~lib/typedarray/Float64Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -37498,6 +38127,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -37606,10 +38236,10 @@ local.get $5 call $~lib/rt/pure/__release local.get $9 - local.set $8 + local.set $10 local.get $0 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 @@ -37640,6 +38270,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) local.get $0 call $~lib/arraybuffer/ArrayBuffer#get:byteLength local.set $3 @@ -37659,11 +38297,11 @@ select else local.get $1 - local.tee $4 + local.tee $6 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $7 + local.get $6 + local.get $7 i32.lt_s select end @@ -37675,20 +38313,20 @@ local.get $3 local.get $2 i32.add - local.tee $4 + local.tee $8 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 + local.tee $9 + local.get $8 + local.get $9 i32.gt_s select else local.get $2 - local.tee $4 + local.tee $10 local.get $3 - local.tee $5 - local.get $4 - local.get $5 + local.tee $11 + local.get $10 + local.get $11 i32.lt_s select end @@ -37696,25 +38334,25 @@ local.get $2 local.get $1 i32.sub - local.tee $4 + local.tee $12 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 + local.tee $13 + local.get $12 + local.get $13 i32.gt_s select - local.set $6 - local.get $6 + local.set $14 + local.get $14 i32.const 0 call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 + local.set $15 + local.get $15 local.get $0 local.get $1 i32.add - local.get $6 + local.get $14 call $~lib/memory/memory.copy - local.get $7 + local.get $15 call $~lib/rt/pure/__retain ) (func $~lib/typedarray/Int8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -37725,6 +38363,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -37833,10 +38472,10 @@ local.get $5 call $~lib/rt/pure/__release local.get $9 - local.set $8 + local.set $10 local.get $0 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $~lib/typedarray/Int8Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 @@ -37870,6 +38509,9 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $std/typedarray/testArrayWrapValues call $~lib/rt/pure/__retain local.set $0 @@ -37929,25 +38571,25 @@ global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int8Array.wrap@varargs - local.set $5 + local.set $8 local.get $7 call $~lib/rt/pure/__release - local.get $5 + local.get $8 local.set $7 i32.const 0 - local.set $5 + local.set $9 loop $for-loop|1 - local.get $5 + local.get $9 local.get $1 i32.lt_s - local.set $4 - local.get $4 + local.set $10 + local.get $10 if local.get $3 - local.get $5 + local.get $9 call $~lib/typedarray/Int8Array#__get local.get $7 - local.get $5 + local.get $9 call $~lib/typedarray/Int8Array#__get i32.eq i32.eqz @@ -37959,10 +38601,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|1 end end @@ -37986,6 +38628,9 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $std/typedarray/testArrayWrapValues call $~lib/rt/pure/__retain local.set $0 @@ -38045,25 +38690,25 @@ global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Uint8Array.wrap@varargs - local.set $5 + local.set $8 local.get $7 call $~lib/rt/pure/__release - local.get $5 + local.get $8 local.set $7 i32.const 0 - local.set $5 + local.set $9 loop $for-loop|1 - local.get $5 + local.get $9 local.get $1 i32.lt_s - local.set $4 - local.get $4 + local.set $10 + local.get $10 if local.get $3 - local.get $5 + local.get $9 call $~lib/typedarray/Uint8Array#__get local.get $7 - local.get $5 + local.get $9 call $~lib/typedarray/Uint8Array#__get i32.eq i32.eqz @@ -38075,10 +38720,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|1 end end @@ -38101,6 +38746,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -38209,10 +38855,10 @@ local.get $5 call $~lib/rt/pure/__release local.get $9 - local.set $8 + local.set $10 local.get $0 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $~lib/typedarray/Uint8ClampedArray.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 @@ -38246,6 +38892,9 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $std/typedarray/testArrayWrapValues call $~lib/rt/pure/__retain local.set $0 @@ -38307,25 +38956,25 @@ global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Uint8ClampedArray.wrap@varargs - local.set $5 + local.set $8 local.get $7 call $~lib/rt/pure/__release - local.get $5 + local.get $8 local.set $7 i32.const 0 - local.set $5 + local.set $9 loop $for-loop|1 - local.get $5 + local.get $9 local.get $1 i32.lt_s - local.set $4 - local.get $4 + local.set $10 + local.get $10 if local.get $3 - local.get $5 + local.get $9 call $~lib/typedarray/Uint8ClampedArray#__get local.get $7 - local.get $5 + local.get $9 call $~lib/typedarray/Uint8ClampedArray#__get i32.eq i32.eqz @@ -38337,10 +38986,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|1 end end @@ -38363,6 +39012,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -38471,10 +39121,10 @@ local.get $5 call $~lib/rt/pure/__release local.get $9 - local.set $8 + local.set $10 local.get $0 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $~lib/typedarray/Int16Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 @@ -38508,6 +39158,9 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $std/typedarray/testArrayWrapValues call $~lib/rt/pure/__retain local.set $0 @@ -38573,25 +39226,25 @@ global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int16Array.wrap@varargs - local.set $5 + local.set $8 local.get $7 call $~lib/rt/pure/__release - local.get $5 + local.get $8 local.set $7 i32.const 0 - local.set $5 + local.set $9 loop $for-loop|1 - local.get $5 + local.get $9 local.get $1 i32.lt_s - local.set $4 - local.get $4 + local.set $10 + local.get $10 if local.get $3 - local.get $5 + local.get $9 call $~lib/typedarray/Int16Array#__get local.get $7 - local.get $5 + local.get $9 call $~lib/typedarray/Int16Array#__get i32.eq i32.eqz @@ -38603,10 +39256,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|1 end end @@ -38629,6 +39282,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -38737,10 +39391,10 @@ local.get $5 call $~lib/rt/pure/__release local.get $9 - local.set $8 + local.set $10 local.get $0 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $~lib/typedarray/Uint16Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 @@ -38774,6 +39428,9 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $std/typedarray/testArrayWrapValues call $~lib/rt/pure/__retain local.set $0 @@ -38839,25 +39496,25 @@ global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Uint16Array.wrap@varargs - local.set $5 + local.set $8 local.get $7 call $~lib/rt/pure/__release - local.get $5 + local.get $8 local.set $7 i32.const 0 - local.set $5 + local.set $9 loop $for-loop|1 - local.get $5 + local.get $9 local.get $1 i32.lt_s - local.set $4 - local.get $4 + local.set $10 + local.get $10 if local.get $3 - local.get $5 + local.get $9 call $~lib/typedarray/Uint16Array#__get local.get $7 - local.get $5 + local.get $9 call $~lib/typedarray/Uint16Array#__get i32.eq i32.eqz @@ -38869,10 +39526,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|1 end end @@ -38895,6 +39552,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -39003,10 +39661,10 @@ local.get $5 call $~lib/rt/pure/__release local.get $9 - local.set $8 + local.set $10 local.get $0 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $~lib/typedarray/Int32Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 @@ -39040,6 +39698,9 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $std/typedarray/testArrayWrapValues call $~lib/rt/pure/__retain local.set $0 @@ -39105,25 +39766,25 @@ global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array.wrap@varargs - local.set $5 + local.set $8 local.get $7 call $~lib/rt/pure/__release - local.get $5 + local.get $8 local.set $7 i32.const 0 - local.set $5 + local.set $9 loop $for-loop|1 - local.get $5 + local.get $9 local.get $1 i32.lt_s - local.set $4 - local.get $4 + local.set $10 + local.get $10 if local.get $3 - local.get $5 + local.get $9 call $~lib/typedarray/Int32Array#__get local.get $7 - local.get $5 + local.get $9 call $~lib/typedarray/Int32Array#__get i32.eq i32.eqz @@ -39135,10 +39796,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|1 end end @@ -39161,6 +39822,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -39269,10 +39931,10 @@ local.get $5 call $~lib/rt/pure/__release local.get $9 - local.set $8 + local.set $10 local.get $0 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $~lib/typedarray/Uint32Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 @@ -39306,6 +39968,9 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $std/typedarray/testArrayWrapValues call $~lib/rt/pure/__retain local.set $0 @@ -39373,25 +40038,25 @@ global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Uint32Array.wrap@varargs - local.set $5 + local.set $8 local.get $7 call $~lib/rt/pure/__release - local.get $5 + local.get $8 local.set $7 i32.const 0 - local.set $5 + local.set $9 loop $for-loop|1 - local.get $5 + local.get $9 local.get $1 i32.lt_s - local.set $4 - local.get $4 + local.set $10 + local.get $10 if local.get $3 - local.get $5 + local.get $9 call $~lib/typedarray/Uint32Array#__get local.get $7 - local.get $5 + local.get $9 call $~lib/typedarray/Uint32Array#__get i32.eq i32.eqz @@ -39403,10 +40068,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|1 end end @@ -39429,6 +40094,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -39537,10 +40203,10 @@ local.get $5 call $~lib/rt/pure/__release local.get $9 - local.set $8 + local.set $10 local.get $0 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $~lib/typedarray/Int64Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 @@ -39574,6 +40240,9 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $std/typedarray/testArrayWrapValues call $~lib/rt/pure/__retain local.set $0 @@ -39644,25 +40313,25 @@ global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int64Array.wrap@varargs - local.set $5 + local.set $8 local.get $7 call $~lib/rt/pure/__release - local.get $5 + local.get $8 local.set $7 i32.const 0 - local.set $5 + local.set $9 loop $for-loop|1 - local.get $5 + local.get $9 local.get $1 i32.lt_s - local.set $4 - local.get $4 + local.set $10 + local.get $10 if local.get $3 - local.get $5 + local.get $9 call $~lib/typedarray/Int64Array#__get local.get $7 - local.get $5 + local.get $9 call $~lib/typedarray/Int64Array#__get i64.eq i32.eqz @@ -39674,10 +40343,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|1 end end @@ -39700,6 +40369,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -39808,10 +40478,10 @@ local.get $5 call $~lib/rt/pure/__release local.get $9 - local.set $8 + local.set $10 local.get $0 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $~lib/typedarray/Uint64Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 @@ -39845,6 +40515,9 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $std/typedarray/testArrayWrapValues call $~lib/rt/pure/__retain local.set $0 @@ -39917,25 +40590,25 @@ global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Uint64Array.wrap@varargs - local.set $5 + local.set $8 local.get $7 call $~lib/rt/pure/__release - local.get $5 + local.get $8 local.set $7 i32.const 0 - local.set $5 + local.set $9 loop $for-loop|1 - local.get $5 + local.get $9 local.get $1 i32.lt_s - local.set $4 - local.get $4 + local.set $10 + local.get $10 if local.get $3 - local.get $5 + local.get $9 call $~lib/typedarray/Uint64Array#__get local.get $7 - local.get $5 + local.get $9 call $~lib/typedarray/Uint64Array#__get i64.eq i32.eqz @@ -39947,10 +40620,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|1 end end @@ -39973,6 +40646,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -40081,10 +40755,10 @@ local.get $5 call $~lib/rt/pure/__release local.get $9 - local.set $8 + local.set $10 local.get $0 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $~lib/typedarray/Float32Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 @@ -40118,6 +40792,9 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $std/typedarray/testArrayWrapValues call $~lib/rt/pure/__retain local.set $0 @@ -40192,25 +40869,25 @@ global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Float32Array.wrap@varargs - local.set $5 + local.set $8 local.get $7 call $~lib/rt/pure/__release - local.get $5 + local.get $8 local.set $7 i32.const 0 - local.set $5 + local.set $9 loop $for-loop|1 - local.get $5 + local.get $9 local.get $1 i32.lt_s - local.set $4 - local.get $4 + local.set $10 + local.get $10 if local.get $3 - local.get $5 + local.get $9 call $~lib/typedarray/Float32Array#__get local.get $7 - local.get $5 + local.get $9 call $~lib/typedarray/Float32Array#__get f32.eq i32.eqz @@ -40222,10 +40899,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|1 end end @@ -40248,6 +40925,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -40356,10 +41034,10 @@ local.get $5 call $~lib/rt/pure/__release local.get $9 - local.set $8 + local.set $10 local.get $0 call $~lib/rt/pure/__release - local.get $8 + local.get $10 ) (func $~lib/typedarray/Float64Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 @@ -40393,6 +41071,9 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $std/typedarray/testArrayWrapValues call $~lib/rt/pure/__retain local.set $0 @@ -40469,25 +41150,25 @@ global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Float64Array.wrap@varargs - local.set $5 + local.set $8 local.get $7 call $~lib/rt/pure/__release - local.get $5 + local.get $8 local.set $7 i32.const 0 - local.set $5 + local.set $9 loop $for-loop|1 - local.get $5 + local.get $9 local.get $1 i32.lt_s - local.set $4 - local.get $4 + local.set $10 + local.get $10 if local.get $3 - local.get $5 + local.get $9 call $~lib/typedarray/Float64Array#__get local.get $7 - local.get $5 + local.get $9 call $~lib/typedarray/Float64Array#__get f64.eq i32.eqz @@ -40499,10 +41180,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|1 end end @@ -41538,6 +42219,16 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -41607,7 +42298,7 @@ i32.const 3936 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $7 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $4 global.get $std/typedarray/setSource2 @@ -41620,7 +42311,7 @@ i32.const 4016 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $10 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $4 local.get $0 @@ -41633,7 +42324,7 @@ i32.const 4048 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $13 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> i32.const 1 drop @@ -41648,9 +42339,9 @@ i32.const 4080 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $16 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $9 + local.get $16 call $~lib/rt/pure/__release local.get $4 local.get $1 @@ -41673,9 +42364,9 @@ i32.const 4112 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $19 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $5 + local.get $19 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -41687,11 +42378,11 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $10 + call $~lib/rt/pure/__release + local.get $13 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) @@ -42720,6 +43411,16 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -42789,7 +43490,7 @@ i32.const 4144 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $7 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $4 global.get $std/typedarray/setSource2 @@ -42802,7 +43503,7 @@ i32.const 4224 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $10 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $4 local.get $0 @@ -42815,7 +43516,7 @@ i32.const 4256 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $13 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> i32.const 1 drop @@ -42830,9 +43531,9 @@ i32.const 4288 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $16 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $9 + local.get $16 call $~lib/rt/pure/__release local.get $4 local.get $1 @@ -42855,9 +43556,9 @@ i32.const 4320 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $19 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $5 + local.get $19 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -42869,11 +43570,11 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $10 + call $~lib/rt/pure/__release + local.get $13 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) @@ -43974,6 +44675,16 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -44043,7 +44754,7 @@ i32.const 4352 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $7 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $4 global.get $std/typedarray/setSource2 @@ -44056,7 +44767,7 @@ i32.const 4448 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $10 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $4 local.get $0 @@ -44069,7 +44780,7 @@ i32.const 4480 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $13 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> i32.const 1 drop @@ -44084,9 +44795,9 @@ i32.const 4512 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $16 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $9 + local.get $16 call $~lib/rt/pure/__release local.get $4 local.get $1 @@ -44109,9 +44820,9 @@ i32.const 4544 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $19 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $5 + local.get $19 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -44123,11 +44834,11 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $10 + call $~lib/rt/pure/__release + local.get $13 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) @@ -45211,6 +45922,16 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -45280,7 +46001,7 @@ i32.const 4576 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $7 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $4 global.get $std/typedarray/setSource2 @@ -45293,7 +46014,7 @@ i32.const 4672 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $10 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $4 local.get $0 @@ -45306,7 +46027,7 @@ i32.const 4720 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $13 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> i32.const 1 drop @@ -45321,9 +46042,9 @@ i32.const 4768 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $16 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $9 + local.get $16 call $~lib/rt/pure/__release local.get $4 local.get $1 @@ -45346,9 +46067,9 @@ i32.const 4816 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $19 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $5 + local.get $19 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -45360,11 +46081,11 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $10 + call $~lib/rt/pure/__release + local.get $13 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) @@ -46448,6 +47169,16 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -46517,7 +47248,7 @@ i32.const 4864 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $7 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $4 global.get $std/typedarray/setSource2 @@ -46530,7 +47261,7 @@ i32.const 4960 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $10 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $4 local.get $0 @@ -46543,7 +47274,7 @@ i32.const 5008 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $13 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> i32.const 1 drop @@ -46558,9 +47289,9 @@ i32.const 5056 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $16 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $9 + local.get $16 call $~lib/rt/pure/__release local.get $4 local.get $1 @@ -46583,9 +47314,9 @@ i32.const 5104 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $19 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $5 + local.get $19 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -46597,11 +47328,11 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $10 + call $~lib/rt/pure/__release + local.get $13 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) @@ -47672,6 +48403,16 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -47741,7 +48482,7 @@ i32.const 5152 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $7 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $4 global.get $std/typedarray/setSource2 @@ -47754,7 +48495,7 @@ i32.const 5264 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $10 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $4 local.get $0 @@ -47767,7 +48508,7 @@ i32.const 5328 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $13 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> i32.const 1 drop @@ -47782,9 +48523,9 @@ i32.const 5392 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $16 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $9 + local.get $16 call $~lib/rt/pure/__release local.get $4 local.get $1 @@ -47807,9 +48548,9 @@ i32.const 5456 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $19 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $5 + local.get $19 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -47821,11 +48562,11 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $10 + call $~lib/rt/pure/__release + local.get $13 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) @@ -48909,6 +49650,16 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -48978,7 +49729,7 @@ i32.const 5520 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $7 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $4 global.get $std/typedarray/setSource2 @@ -48991,7 +49742,7 @@ i32.const 5632 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $10 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $4 local.get $0 @@ -49004,7 +49755,7 @@ i32.const 5696 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $13 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> i32.const 1 drop @@ -49019,9 +49770,9 @@ i32.const 5760 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $16 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $9 + local.get $16 call $~lib/rt/pure/__release local.get $4 local.get $1 @@ -49044,9 +49795,9 @@ i32.const 5824 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $19 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $5 + local.get $19 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -49058,11 +49809,11 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $10 + call $~lib/rt/pure/__release + local.get $13 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) @@ -50146,6 +50897,16 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -50215,7 +50976,7 @@ i32.const 5888 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $7 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $4 global.get $std/typedarray/setSource2 @@ -50228,7 +50989,7 @@ i32.const 6032 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $10 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $4 local.get $0 @@ -50241,7 +51002,7 @@ i32.const 6128 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $13 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> i32.const 1 drop @@ -50256,9 +51017,9 @@ i32.const 6224 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $16 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $9 + local.get $16 call $~lib/rt/pure/__release local.get $4 local.get $1 @@ -50281,9 +51042,9 @@ i32.const 6320 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $19 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $5 + local.get $19 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -50295,11 +51056,11 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $10 + call $~lib/rt/pure/__release + local.get $13 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) @@ -51383,6 +52144,16 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -51452,7 +52223,7 @@ i32.const 6416 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $7 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $4 global.get $std/typedarray/setSource2 @@ -51465,7 +52236,7 @@ i32.const 6560 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $10 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $4 local.get $0 @@ -51478,7 +52249,7 @@ i32.const 6656 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $13 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> i32.const 1 drop @@ -51493,9 +52264,9 @@ i32.const 6752 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $16 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $9 + local.get $16 call $~lib/rt/pure/__release local.get $4 local.get $1 @@ -51518,9 +52289,9 @@ i32.const 6848 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $19 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $5 + local.get $19 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -51532,11 +52303,11 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $10 + call $~lib/rt/pure/__release + local.get $13 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) @@ -52467,6 +53238,13 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -52536,7 +53314,7 @@ i32.const 6944 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $7 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> local.get $4 global.get $std/typedarray/setSource2 @@ -52549,7 +53327,7 @@ i32.const 7056 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $10 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> local.get $4 local.get $0 @@ -52562,7 +53340,7 @@ i32.const 7120 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $13 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 drop @@ -52587,9 +53365,9 @@ i32.const 7184 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $16 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - local.get $9 + local.get $16 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -52601,11 +53379,11 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $10 + call $~lib/rt/pure/__release + local.get $13 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) @@ -53588,6 +54366,13 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -53657,7 +54442,7 @@ i32.const 7248 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $7 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> local.get $4 global.get $std/typedarray/setSource2 @@ -53670,7 +54455,7 @@ i32.const 7392 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $10 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> local.get $4 local.get $0 @@ -53683,7 +54468,7 @@ i32.const 7488 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $13 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> i32.const 0 drop @@ -53708,9 +54493,9 @@ i32.const 7584 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $16 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - local.get $9 + local.get $16 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -53722,11 +54507,11 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $10 + call $~lib/rt/pure/__release + local.get $13 call $~lib/rt/pure/__release ) (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) (param $2 i32) @@ -54201,6 +54986,134 @@ (local $24 i32) (local $25 i32) (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) + (local $89 i32) + (local $90 i32) + (local $91 i32) + (local $92 i32) + (local $93 i32) + (local $94 i32) + (local $95 i32) + (local $96 i32) + (local $97 i32) + (local $98 i32) + (local $99 i32) + (local $100 i32) + (local $101 i32) + (local $102 i32) + (local $103 i32) + (local $104 i32) + (local $105 i32) + (local $106 i32) + (local $107 i32) + (local $108 i32) + (local $109 i32) + (local $110 i32) + (local $111 i32) + (local $112 i32) + (local $113 i32) + (local $114 i32) + (local $115 i32) + (local $116 i32) + (local $117 i32) + (local $118 i32) + (local $119 i32) + (local $120 i32) + (local $121 i32) + (local $122 i32) + (local $123 i32) + (local $124 i32) + (local $125 i32) + (local $126 i32) + (local $127 i32) + (local $128 i32) + (local $129 i32) + (local $130 i32) + (local $131 i32) + (local $132 i32) + (local $133 i32) + (local $134 i32) + (local $135 i32) + (local $136 i32) + (local $137 i32) + (local $138 i32) + (local $139 i32) + (local $140 i32) + (local $141 i32) + (local $142 i32) + (local $143 i32) + (local $144 i32) + (local $145 i32) + (local $146 i32) + (local $147 i32) + (local $148 i32) + (local $149 i32) + (local $150 i32) + (local $151 i32) + (local $152 i32) + (local $153 i32) + (local $154 i32) global.get $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT i32.const 1 i32.eq @@ -54419,49 +55332,49 @@ i32.const 0 i32.const 8 call $~lib/typedarray/Float64Array#constructor - local.set $0 - local.get $0 + local.set $2 + local.get $2 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $2 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $2 i32.const 2 f64.const 7 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $2 i32.const 3 f64.const 6 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $2 i32.const 4 f64.const 5 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $2 i32.const 5 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $2 i32.const 6 f64.const 3 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $2 i32.const 7 f64.const 8 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $2 i32.const 2 i32.const 6 call $~lib/typedarray/Float64Array#subarray - local.set $1 - local.get $0 + local.set $3 + local.get $2 call $~lib/rt/pure/__release - local.get $1 - local.set $0 - local.get $0 + local.get $3 + local.set $2 + local.get $2 call $~lib/typedarray/Float64Array#get:length i32.const 4 i32.eq @@ -54474,7 +55387,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 2 i32.const 8 @@ -54489,7 +55402,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.load offset=8 i32.const 4 i32.const 8 @@ -54504,19 +55417,19 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Float64Array#sort@varargs call $~lib/rt/pure/__release - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 4 f64.eq if (result i32) - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 5 @@ -54525,7 +55438,7 @@ i32.const 0 end if (result i32) - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 6 @@ -54534,7 +55447,7 @@ i32.const 0 end if (result i32) - local.get $0 + local.get $2 i32.const 3 call $~lib/typedarray/Float64Array#__get f64.const 7 @@ -54551,25 +55464,25 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 call $~lib/rt/pure/__release i32.const 0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.set $0 - local.get $0 + local.set $4 + local.get $4 i32.const 0 i32.const -32 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $4 i32.const 2 i32.const 256 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $4 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 0 @@ -54583,7 +55496,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $4 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 @@ -54597,7 +55510,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $4 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 255 @@ -54611,46 +55524,46 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $4 call $~lib/rt/pure/__release i32.const 0 i32.const 5 call $~lib/typedarray/Int8Array#constructor - local.set $0 - local.get $0 + local.set $5 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $5 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $5 i32.const 4 i32.const 5 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $5 i32.const 1 i32.const 1 i32.const 3 call $~lib/typedarray/Int8Array#fill call $~lib/rt/pure/__release - local.get $0 + local.get $5 i32.const 5 i32.const 0 i32.const 14 i32.const 496 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $2 + local.tee $8 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -54661,20 +55574,20 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $5 i32.const 0 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int8Array#fill call $~lib/rt/pure/__release - local.get $0 + local.get $5 i32.const 5 i32.const 0 i32.const 14 i32.const 576 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $11 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -54685,20 +55598,20 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $5 i32.const 1 i32.const 0 i32.const -3 call $~lib/typedarray/Int8Array#fill call $~lib/rt/pure/__release - local.get $0 + local.get $5 i32.const 5 i32.const 0 i32.const 14 i32.const 608 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $14 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -54709,20 +55622,20 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $5 i32.const 2 i32.const -2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int8Array#fill call $~lib/rt/pure/__release - local.get $0 + local.get $5 i32.const 5 i32.const 0 i32.const 14 i32.const 640 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $17 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -54733,20 +55646,20 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $5 i32.const 0 i32.const 1 i32.const 0 call $~lib/typedarray/Int8Array#fill call $~lib/rt/pure/__release - local.get $0 + local.get $5 i32.const 5 i32.const 0 i32.const 14 i32.const 672 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $20 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -54757,18 +55670,18 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $5 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#subarray - local.set $1 - local.get $1 + local.set $21 + local.get $21 i32.const 0 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int8Array#fill call $~lib/rt/pure/__release - local.get $1 + local.get $21 call $~lib/typedarray/Int8Array#get:length i32.const 3 i32.eq @@ -54781,7 +55694,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $21 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 1 i32.eq @@ -54794,7 +55707,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $21 i32.load offset=8 i32.const 3 i32.eq @@ -54807,14 +55720,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $21 i32.const 3 i32.const 0 i32.const 14 i32.const 704 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $24 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -54825,14 +55738,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $5 i32.const 5 i32.const 0 i32.const 14 i32.const 736 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $27 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -54843,62 +55756,62 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $5 call $~lib/rt/pure/__release - local.get $2 + local.get $8 call $~lib/rt/pure/__release - local.get $3 + local.get $11 call $~lib/rt/pure/__release - local.get $4 + local.get $14 call $~lib/rt/pure/__release - local.get $5 + local.get $17 call $~lib/rt/pure/__release - local.get $6 + local.get $20 call $~lib/rt/pure/__release - local.get $1 + local.get $21 call $~lib/rt/pure/__release - local.get $8 + local.get $24 call $~lib/rt/pure/__release - local.get $9 + local.get $27 call $~lib/rt/pure/__release i32.const 0 i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.set $9 - local.get $9 + local.set $28 + local.get $28 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $9 + local.get $28 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $9 + local.get $28 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $9 + local.get $28 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $9 + local.get $28 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set - local.get $9 + local.get $28 i32.const 1 i32.const 1 i32.const 3 call $~lib/typedarray/Int32Array#fill call $~lib/rt/pure/__release - local.get $9 + local.get $28 i32.const 5 i32.const 2 i32.const 15 i32.const 768 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $31 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -54909,20 +55822,20 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $28 i32.const 0 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#fill call $~lib/rt/pure/__release - local.get $9 + local.get $28 i32.const 5 i32.const 2 i32.const 15 i32.const 816 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $34 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -54933,20 +55846,20 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $28 i32.const 1 i32.const 0 i32.const -3 call $~lib/typedarray/Int32Array#fill call $~lib/rt/pure/__release - local.get $9 + local.get $28 i32.const 5 i32.const 2 i32.const 15 i32.const 864 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $37 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -54957,20 +55870,20 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $28 i32.const 2 i32.const -2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#fill call $~lib/rt/pure/__release - local.get $9 + local.get $28 i32.const 5 i32.const 2 i32.const 15 i32.const 912 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $40 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -54981,20 +55894,20 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $28 i32.const 0 i32.const 1 i32.const 0 call $~lib/typedarray/Int32Array#fill call $~lib/rt/pure/__release - local.get $9 + local.get $28 i32.const 5 i32.const 2 i32.const 15 i32.const 960 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $43 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -55005,18 +55918,18 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $28 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#subarray - local.set $8 - local.get $8 + local.set $44 + local.get $44 i32.const 0 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#fill call $~lib/rt/pure/__release - local.get $8 + local.get $44 call $~lib/typedarray/Int32Array#get:length i32.const 3 i32.eq @@ -55029,7 +55942,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $44 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 1 i32.const 4 @@ -55044,7 +55957,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $44 i32.load offset=8 i32.const 3 i32.const 4 @@ -55059,14 +55972,14 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $44 i32.const 3 i32.const 2 i32.const 15 i32.const 1008 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $47 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -55077,14 +55990,14 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $28 i32.const 5 i32.const 2 i32.const 15 i32.const 1040 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $50 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -55095,58 +56008,58 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $28 call $~lib/rt/pure/__release - local.get $1 + local.get $31 call $~lib/rt/pure/__release - local.get $6 + local.get $34 call $~lib/rt/pure/__release - local.get $5 + local.get $37 call $~lib/rt/pure/__release - local.get $4 + local.get $40 call $~lib/rt/pure/__release - local.get $3 + local.get $43 call $~lib/rt/pure/__release - local.get $8 + local.get $44 call $~lib/rt/pure/__release - local.get $0 + local.get $47 call $~lib/rt/pure/__release - local.get $7 + local.get $50 call $~lib/rt/pure/__release i32.const 0 i32.const 6 call $~lib/typedarray/Int8Array#constructor - local.set $7 - local.get $7 + local.set $51 + local.get $51 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $7 + local.get $51 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $7 + local.get $51 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $7 + local.get $51 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $7 + local.get $51 i32.const 4 i32.const 5 call $~lib/typedarray/Int8Array#__set - local.get $7 + local.get $51 i32.const 5 i32.const 6 call $~lib/typedarray/Int8Array#__set - local.get $7 + local.get $51 i32.const 1 i32.const 6 call $~lib/typedarray/Int8Array#subarray - local.set $0 - local.get $0 + local.set $52 + local.get $52 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 2 @@ -55160,7 +56073,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $52 call $~lib/typedarray/Int8Array#get:length i32.const 5 i32.eq @@ -55173,7 +56086,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $52 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 1 i32.eq @@ -55186,7 +56099,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $52 i32.load offset=8 i32.const 5 i32.eq @@ -55199,12 +56112,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $52 i32.const 1 i32.const 5 call $~lib/typedarray/Int8Array#subarray - local.set $8 - local.get $8 + local.set $53 + local.get $53 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 3 @@ -55218,7 +56131,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $53 call $~lib/typedarray/Int8Array#get:length i32.const 4 i32.eq @@ -55231,7 +56144,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $53 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 2 i32.eq @@ -55244,7 +56157,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $53 i32.load offset=8 i32.const 4 i32.eq @@ -55257,12 +56170,12 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $53 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#subarray - local.set $3 - local.get $3 + local.set $54 + local.get $54 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 4 @@ -55276,7 +56189,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $54 call $~lib/typedarray/Int8Array#get:length i32.const 3 i32.eq @@ -55289,7 +56202,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $54 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 3 i32.eq @@ -55302,7 +56215,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $54 i32.load offset=8 i32.const 3 i32.eq @@ -55315,56 +56228,56 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $51 call $~lib/rt/pure/__release - local.get $0 + local.get $52 call $~lib/rt/pure/__release - local.get $8 + local.get $53 call $~lib/rt/pure/__release - local.get $3 + local.get $54 call $~lib/rt/pure/__release i32.const 0 i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.set $3 - local.get $3 + local.set $55 + local.get $55 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $55 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $55 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $55 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $55 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $55 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#slice - local.set $8 - local.get $3 + local.set $56 + local.get $55 i32.const 0 i32.const 3 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin - local.tee $0 + local.tee $57 i32.const 5 i32.const 2 i32.const 15 i32.const 1088 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $60 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -55375,28 +56288,28 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $56 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#slice - local.set $2 - local.get $3 + local.set $61 + local.get $55 call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 + local.get $61 + local.set $55 + local.get $55 i32.const 1 i32.const 3 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin - local.tee $2 + local.tee $62 i32.const 5 i32.const 2 i32.const 15 i32.const 1136 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $65 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -55407,28 +56320,28 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $56 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#slice - local.set $9 - local.get $3 + local.set $66 + local.get $55 call $~lib/rt/pure/__release - local.get $9 - local.set $3 - local.get $3 + local.get $66 + local.set $55 + local.get $55 i32.const 1 i32.const 2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin - local.tee $9 + local.tee $67 i32.const 5 i32.const 2 i32.const 15 i32.const 1184 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $70 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -55439,28 +56352,28 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $56 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#slice - local.set $1 - local.get $3 + local.set $71 + local.get $55 call $~lib/rt/pure/__release - local.get $1 - local.set $3 - local.get $3 + local.get $71 + local.set $55 + local.get $55 i32.const 2 i32.const 2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin - local.tee $1 + local.tee $72 i32.const 5 i32.const 2 i32.const 15 i32.const 1232 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 + local.tee $75 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -55471,28 +56384,28 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $56 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#slice - local.set $7 - local.get $3 + local.set $76 + local.get $55 call $~lib/rt/pure/__release - local.get $7 - local.set $3 - local.get $3 + local.get $76 + local.set $55 + local.get $55 i32.const 0 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#copyWithin - local.tee $7 + local.tee $77 i32.const 5 i32.const 2 i32.const 15 i32.const 1280 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $12 + local.tee $80 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -55503,28 +56416,28 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $56 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#slice - local.set $11 - local.get $3 + local.set $81 + local.get $55 call $~lib/rt/pure/__release - local.get $11 - local.set $3 - local.get $3 + local.get $81 + local.set $55 + local.get $55 i32.const 1 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#copyWithin - local.tee $11 + local.tee $82 i32.const 5 i32.const 2 i32.const 15 i32.const 1328 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $14 + local.tee $85 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -55535,28 +56448,28 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $56 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#slice - local.set $13 - local.get $3 + local.set $86 + local.get $55 call $~lib/rt/pure/__release - local.get $13 - local.set $3 - local.get $3 + local.get $86 + local.set $55 + local.get $55 i32.const 1 i32.const 2 i32.const 4 call $~lib/typedarray/Int32Array#copyWithin - local.tee $13 + local.tee $87 i32.const 5 i32.const 2 i32.const 15 i32.const 1376 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $16 + local.tee $90 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -55567,28 +56480,28 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $56 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#slice - local.set $15 - local.get $3 + local.set $91 + local.get $55 call $~lib/rt/pure/__release - local.get $15 - local.set $3 - local.get $3 + local.get $91 + local.set $55 + local.get $55 i32.const 0 i32.const -2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin - local.tee $15 + local.tee $92 i32.const 5 i32.const 2 i32.const 15 i32.const 1424 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $18 + local.tee $95 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -55599,28 +56512,28 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $56 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#slice - local.set $17 - local.get $3 + local.set $96 + local.get $55 call $~lib/rt/pure/__release - local.get $17 - local.set $3 - local.get $3 + local.get $96 + local.set $55 + local.get $55 i32.const 0 i32.const -2 i32.const -1 call $~lib/typedarray/Int32Array#copyWithin - local.tee $17 + local.tee $97 i32.const 5 i32.const 2 i32.const 15 i32.const 1472 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $20 + local.tee $100 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -55631,28 +56544,28 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $56 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#slice - local.set $19 - local.get $3 + local.set $101 + local.get $55 call $~lib/rt/pure/__release - local.get $19 - local.set $3 - local.get $3 + local.get $101 + local.set $55 + local.get $55 i32.const -4 i32.const -3 i32.const -2 call $~lib/typedarray/Int32Array#copyWithin - local.tee $19 + local.tee $102 i32.const 5 i32.const 2 i32.const 15 i32.const 1520 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $22 + local.tee $105 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -55663,28 +56576,28 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $56 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#slice - local.set $21 - local.get $3 + local.set $106 + local.get $55 call $~lib/rt/pure/__release - local.get $21 - local.set $3 - local.get $3 + local.get $106 + local.set $55 + local.get $55 i32.const -4 i32.const -3 i32.const -1 call $~lib/typedarray/Int32Array#copyWithin - local.tee $21 + local.tee $107 i32.const 5 i32.const 2 i32.const 15 i32.const 1568 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $24 + local.tee $110 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -55695,28 +56608,28 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $56 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#slice - local.set $23 - local.get $3 + local.set $111 + local.get $55 call $~lib/rt/pure/__release - local.get $23 - local.set $3 - local.get $3 + local.get $111 + local.set $55 + local.get $55 i32.const -4 i32.const -3 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin - local.tee $23 + local.tee $112 i32.const 5 i32.const 2 i32.const 15 i32.const 1616 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $26 + local.tee $115 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -55727,88 +56640,88 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $55 call $~lib/rt/pure/__release - local.get $8 + local.get $56 call $~lib/rt/pure/__release - local.get $0 + local.get $57 call $~lib/rt/pure/__release - local.get $4 + local.get $60 call $~lib/rt/pure/__release - local.get $2 + local.get $62 call $~lib/rt/pure/__release - local.get $5 + local.get $65 call $~lib/rt/pure/__release - local.get $9 + local.get $67 call $~lib/rt/pure/__release - local.get $6 + local.get $70 call $~lib/rt/pure/__release - local.get $1 + local.get $72 call $~lib/rt/pure/__release - local.get $10 + local.get $75 call $~lib/rt/pure/__release - local.get $7 + local.get $77 call $~lib/rt/pure/__release - local.get $12 + local.get $80 call $~lib/rt/pure/__release - local.get $11 + local.get $82 call $~lib/rt/pure/__release - local.get $14 + local.get $85 call $~lib/rt/pure/__release - local.get $13 + local.get $87 call $~lib/rt/pure/__release - local.get $16 + local.get $90 call $~lib/rt/pure/__release - local.get $15 + local.get $92 call $~lib/rt/pure/__release - local.get $18 + local.get $95 call $~lib/rt/pure/__release - local.get $17 + local.get $97 call $~lib/rt/pure/__release - local.get $20 + local.get $100 call $~lib/rt/pure/__release - local.get $19 + local.get $102 call $~lib/rt/pure/__release - local.get $22 + local.get $105 call $~lib/rt/pure/__release - local.get $21 + local.get $107 call $~lib/rt/pure/__release - local.get $24 + local.get $110 call $~lib/rt/pure/__release - local.get $23 + local.get $112 call $~lib/rt/pure/__release - local.get $26 + local.get $115 call $~lib/rt/pure/__release i32.const 0 i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.set $26 - local.get $26 + local.set $116 + local.get $116 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $26 + local.get $116 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $26 + local.get $116 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $26 + local.get $116 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $26 + local.get $116 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set - local.get $26 + local.get $116 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#subarray - local.set $23 - local.get $23 + local.set $117 + local.get $117 call $~lib/typedarray/Int32Array#get:length i32.const 3 i32.eq @@ -55821,7 +56734,7 @@ call $~lib/builtins/abort unreachable end - local.get $23 + local.get $117 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 4 i32.eq @@ -55834,7 +56747,7 @@ call $~lib/builtins/abort unreachable end - local.get $23 + local.get $117 i32.load offset=8 i32.const 12 i32.eq @@ -55847,12 +56760,12 @@ call $~lib/builtins/abort unreachable end - local.get $26 + local.get $116 i32.const 1 i32.const 3 call $~lib/typedarray/Int32Array#slice - local.set $24 - local.get $24 + local.set $118 + local.get $118 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 2 @@ -55866,7 +56779,7 @@ call $~lib/builtins/abort unreachable end - local.get $24 + local.get $118 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -55880,7 +56793,7 @@ call $~lib/builtins/abort unreachable end - local.get $24 + local.get $118 call $~lib/typedarray/Int32Array#get:length i32.const 2 i32.eq @@ -55893,7 +56806,7 @@ call $~lib/builtins/abort unreachable end - local.get $24 + local.get $118 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 0 i32.eq @@ -55906,7 +56819,7 @@ call $~lib/builtins/abort unreachable end - local.get $24 + local.get $118 i32.load offset=8 i32.const 8 i32.eq @@ -55919,12 +56832,12 @@ call $~lib/builtins/abort unreachable end - local.get $23 + local.get $117 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#slice - local.set $21 - local.get $21 + local.set $119 + local.get $119 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -55938,7 +56851,7 @@ call $~lib/builtins/abort unreachable end - local.get $21 + local.get $119 call $~lib/typedarray/Int32Array#get:length i32.const 1 i32.eq @@ -55951,7 +56864,7 @@ call $~lib/builtins/abort unreachable end - local.get $21 + local.get $119 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 0 i32.eq @@ -55964,7 +56877,7 @@ call $~lib/builtins/abort unreachable end - local.get $21 + local.get $119 i32.load offset=8 i32.const 4 i32.eq @@ -55977,13 +56890,13 @@ call $~lib/builtins/abort unreachable end - local.get $26 + local.get $116 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#slice - local.set $22 - local.get $22 - local.get $26 + local.set $120 + local.get $120 + local.get $116 i32.ne i32.eqz if @@ -55994,9 +56907,9 @@ call $~lib/builtins/abort unreachable end - local.get $22 + local.get $120 call $~lib/typedarray/Int32Array#get:length - local.get $26 + local.get $116 call $~lib/typedarray/Int32Array#get:length i32.eq i32.eqz @@ -56008,9 +56921,9 @@ call $~lib/builtins/abort unreachable end - local.get $22 + local.get $120 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $26 + local.get $116 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.eq i32.eqz @@ -56022,9 +56935,9 @@ call $~lib/builtins/abort unreachable end - local.get $22 + local.get $120 i32.load offset=8 - local.get $26 + local.get $116 i32.load offset=8 i32.eq i32.eqz @@ -56036,15 +56949,15 @@ call $~lib/builtins/abort unreachable end - local.get $26 + local.get $116 call $~lib/rt/pure/__release - local.get $23 + local.get $117 call $~lib/rt/pure/__release - local.get $24 + local.get $118 call $~lib/rt/pure/__release - local.get $21 + local.get $119 call $~lib/rt/pure/__release - local.get $22 + local.get $120 call $~lib/rt/pure/__release call $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> call $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> @@ -56159,12 +57072,12 @@ i32.const 0 i32.const 1 call $~lib/typedarray/Float64Array#constructor - local.set $21 - local.get $21 + local.set $127 + local.get $127 i32.const 0 f64.const nan:0x8000000000000 call $~lib/typedarray/Float64Array#__set - local.get $21 + local.get $127 f64.const nan:0x8000000000000 i32.const 0 call $~lib/typedarray/Float64Array#indexOf @@ -56179,7 +57092,7 @@ call $~lib/builtins/abort unreachable end - local.get $21 + local.get $127 f64.const nan:0x8000000000000 i32.const 0 call $~lib/typedarray/Float64Array#includes @@ -56199,12 +57112,12 @@ i32.const 0 i32.const 1 call $~lib/typedarray/Float32Array#constructor - local.set $22 - local.get $22 + local.set $128 + local.get $128 i32.const 0 f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set - local.get $22 + local.get $128 f32.const nan:0x400000 i32.const 0 call $~lib/typedarray/Float32Array#indexOf @@ -56219,7 +57132,7 @@ call $~lib/builtins/abort unreachable end - local.get $22 + local.get $128 f32.const nan:0x400000 i32.const 0 call $~lib/typedarray/Float32Array#includes @@ -56236,9 +57149,9 @@ call $~lib/builtins/abort unreachable end - local.get $21 + local.get $127 call $~lib/rt/pure/__release - local.get $22 + local.get $128 call $~lib/rt/pure/__release call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> @@ -56254,15 +57167,15 @@ i32.const 0 i32.const 0 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $21 - local.get $21 + local.set $131 + local.get $131 i32.const 0 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Uint8Array.wrap@varargs - local.set $22 - local.get $22 + local.set $132 + local.get $132 call $~lib/typedarray/Uint8Array#get:length i32.const 0 i32.eq @@ -56278,23 +57191,23 @@ i32.const 0 i32.const 2 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $25 - local.get $21 + local.set $133 + local.get $131 call $~lib/rt/pure/__release - local.get $25 - local.set $21 - local.get $21 + local.get $133 + local.set $131 + local.get $131 i32.const 2 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Uint8Array.wrap@varargs - local.set $3 - local.get $22 + local.set $134 + local.get $132 call $~lib/rt/pure/__release - local.get $3 - local.set $22 - local.get $22 + local.get $134 + local.set $132 + local.get $132 call $~lib/typedarray/Uint8Array#get:length i32.const 0 i32.eq @@ -56307,9 +57220,9 @@ call $~lib/builtins/abort unreachable end - local.get $21 + local.get $131 call $~lib/rt/pure/__release - local.get $22 + local.get $132 call $~lib/rt/pure/__release call $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> @@ -56336,148 +57249,148 @@ i32.const 0 i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor - local.set $22 + local.set $143 i32.const 0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.set $21 - local.get $21 + local.set $144 + local.get $144 i32.const 0 f32.const 400 call $~lib/typedarray/Float32Array#__set - local.get $21 + local.get $144 i32.const 1 f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set - local.get $21 + local.get $144 i32.const 2 f32.const inf call $~lib/typedarray/Float32Array#__set i32.const 0 i32.const 4 call $~lib/typedarray/Int64Array#constructor - local.set $3 - local.get $3 + local.set $145 + local.get $145 i32.const 0 i64.const -10 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $145 i32.const 1 i64.const 100 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $145 i32.const 2 i64.const 10 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $145 i32.const 3 i64.const 300 call $~lib/typedarray/Int64Array#__set i32.const 0 i32.const 2 call $~lib/typedarray/Int32Array#constructor - local.set $25 - local.get $25 + local.set $146 + local.get $146 i32.const 0 i32.const 300 call $~lib/typedarray/Int32Array#__set - local.get $25 + local.get $146 i32.const 1 i32.const -1 call $~lib/typedarray/Int32Array#__set - local.get $22 - local.get $21 + local.get $143 + local.get $144 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> - local.get $22 - local.get $3 + local.get $143 + local.get $145 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - local.get $22 - local.get $25 + local.get $143 + local.get $146 i32.const 8 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> - local.get $22 + local.get $143 i32.const 10 i32.const 0 i32.const 18 i32.const 7680 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $23 + local.tee $149 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> i32.const 0 i32.const 4 call $~lib/typedarray/Uint32Array#constructor - local.set $24 - local.get $24 + local.set $150 + local.get $150 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $24 + local.get $150 i32.const 1 i32.const 300 call $~lib/typedarray/Uint32Array#__set - local.get $24 + local.get $150 i32.const 2 i32.const 100 call $~lib/typedarray/Uint32Array#__set - local.get $24 + local.get $150 i32.const 3 i32.const -1 call $~lib/typedarray/Uint32Array#__set i32.const 0 i32.const 4 call $~lib/typedarray/Int16Array#constructor - local.set $26 - local.get $26 + local.set $151 + local.get $151 i32.const 0 i32.const -10 call $~lib/typedarray/Int16Array#__set - local.get $26 + local.get $151 i32.const 1 i32.const 100 call $~lib/typedarray/Int16Array#__set - local.get $26 + local.get $151 i32.const 2 i32.const 10 call $~lib/typedarray/Int16Array#__set - local.get $26 + local.get $151 i32.const 3 i32.const 300 call $~lib/typedarray/Int16Array#__set - local.get $22 - local.get $24 + local.get $143 + local.get $150 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> - local.get $22 - local.get $26 + local.get $143 + local.get $151 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> - local.get $22 + local.get $143 i32.const 10 i32.const 0 i32.const 18 i32.const 7712 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $20 + local.tee $154 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $22 + local.get $143 call $~lib/rt/pure/__release - local.get $21 + local.get $144 call $~lib/rt/pure/__release - local.get $3 + local.get $145 call $~lib/rt/pure/__release - local.get $25 + local.get $146 call $~lib/rt/pure/__release - local.get $23 + local.get $149 call $~lib/rt/pure/__release - local.get $24 + local.get $150 call $~lib/rt/pure/__release - local.get $26 + local.get $151 call $~lib/rt/pure/__release - local.get $20 + local.get $154 call $~lib/rt/pure/__release ) (func $~start diff --git a/tests/compiler/typeof.untouched.wat b/tests/compiler/typeof.untouched.wat index bfbf5d1517..a2cfe2c993 100644 --- a/tests/compiler/typeof.untouched.wat +++ b/tests/compiler/typeof.untouched.wat @@ -54,6 +54,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -125,33 +128,33 @@ end loop $while-continue|1 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.sub local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $8 + local.set $9 + local.get $9 if local.get $5 i32.load16_u - local.set $8 + local.set $10 local.get $6 i32.load16_u - local.set $9 - local.get $8 - local.get $9 + local.set $11 + local.get $10 + local.get $11 i32.ne if - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.sub - local.set $10 + local.set $12 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $10 + local.get $12 return end local.get $5 @@ -166,16 +169,19 @@ end end i32.const 0 - local.set $7 + local.set $13 local.get $0 call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release - local.get $7 + local.get $13 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -207,44 +213,44 @@ end if i32.const 0 - local.set $2 + local.set $3 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $4 + local.get $4 local.get $1 call $~lib/string/String#get:length i32.ne if i32.const 0 - local.set $2 + local.set $5 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $5 return end local.get $0 i32.const 0 local.get $1 i32.const 0 - local.get $3 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $2 + local.set $6 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release - local.get $2 + local.get $6 ) (func $start:typeof~anonymous|0 nop @@ -255,6 +261,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -285,8 +292,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s diff --git a/tests/compiler/unary.untouched.wat b/tests/compiler/unary.untouched.wat index 3a8879bbb3..16035f6ecb 100644 --- a/tests/compiler/unary.untouched.wat +++ b/tests/compiler/unary.untouched.wat @@ -11,8 +11,19 @@ (func $start:unary (local $0 f64) (local $1 i32) - (local $2 i64) - (local $3 f32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 f32) + (local $6 f64) + (local $7 f32) + (local $8 f32) + (local $9 f32) + (local $10 f64) + (local $11 f64) + (local $12 f64) + (local $13 f64) + (local $14 f64) i32.const 1 drop i32.const -1 @@ -111,11 +122,11 @@ local.get $1 global.set $unary/i global.get $unary/i - local.tee $1 + local.tee $2 i32.const 1 i32.sub global.set $unary/i - local.get $1 + local.get $2 global.set $unary/i global.get $unary/I drop @@ -191,18 +202,18 @@ global.get $unary/I global.set $unary/I global.get $unary/I - local.tee $2 + local.tee $3 i64.const 1 i64.add global.set $unary/I - local.get $2 + local.get $3 global.set $unary/I global.get $unary/I - local.tee $2 + local.tee $4 i64.const 1 i64.sub global.set $unary/I - local.get $2 + local.get $4 global.set $unary/I global.get $unary/f drop @@ -210,11 +221,11 @@ f32.neg drop global.get $unary/f - local.tee $3 + local.tee $5 f32.const 0 f32.ne - local.get $3 - local.get $3 + local.get $5 + local.get $5 f32.eq i32.and i32.eqz @@ -240,11 +251,11 @@ f32.const -1.25 global.set $unary/f f64.const 1.25 - local.tee $0 + local.tee $6 f64.const 0 f64.ne - local.get $0 - local.get $0 + local.get $6 + local.get $6 f64.eq i32.and i32.eqz @@ -255,11 +266,11 @@ f32.neg global.set $unary/f global.get $unary/f - local.tee $3 + local.tee $7 f32.const 0 f32.ne - local.get $3 - local.get $3 + local.get $7 + local.get $7 f32.eq i32.and i32.eqz @@ -277,18 +288,18 @@ global.get $unary/f global.set $unary/f global.get $unary/f - local.tee $3 + local.tee $8 f32.const 1 f32.add global.set $unary/f - local.get $3 + local.get $8 global.set $unary/f global.get $unary/f - local.tee $3 + local.tee $9 f32.const 1 f32.sub global.set $unary/f - local.get $3 + local.get $9 global.set $unary/f global.get $unary/F drop @@ -296,11 +307,11 @@ f64.neg drop global.get $unary/F - local.tee $0 + local.tee $10 f64.const 0 f64.ne - local.get $0 - local.get $0 + local.get $10 + local.get $10 f64.eq i32.and i32.eqz @@ -326,11 +337,11 @@ f64.const -1.25 global.set $unary/F f64.const 1.25 - local.tee $0 + local.tee $11 f64.const 0 f64.ne - local.get $0 - local.get $0 + local.get $11 + local.get $11 f64.eq i32.and i32.eqz @@ -342,11 +353,11 @@ f64.neg global.set $unary/F global.get $unary/F - local.tee $0 + local.tee $12 f64.const 0 f64.ne - local.get $0 - local.get $0 + local.get $12 + local.get $12 f64.eq i32.and i32.eqz @@ -365,18 +376,18 @@ global.get $unary/F global.set $unary/F global.get $unary/F - local.tee $0 + local.tee $13 f64.const 1 f64.add global.set $unary/F - local.get $0 + local.get $13 global.set $unary/F global.get $unary/F - local.tee $0 + local.tee $14 f64.const 1 f64.sub global.set $unary/F - local.get $0 + local.get $14 global.set $unary/F ) (func $~start diff --git a/tests/compiler/wasi/abort.untouched.wat b/tests/compiler/wasi/abort.untouched.wat index 44144138d2..e274d956ea 100644 --- a/tests/compiler/wasi/abort.untouched.wat +++ b/tests/compiler/wasi/abort.untouched.wat @@ -34,6 +34,12 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 local.get $1 i32.const 1 @@ -109,8 +115,8 @@ if local.get $0 i32.load16_u offset=2 - local.set $9 - local.get $9 + local.set $10 + local.get $10 i32.const 64512 i32.and i32.const 56320 @@ -123,7 +129,7 @@ i32.const 10 i32.shl i32.add - local.get $9 + local.get $10 i32.const 1023 i32.and i32.or @@ -133,7 +139,7 @@ i32.shr_u i32.const 240 i32.or - local.set $8 + local.set $11 local.get $7 i32.const 12 i32.shr_u @@ -141,7 +147,7 @@ i32.and i32.const 128 i32.or - local.set $10 + local.set $12 local.get $7 i32.const 6 i32.shr_u @@ -149,26 +155,26 @@ i32.and i32.const 128 i32.or - local.set $11 + local.set $13 local.get $7 i32.const 63 i32.and i32.const 128 i32.or - local.set $12 + local.set $14 local.get $5 - local.get $12 + local.get $14 i32.const 24 i32.shl - local.get $11 + local.get $13 i32.const 16 i32.shl i32.or - local.get $10 + local.get $12 i32.const 8 i32.shl i32.or - local.get $8 + local.get $11 i32.or i32.store local.get $5 @@ -187,7 +193,7 @@ i32.shr_u i32.const 224 i32.or - local.set $9 + local.set $15 local.get $7 i32.const 6 i32.shr_u @@ -195,22 +201,22 @@ i32.and i32.const 128 i32.or - local.set $12 + local.set $16 local.get $7 i32.const 63 i32.and i32.const 128 i32.or - local.set $11 + local.set $17 local.get $5 - local.get $12 + local.get $16 i32.const 8 i32.shl - local.get $9 + local.get $15 i32.or i32.store16 local.get $5 - local.get $11 + local.get $17 i32.store8 offset=2 local.get $5 i32.const 3 @@ -228,11 +234,11 @@ local.get $3 if local.get $5 - local.tee $6 + local.tee $18 i32.const 1 i32.add local.set $5 - local.get $6 + local.get $18 i32.const 0 i32.store8 end @@ -304,6 +310,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -376,7 +385,7 @@ local.get $2 i32.const 10 i32.div_u - local.set $5 + local.set $7 local.get $4 i32.const 1 i32.sub @@ -387,11 +396,11 @@ i32.rem_u i32.add i32.store8 - local.get $5 + local.get $7 local.set $2 local.get $2 - local.set $7 - local.get $7 + local.set $8 + local.get $8 br_if $do-continue|0 end local.get $4 @@ -399,11 +408,11 @@ i32.add local.set $4 local.get $4 - local.tee $7 + local.tee $9 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $9 i32.const 58 i32.store8 local.get $3 @@ -417,7 +426,7 @@ local.get $3 i32.const 10 i32.div_u - local.set $7 + local.set $10 local.get $4 i32.const 1 i32.sub @@ -428,11 +437,11 @@ i32.rem_u i32.add i32.store8 - local.get $7 + local.get $10 local.set $3 local.get $3 - local.set $8 - local.get $8 + local.set $11 + local.get $11 br_if $do-continue|1 end local.get $4 diff --git a/tests/compiler/wasi/seed.untouched.wat b/tests/compiler/wasi/seed.untouched.wat index 7b482d50a1..cee49c0494 100644 --- a/tests/compiler/wasi/seed.untouched.wat +++ b/tests/compiler/wasi/seed.untouched.wat @@ -136,6 +136,12 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 local.get $1 i32.const 1 @@ -211,8 +217,8 @@ if local.get $0 i32.load16_u offset=2 - local.set $9 - local.get $9 + local.set $10 + local.get $10 i32.const 64512 i32.and i32.const 56320 @@ -225,7 +231,7 @@ i32.const 10 i32.shl i32.add - local.get $9 + local.get $10 i32.const 1023 i32.and i32.or @@ -235,7 +241,7 @@ i32.shr_u i32.const 240 i32.or - local.set $8 + local.set $11 local.get $7 i32.const 12 i32.shr_u @@ -243,7 +249,7 @@ i32.and i32.const 128 i32.or - local.set $10 + local.set $12 local.get $7 i32.const 6 i32.shr_u @@ -251,26 +257,26 @@ i32.and i32.const 128 i32.or - local.set $11 + local.set $13 local.get $7 i32.const 63 i32.and i32.const 128 i32.or - local.set $12 + local.set $14 local.get $5 - local.get $12 + local.get $14 i32.const 24 i32.shl - local.get $11 + local.get $13 i32.const 16 i32.shl i32.or - local.get $10 + local.get $12 i32.const 8 i32.shl i32.or - local.get $8 + local.get $11 i32.or i32.store local.get $5 @@ -289,7 +295,7 @@ i32.shr_u i32.const 224 i32.or - local.set $9 + local.set $15 local.get $7 i32.const 6 i32.shr_u @@ -297,22 +303,22 @@ i32.and i32.const 128 i32.or - local.set $12 + local.set $16 local.get $7 i32.const 63 i32.and i32.const 128 i32.or - local.set $11 + local.set $17 local.get $5 - local.get $12 + local.get $16 i32.const 8 i32.shl - local.get $9 + local.get $15 i32.or i32.store16 local.get $5 - local.get $11 + local.get $17 i32.store8 offset=2 local.get $5 i32.const 3 @@ -330,11 +336,11 @@ local.get $3 if local.get $5 - local.tee $6 + local.tee $18 i32.const 1 i32.add local.set $5 - local.get $6 + local.get $18 i32.const 0 i32.store8 end @@ -406,6 +412,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -478,7 +487,7 @@ local.get $2 i32.const 10 i32.div_u - local.set $5 + local.set $7 local.get $4 i32.const 1 i32.sub @@ -489,11 +498,11 @@ i32.rem_u i32.add i32.store8 - local.get $5 + local.get $7 local.set $2 local.get $2 - local.set $7 - local.get $7 + local.set $8 + local.get $8 br_if $do-continue|0 end local.get $4 @@ -501,11 +510,11 @@ i32.add local.set $4 local.get $4 - local.tee $7 + local.tee $9 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $9 i32.const 58 i32.store8 local.get $3 @@ -519,7 +528,7 @@ local.get $3 i32.const 10 i32.div_u - local.set $7 + local.set $10 local.get $4 i32.const 1 i32.sub @@ -530,11 +539,11 @@ i32.rem_u i32.add i32.store8 - local.get $7 + local.get $10 local.set $3 local.get $3 - local.set $8 - local.get $8 + local.set $11 + local.get $11 br_if $do-continue|1 end local.get $4 diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index 13a8be18f1..b5efee8efb 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -736,8 +736,6 @@ global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $8 - local.set $1 local.get $9 i32.const 0 local.get $4 @@ -748,7 +746,7 @@ i32.add i64.load32_u i64.mul - local.set $3 + local.set $1 local.get $0 local.get $6 i32.const 1 @@ -761,30 +759,30 @@ local.set $4 loop $while-continue|6 i32.const 1 - local.get $3 local.get $1 + local.get $8 i64.sub - local.get $1 + local.get $8 local.get $11 i64.add - local.get $3 + local.get $1 i64.sub i64.gt_u - local.get $1 + local.get $8 local.get $11 i64.add - local.get $3 + local.get $1 i64.lt_u select i32.const 0 local.get $5 - local.get $1 + local.get $8 i64.sub local.get $11 i64.ge_u i32.const 0 + local.get $8 local.get $1 - local.get $3 i64.lt_u select select @@ -793,10 +791,10 @@ i32.const 1 i32.sub local.set $4 - local.get $1 + local.get $8 local.get $11 i64.add - local.set $1 + local.set $8 br $while-continue|6 end end diff --git a/tests/compiler/wasi/trace.untouched.wat b/tests/compiler/wasi/trace.untouched.wat index c1b5d27963..6f553d9ef3 100644 --- a/tests/compiler/wasi/trace.untouched.wat +++ b/tests/compiler/wasi/trace.untouched.wat @@ -46,6 +46,7 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -146,10 +147,10 @@ end end local.get $4 - local.set $5 + local.set $7 local.get $0 call $~lib/rt/stub/__release - local.get $5 + local.get $7 ) (func $~lib/rt/stub/maybeGrowMemory (param $0 i32) (local $1 i32) @@ -157,6 +158,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) memory.size local.set $1 local.get $1 @@ -187,8 +189,8 @@ local.get $5 i32.gt_s select - local.set $4 - local.get $4 + local.set $6 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -278,6 +280,12 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) local.get $0 local.get $1 i32.const 1 @@ -353,8 +361,8 @@ if local.get $0 i32.load16_u offset=2 - local.set $9 - local.get $9 + local.set $10 + local.get $10 i32.const 64512 i32.and i32.const 56320 @@ -367,7 +375,7 @@ i32.const 10 i32.shl i32.add - local.get $9 + local.get $10 i32.const 1023 i32.and i32.or @@ -377,7 +385,7 @@ i32.shr_u i32.const 240 i32.or - local.set $8 + local.set $11 local.get $7 i32.const 12 i32.shr_u @@ -385,7 +393,7 @@ i32.and i32.const 128 i32.or - local.set $10 + local.set $12 local.get $7 i32.const 6 i32.shr_u @@ -393,26 +401,26 @@ i32.and i32.const 128 i32.or - local.set $11 + local.set $13 local.get $7 i32.const 63 i32.and i32.const 128 i32.or - local.set $12 + local.set $14 local.get $5 - local.get $12 + local.get $14 i32.const 24 i32.shl - local.get $11 + local.get $13 i32.const 16 i32.shl i32.or - local.get $10 + local.get $12 i32.const 8 i32.shl i32.or - local.get $8 + local.get $11 i32.or i32.store local.get $5 @@ -431,7 +439,7 @@ i32.shr_u i32.const 224 i32.or - local.set $9 + local.set $15 local.get $7 i32.const 6 i32.shr_u @@ -439,22 +447,22 @@ i32.and i32.const 128 i32.or - local.set $12 + local.set $16 local.get $7 i32.const 63 i32.and i32.const 128 i32.or - local.set $11 + local.set $17 local.get $5 - local.get $12 + local.get $16 i32.const 8 i32.shl - local.get $9 + local.get $15 i32.or i32.store16 local.get $5 - local.get $11 + local.get $17 i32.store8 offset=2 local.get $5 i32.const 3 @@ -472,11 +480,11 @@ local.get $3 if local.get $5 - local.tee $6 + local.tee $18 i32.const 1 i32.add local.set $5 - local.get $6 + local.get $18 i32.const 0 i32.store8 end @@ -552,16 +560,31 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (local $19 i64) + (local $19 i32) (local $20 i64) (local $21 i64) (local $22 i64) (local $23 i64) - (local $24 i32) + (local $24 i64) (local $25 i32) (local $26 i32) (local $27 i32) - (local $28 i64) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i64) + (local $33 i32) + (local $34 i64) + (local $35 i64) + (local $36 i64) + (local $37 i64) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) i32.const 0 local.get $4 i32.sub @@ -765,11 +788,11 @@ if local.get $0 local.get $15 - local.tee $18 + local.tee $19 i32.const 1 i32.add local.set $15 - local.get $18 + local.get $19 i32.const 1 i32.shl i32.add @@ -791,8 +814,8 @@ i64.shl local.get $13 i64.add - local.set $19 - local.get $19 + local.set $20 + local.get $20 local.get $5 i64.le_u if @@ -801,13 +824,13 @@ i32.add global.set $~lib/util/number/_K local.get $0 - local.set $24 + local.set $26 local.get $15 - local.set $18 + local.set $25 local.get $5 + local.set $24 + local.get $20 local.set $23 - local.get $19 - local.set $22 i32.const 928 local.get $14 i32.const 2 @@ -817,71 +840,71 @@ local.get $7 i64.extend_i32_s i64.shl - local.set $21 + local.set $22 local.get $10 - local.set $20 - local.get $24 - local.get $18 + local.set $21 + local.get $26 + local.get $25 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $25 - local.get $25 + local.set $27 + local.get $27 i32.load16_u - local.set $26 + local.set $28 loop $while-continue|3 - local.get $22 - local.get $20 + local.get $23 + local.get $21 i64.lt_u if (result i32) + local.get $24 local.get $23 - local.get $22 i64.sub - local.get $21 + local.get $22 i64.ge_u else i32.const 0 end if (result i32) + local.get $23 local.get $22 - local.get $21 i64.add - local.get $20 + local.get $21 i64.lt_u if (result i32) i32.const 1 else - local.get $20 - local.get $22 + local.get $21 + local.get $23 i64.sub + local.get $23 local.get $22 - local.get $21 i64.add - local.get $20 + local.get $21 i64.sub i64.gt_u end else i32.const 0 end - local.set $27 - local.get $27 + local.set $30 + local.get $30 if - local.get $26 + local.get $28 i32.const 1 i32.sub - local.set $26 + local.set $28 + local.get $23 local.get $22 - local.get $21 i64.add - local.set $22 + local.set $23 br $while-continue|3 end end - local.get $25 - local.get $26 + local.get $27 + local.get $28 i32.store16 local.get $15 return @@ -891,8 +914,8 @@ end loop $while-continue|4 i32.const 1 - local.set $16 - local.get $16 + local.set $31 + local.get $31 if local.get $13 i64.const 10 @@ -906,8 +929,8 @@ local.get $7 i64.extend_i32_s i64.shr_u - local.set $23 - local.get $23 + local.set $32 + local.get $32 local.get $15 i64.extend_i32_s i64.or @@ -916,16 +939,16 @@ if local.get $0 local.get $15 - local.tee $26 + local.tee $33 i32.const 1 i32.add local.set $15 - local.get $26 + local.get $33 i32.const 1 i32.shl i32.add i32.const 48 - local.get $23 + local.get $32 i32.wrap_i64 i32.const 65535 i32.and @@ -960,79 +983,79 @@ i64.mul local.set $10 local.get $0 - local.set $18 + local.set $39 local.get $15 - local.set $27 + local.set $38 local.get $5 - local.set $28 + local.set $37 local.get $13 - local.set $22 + local.set $36 local.get $8 - local.set $21 + local.set $35 local.get $10 - local.set $20 - local.get $18 - local.get $27 + local.set $34 + local.get $39 + local.get $38 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $26 - local.get $26 + local.set $40 + local.get $40 i32.load16_u - local.set $25 + local.set $41 loop $while-continue|6 - local.get $22 - local.get $20 + local.get $36 + local.get $34 i64.lt_u if (result i32) - local.get $28 - local.get $22 + local.get $37 + local.get $36 i64.sub - local.get $21 + local.get $35 i64.ge_u else i32.const 0 end if (result i32) - local.get $22 - local.get $21 + local.get $36 + local.get $35 i64.add - local.get $20 + local.get $34 i64.lt_u if (result i32) i32.const 1 else - local.get $20 - local.get $22 + local.get $34 + local.get $36 i64.sub - local.get $22 - local.get $21 + local.get $36 + local.get $35 i64.add - local.get $20 + local.get $34 i64.sub i64.gt_u end else i32.const 0 end - local.set $24 - local.get $24 + local.set $43 + local.get $43 if - local.get $25 + local.get $41 i32.const 1 i32.sub - local.set $25 - local.get $22 - local.get $21 + local.set $41 + local.get $36 + local.get $35 i64.add - local.set $22 + local.set $36 br $while-continue|6 end end - local.get $26 - local.get $25 + local.get $40 + local.get $41 i32.store16 local.get $15 return @@ -1047,6 +1070,88 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i32) + (local $65 i32) + (local $66 i32) + (local $67 i32) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) + (local $72 i32) + (local $73 i32) + (local $74 i32) + (local $75 i32) + (local $76 i32) + (local $77 i32) + (local $78 i32) + (local $79 i32) + (local $80 i32) + (local $81 i32) + (local $82 i32) + (local $83 i32) + (local $84 i32) + (local $85 i32) + (local $86 i32) + (local $87 i32) + (local $88 i32) loop $while-continue|0 local.get $2 if (result i32) @@ -1066,11 +1171,11 @@ local.set $0 local.get $6 local.get $1 - local.tee $6 + local.tee $7 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 i32.load8_u i32.store8 local.get $2 @@ -1090,8 +1195,8 @@ local.get $2 i32.const 16 i32.ge_u - local.set $5 - local.get $5 + local.set $8 + local.get $8 if local.get $0 local.get $1 @@ -1200,17 +1305,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $9 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $9 local.get $1 - local.tee $5 + local.tee $10 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $10 i32.load8_u i32.store8 end @@ -1227,16 +1332,16 @@ local.get $0 i32.const 3 i32.and - local.set $5 - local.get $5 + local.set $11 + local.get $11 i32.const 1 i32.eq br_if $case0|2 - local.get $5 + local.get $11 i32.const 2 i32.eq br_if $case1|2 - local.get $5 + local.get $11 i32.const 3 i32.eq br_if $case2|2 @@ -1246,45 +1351,45 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $12 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $12 local.get $1 - local.tee $5 + local.tee $13 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $13 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $14 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $14 local.get $1 - local.tee $5 + local.tee $15 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $15 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $16 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $16 local.get $1 - local.tee $5 + local.tee $17 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $17 i32.load8_u i32.store8 local.get $2 @@ -1295,8 +1400,8 @@ local.get $2 i32.const 17 i32.ge_u - local.set $5 - local.get $5 + local.set $18 + local.get $18 if local.get $1 i32.const 1 @@ -1381,31 +1486,31 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $19 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $19 local.get $1 - local.tee $5 + local.tee $20 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $20 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $21 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $21 local.get $1 - local.tee $5 + local.tee $22 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $22 i32.load8_u i32.store8 local.get $2 @@ -1416,8 +1521,8 @@ local.get $2 i32.const 18 i32.ge_u - local.set $5 - local.get $5 + local.set $23 + local.get $23 if local.get $1 i32.const 2 @@ -1502,17 +1607,17 @@ i32.load local.set $3 local.get $0 - local.tee $5 + local.tee $24 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $24 local.get $1 - local.tee $5 + local.tee $25 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $25 i32.load8_u i32.store8 local.get $2 @@ -1523,8 +1628,8 @@ local.get $2 i32.const 19 i32.ge_u - local.set $5 - local.get $5 + local.set $26 + local.get $26 if local.get $1 i32.const 3 @@ -1611,227 +1716,227 @@ i32.and if local.get $0 - local.tee $5 + local.tee $27 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $27 local.get $1 - local.tee $5 + local.tee $28 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $28 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $29 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $29 local.get $1 - local.tee $5 + local.tee $30 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $30 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $31 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $31 local.get $1 - local.tee $5 + local.tee $32 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $32 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $33 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $33 local.get $1 - local.tee $5 + local.tee $34 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $34 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $35 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $35 local.get $1 - local.tee $5 + local.tee $36 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $36 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $37 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $37 local.get $1 - local.tee $5 + local.tee $38 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $38 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $39 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $39 local.get $1 - local.tee $5 + local.tee $40 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $40 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $41 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $41 local.get $1 - local.tee $5 + local.tee $42 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $42 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $43 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $43 local.get $1 - local.tee $5 + local.tee $44 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $44 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $45 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $45 local.get $1 - local.tee $5 + local.tee $46 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $46 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $47 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $47 local.get $1 - local.tee $5 + local.tee $48 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $48 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $49 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $49 local.get $1 - local.tee $5 + local.tee $50 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $50 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $51 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $51 local.get $1 - local.tee $5 + local.tee $52 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $52 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $53 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $53 local.get $1 - local.tee $5 + local.tee $54 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $54 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $55 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $55 local.get $1 - local.tee $5 + local.tee $56 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $56 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $57 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $57 local.get $1 - local.tee $5 + local.tee $58 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $58 i32.load8_u i32.store8 end @@ -1840,115 +1945,115 @@ i32.and if local.get $0 - local.tee $5 + local.tee $59 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $59 local.get $1 - local.tee $5 + local.tee $60 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $60 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $61 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $61 local.get $1 - local.tee $5 + local.tee $62 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $62 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $63 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $63 local.get $1 - local.tee $5 + local.tee $64 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $64 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $65 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $65 local.get $1 - local.tee $5 + local.tee $66 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $66 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $67 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $67 local.get $1 - local.tee $5 + local.tee $68 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $68 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $69 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $69 local.get $1 - local.tee $5 + local.tee $70 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $70 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $71 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $71 local.get $1 - local.tee $5 + local.tee $72 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $72 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $73 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $73 local.get $1 - local.tee $5 + local.tee $74 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $74 i32.load8_u i32.store8 end @@ -1957,59 +2062,59 @@ i32.and if local.get $0 - local.tee $5 + local.tee $75 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $75 local.get $1 - local.tee $5 + local.tee $76 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $76 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $77 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $77 local.get $1 - local.tee $5 + local.tee $78 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $78 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $79 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $79 local.get $1 - local.tee $5 + local.tee $80 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $80 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $81 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $81 local.get $1 - local.tee $5 + local.tee $82 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $82 i32.load8_u i32.store8 end @@ -2018,31 +2123,31 @@ i32.and if local.get $0 - local.tee $5 + local.tee $83 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $83 local.get $1 - local.tee $5 + local.tee $84 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $84 i32.load8_u i32.store8 local.get $0 - local.tee $5 + local.tee $85 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $85 local.get $1 - local.tee $5 + local.tee $86 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $86 i32.load8_u i32.store8 end @@ -2051,17 +2156,17 @@ i32.and if local.get $0 - local.tee $5 + local.tee $87 i32.const 1 i32.add local.set $0 - local.get $5 + local.get $87 local.get $1 - local.tee $5 + local.tee $88 i32.const 1 i32.add local.set $1 - local.get $5 + local.get $88 i32.load8_u i32.store8 end @@ -2072,6 +2177,14 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 local.set $5 @@ -2149,11 +2262,11 @@ local.set $5 local.get $7 local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.load8_u i32.store8 br $while-continue|0 @@ -2163,8 +2276,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $5 local.get $4 @@ -2188,21 +2301,21 @@ end loop $while-continue|2 local.get $3 - local.set $6 - local.get $6 + local.set $10 + local.get $10 if local.get $5 - local.tee $7 + local.tee $11 i32.const 1 i32.add local.set $5 - local.get $7 + local.get $11 local.get $4 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $12 i32.load8_u i32.store8 local.get $3 @@ -2231,8 +2344,8 @@ i32.add i32.const 7 i32.and - local.set $6 - local.get $6 + local.set $13 + local.get $13 if local.get $3 i32.eqz @@ -2257,8 +2370,8 @@ local.get $3 i32.const 8 i32.ge_u - local.set $6 - local.get $6 + local.set $14 + local.get $14 if local.get $3 i32.const 8 @@ -2278,8 +2391,8 @@ end loop $while-continue|5 local.get $3 - local.set $6 - local.get $6 + local.set $15 + local.get $15 if local.get $5 local.get $3 @@ -2308,6 +2421,9 @@ (local $9 i64) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) loop $while-continue|0 local.get $1 i32.const 10000 @@ -2372,30 +2488,30 @@ local.get $1 i32.const 100 i32.div_u - local.set $3 + local.set $10 local.get $1 i32.const 100 i32.rem_u - local.set $10 - local.get $3 + local.set $11 + local.get $10 local.set $1 local.get $2 i32.const 2 i32.sub local.set $2 i32.const 968 - local.get $10 + local.get $11 i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $12 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $12 i32.store end local.get $1 @@ -2412,13 +2528,13 @@ i32.shl i32.add i32.load - local.set $11 + local.set $13 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $13 i32.store else local.get $2 @@ -2428,13 +2544,13 @@ i32.const 48 local.get $1 i32.add - local.set $11 + local.set $14 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $11 + local.get $14 i32.store16 end ) @@ -2448,6 +2564,19 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) local.get $2 i32.eqz if @@ -2537,11 +2666,11 @@ i32.const 1 i32.shl i32.add - local.set $4 - local.get $4 + local.set $6 + local.get $6 i32.const 2 i32.add - local.get $4 + local.get $6 i32.const 0 local.get $2 i32.sub @@ -2574,9 +2703,9 @@ i32.const 2 local.get $3 i32.sub - local.set $4 + local.set $7 local.get $0 - local.get $4 + local.get $7 i32.const 1 i32.shl i32.add @@ -2593,30 +2722,30 @@ i32.or i32.store i32.const 2 - local.set $5 + local.set $8 loop $for-loop|1 - local.get $5 - local.get $4 + local.get $8 + local.get $7 i32.lt_s - local.set $6 - local.get $6 + local.set $9 + local.get $9 if local.get $0 - local.get $5 + local.get $8 i32.const 1 i32.shl i32.add i32.const 48 i32.store16 - local.get $5 + local.get $8 i32.const 1 i32.add - local.set $5 + local.set $8 br $for-loop|1 end end local.get $1 - local.get $4 + local.get $7 i32.add return else @@ -2630,48 +2759,48 @@ local.get $0 i32.const 4 i32.add - local.set $5 + local.set $11 local.get $3 i32.const 1 i32.sub - local.set $6 - local.get $6 + local.set $10 + local.get $10 i32.const 0 i32.lt_s - local.set $4 - local.get $4 + local.set $12 + local.get $12 if i32.const 0 - local.get $6 + local.get $10 i32.sub - local.set $6 + local.set $10 end - local.get $6 + local.get $10 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $7 - local.get $5 - local.set $10 - local.get $6 - local.set $9 - local.get $7 - local.set $8 + local.set $13 + local.get $11 + local.set $16 + local.get $10 + local.set $15 + local.get $13 + local.set $14 i32.const 0 i32.const 1 i32.ge_s drop - local.get $10 - local.get $9 - local.get $8 + local.get $16 + local.get $15 + local.get $14 call $~lib/util/number/utoa32_lut - local.get $5 + local.get $11 i32.const 45 i32.const 43 - local.get $4 + local.get $12 select i32.store16 - local.get $7 + local.get $13 local.set $1 local.get $1 i32.const 2 @@ -2681,14 +2810,14 @@ local.get $1 i32.const 1 i32.shl - local.set $7 + local.set $17 local.get $0 i32.const 4 i32.add local.get $0 i32.const 2 i32.add - local.get $7 + local.get $17 i32.const 2 i32.sub call $~lib/memory/memory.copy @@ -2696,58 +2825,58 @@ i32.const 46 i32.store16 offset=2 local.get $0 - local.get $7 + local.get $17 i32.add i32.const 101 i32.store16 offset=2 local.get $1 local.get $0 - local.get $7 + local.get $17 i32.add i32.const 4 i32.add - local.set $9 + local.set $19 local.get $3 i32.const 1 i32.sub - local.set $8 - local.get $8 + local.set $18 + local.get $18 i32.const 0 i32.lt_s - local.set $4 - local.get $4 + local.set $20 + local.get $20 if i32.const 0 - local.get $8 + local.get $18 i32.sub - local.set $8 + local.set $18 end - local.get $8 + local.get $18 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $5 - local.get $9 - local.set $11 - local.get $8 - local.set $6 - local.get $5 - local.set $10 + local.set $21 + local.get $19 + local.set $24 + local.get $18 + local.set $23 + local.get $21 + local.set $22 i32.const 0 i32.const 1 i32.ge_s drop - local.get $11 - local.get $6 - local.get $10 + local.get $24 + local.get $23 + local.get $22 call $~lib/util/number/utoa32_lut - local.get $9 + local.get $19 i32.const 45 i32.const 43 - local.get $4 + local.get $20 select i32.store16 - local.get $5 + local.get $21 i32.add local.set $1 local.get $1 @@ -2778,19 +2907,51 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 f64) - (local $17 i64) - (local $18 i64) - (local $19 i64) - (local $20 i64) + (local $16 i32) + (local $17 f64) + (local $18 i32) + (local $19 i32) + (local $20 i32) (local $21 i64) - (local $22 i64) + (local $22 i32) (local $23 i64) (local $24 i64) (local $25 i64) - (local $26 i32) + (local $26 i64) (local $27 i64) - (local $28 i32) + (local $28 i64) + (local $29 i64) + (local $30 i64) + (local $31 i64) + (local $32 i64) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i64) + (local $37 i64) + (local $38 i64) + (local $39 i64) + (local $40 i64) + (local $41 i64) + (local $42 i64) + (local $43 i64) + (local $44 i64) + (local $45 i64) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i64) + (local $50 i64) + (local $51 i64) + (local $52 i64) + (local $53 i64) + (local $54 i64) + (local $55 i64) + (local $56 i64) + (local $57 i64) + (local $58 i64) + (local $59 i64) + (local $60 i32) local.get $1 f64.const 0 f64.lt @@ -2894,47 +3055,47 @@ local.get $13 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp - local.set $10 + local.set $16 i32.const -61 - local.get $10 + local.get $16 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 f64.mul f64.const 347 f64.add - local.set $16 - local.get $16 + local.set $17 + local.get $17 i32.trunc_f64_s - local.set $15 - local.get $15 - local.get $15 + local.set $18 + local.get $18 + local.get $18 f64.convert_i32_s - local.get $16 + local.get $17 f64.ne i32.add - local.set $15 - local.get $15 + local.set $18 + local.get $18 i32.const 3 i32.shr_s i32.const 1 i32.add - local.set $14 + local.set $19 i32.const 348 - local.get $14 + local.get $19 i32.const 3 i32.shl i32.sub global.set $~lib/util/number/_K i32.const 56 - local.get $14 + local.get $19 i32.const 3 i32.shl i32.add i64.load global.set $~lib/util/number/_frc_pow i32.const 752 - local.get $14 + local.get $19 i32.const 1 i32.shl i32.add @@ -2943,249 +3104,249 @@ local.get $9 i64.clz i32.wrap_i64 - local.set $14 + local.set $20 local.get $9 - local.get $14 + local.get $20 i64.extend_i32_s i64.shl local.set $9 local.get $7 - local.get $14 + local.get $20 i32.sub local.set $7 global.get $~lib/util/number/_frc_pow - local.set $12 + local.set $21 global.get $~lib/util/number/_exp_pow - local.set $15 + local.set $22 local.get $9 - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $24 + local.get $21 + local.set $23 + local.get $24 i64.const 4294967295 i64.and - local.set $18 - local.get $11 + local.set $25 + local.get $23 i64.const 4294967295 i64.and - local.set $19 - local.get $17 + local.set $26 + local.get $24 i64.const 32 i64.shr_u - local.set $20 - local.get $11 + local.set $27 + local.get $23 i64.const 32 i64.shr_u - local.set $21 - local.get $18 - local.get $19 + local.set $28 + local.get $25 + local.get $26 i64.mul - local.set $22 - local.get $20 - local.get $19 + local.set $29 + local.get $27 + local.get $26 i64.mul - local.get $22 + local.get $29 i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $18 - local.get $21 + local.set $30 + local.get $25 + local.get $28 i64.mul - local.get $23 + local.get $30 i64.const 4294967295 i64.and i64.add - local.set $24 - local.get $24 + local.set $31 + local.get $31 i64.const 2147483647 i64.add - local.set $24 - local.get $23 + local.set $31 + local.get $30 i64.const 32 i64.shr_u - local.set $23 - local.get $24 + local.set $30 + local.get $31 i64.const 32 i64.shr_u - local.set $24 - local.get $20 - local.get $21 + local.set $31 + local.get $27 + local.get $28 i64.mul - local.get $23 + local.get $30 i64.add - local.get $24 + local.get $31 i64.add - local.set $24 + local.set $32 local.get $7 - local.set $10 - local.get $15 - local.set $13 - local.get $10 - local.get $13 + local.set $34 + local.get $22 + local.set $33 + local.get $34 + local.get $33 i32.add i32.const 64 i32.add - local.set $10 + local.set $35 global.get $~lib/util/number/_frc_plus - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $37 + local.get $21 + local.set $36 + local.get $37 i64.const 4294967295 i64.and - local.set $23 - local.get $11 + local.set $38 + local.get $36 i64.const 4294967295 i64.and - local.set $22 - local.get $17 + local.set $39 + local.get $37 i64.const 32 i64.shr_u - local.set $21 - local.get $11 + local.set $40 + local.get $36 i64.const 32 i64.shr_u - local.set $20 - local.get $23 - local.get $22 + local.set $41 + local.get $38 + local.get $39 i64.mul - local.set $19 - local.get $21 - local.get $22 + local.set $42 + local.get $40 + local.get $39 i64.mul - local.get $19 + local.get $42 i64.const 32 i64.shr_u i64.add - local.set $18 - local.get $23 - local.get $20 + local.set $43 + local.get $38 + local.get $41 i64.mul - local.get $18 + local.get $43 i64.const 4294967295 i64.and i64.add - local.set $25 - local.get $25 + local.set $44 + local.get $44 i64.const 2147483647 i64.add - local.set $25 - local.get $18 + local.set $44 + local.get $43 i64.const 32 i64.shr_u - local.set $18 - local.get $25 + local.set $43 + local.get $44 i64.const 32 i64.shr_u - local.set $25 - local.get $21 - local.get $20 + local.set $44 + local.get $40 + local.get $41 i64.mul - local.get $18 + local.get $43 i64.add - local.get $25 + local.get $44 i64.add i64.const 1 i64.sub - local.set $25 + local.set $45 global.get $~lib/util/number/_exp - local.set $26 - local.get $15 - local.set $13 - local.get $26 - local.get $13 + local.set $47 + local.get $22 + local.set $46 + local.get $47 + local.get $46 i32.add i32.const 64 i32.add - local.set $26 + local.set $48 global.get $~lib/util/number/_frc_minus - local.set $17 - local.get $12 - local.set $11 - local.get $17 + local.set $50 + local.get $21 + local.set $49 + local.get $50 i64.const 4294967295 i64.and - local.set $18 - local.get $11 + local.set $51 + local.get $49 i64.const 4294967295 i64.and - local.set $19 - local.get $17 + local.set $52 + local.get $50 i64.const 32 i64.shr_u - local.set $20 - local.get $11 + local.set $53 + local.get $49 i64.const 32 i64.shr_u - local.set $21 - local.get $18 - local.get $19 + local.set $54 + local.get $51 + local.get $52 i64.mul - local.set $22 - local.get $20 - local.get $19 + local.set $55 + local.get $53 + local.get $52 i64.mul - local.get $22 + local.get $55 i64.const 32 i64.shr_u i64.add - local.set $23 - local.get $18 - local.get $21 + local.set $56 + local.get $51 + local.get $54 i64.mul - local.get $23 + local.get $56 i64.const 4294967295 i64.and i64.add - local.set $27 - local.get $27 + local.set $57 + local.get $57 i64.const 2147483647 i64.add - local.set $27 - local.get $23 + local.set $57 + local.get $56 i64.const 32 i64.shr_u - local.set $23 - local.get $27 + local.set $56 + local.get $57 i64.const 32 i64.shr_u - local.set $27 - local.get $20 - local.get $21 + local.set $57 + local.get $53 + local.get $54 i64.mul - local.get $23 + local.get $56 i64.add - local.get $27 + local.get $57 i64.add i64.const 1 i64.add - local.set $27 - local.get $25 - local.get $27 + local.set $58 + local.get $45 + local.get $58 i64.sub - local.set $23 + local.set $59 local.get $4 - local.get $24 - local.get $10 - local.get $25 - local.get $26 - local.get $23 + local.get $32 + local.get $35 + local.get $45 + local.get $48 + local.get $59 local.get $3 call $~lib/util/number/genDigits - local.set $28 + local.set $60 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $28 + local.get $60 local.get $2 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.set $28 - local.get $28 + local.set $60 + local.get $60 local.get $2 i32.add ) @@ -3273,6 +3434,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -3345,7 +3509,7 @@ local.get $2 i32.const 10 i32.div_u - local.set $5 + local.set $7 local.get $4 i32.const 1 i32.sub @@ -3356,11 +3520,11 @@ i32.rem_u i32.add i32.store8 - local.get $5 + local.get $7 local.set $2 local.get $2 - local.set $7 - local.get $7 + local.set $8 + local.get $8 br_if $do-continue|0 end local.get $4 @@ -3368,11 +3532,11 @@ i32.add local.set $4 local.get $4 - local.tee $7 + local.tee $9 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $9 i32.const 58 i32.store8 local.get $3 @@ -3386,7 +3550,7 @@ local.get $3 i32.const 10 i32.div_u - local.set $7 + local.set $10 local.get $4 i32.const 1 i32.sub @@ -3397,11 +3561,11 @@ i32.rem_u i32.add i32.store8 - local.get $7 + local.get $10 local.set $3 local.get $3 - local.set $8 - local.get $8 + local.set $11 + local.get $11 br_if $do-continue|1 end local.get $4 @@ -3491,6 +3655,7 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) local.get $0 call $~lib/rt/stub/__retain local.set $0 @@ -3555,11 +3720,11 @@ local.get $1 if local.get $11 - local.tee $7 + local.tee $12 i32.const 1 i32.add local.set $11 - local.get $7 + local.get $12 i32.const 32 i32.store8 local.get $9 diff --git a/tests/compiler/while.untouched.wat b/tests/compiler/while.untouched.wat index 7caedb7a8b..08dcee826c 100644 --- a/tests/compiler/while.untouched.wat +++ b/tests/compiler/while.untouched.wat @@ -190,6 +190,7 @@ (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) i32.const 1 local.set $0 i32.const 0 @@ -209,8 +210,8 @@ else i32.const 0 end - local.set $2 - local.get $2 + local.set $3 + local.get $3 if nop br $while-continue|0 @@ -493,6 +494,15 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) local.get $1 i32.load local.set $2 @@ -629,59 +639,59 @@ i32.eq if local.get $0 - local.set $11 + local.set $14 local.get $4 - local.set $10 + local.set $13 local.get $5 - local.set $9 + local.set $12 local.get $7 - local.set $8 - local.get $11 - local.get $10 + local.set $11 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $9 + local.get $12 i32.add i32.const 2 i32.shl i32.add - local.get $8 + local.get $11 i32.store offset=96 local.get $7 i32.eqz if local.get $0 - local.set $9 + local.set $16 local.get $4 - local.set $8 - local.get $9 - local.get $8 + local.set $15 + local.get $16 + local.get $15 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $9 + local.set $17 local.get $0 - local.set $8 + local.set $20 local.get $4 - local.set $11 - local.get $9 + local.set $19 + local.get $17 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 + local.tee $17 + local.set $18 + local.get $20 + local.get $19 i32.const 2 i32.shl i32.add - local.get $10 + local.get $18 i32.store offset=4 - local.get $9 + local.get $17 i32.eqz if local.get $0 @@ -711,6 +721,20 @@ (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) i32.const 1 drop local.get $1 @@ -773,8 +797,8 @@ i32.xor i32.and i32.add - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 1073741808 i32.lt_u if @@ -785,16 +809,16 @@ local.get $2 i32.const 3 i32.and - local.get $3 + local.get $6 i32.or local.tee $2 i32.store local.get $1 - local.set $6 - local.get $6 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $6 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -812,18 +836,18 @@ i32.and if local.get $1 - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 4 i32.sub i32.load - local.set $6 - local.get $6 + local.set $9 + local.get $9 i32.load - local.set $3 + local.set $10 i32.const 1 drop - local.get $3 + local.get $10 i32.const 1 i32.and i32.eqz @@ -835,7 +859,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $10 i32.const 3 i32.const -1 i32.xor @@ -848,23 +872,23 @@ i32.xor i32.and i32.add - local.set $7 - local.get $7 + local.set $11 + local.get $11 i32.const 1073741808 i32.lt_u if local.get $0 - local.get $6 + local.get $9 call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 + local.get $9 + local.get $10 i32.const 3 i32.and - local.get $7 + local.get $11 i32.or local.tee $2 i32.store - local.get $6 + local.get $9 local.set $1 end end @@ -878,14 +902,14 @@ i32.const -1 i32.xor i32.and - local.set $8 + local.set $12 i32.const 1 drop - local.get $8 + local.get $12 i32.const 16 i32.ge_u if (result i32) - local.get $8 + local.get $12 i32.const 1073741808 i32.lt_u else @@ -905,7 +929,7 @@ local.get $1 i32.const 16 i32.add - local.get $8 + local.get $12 i32.add local.get $4 i32.eq @@ -923,24 +947,24 @@ i32.sub local.get $1 i32.store - local.get $8 + local.get $12 i32.const 256 i32.lt_u if i32.const 0 - local.set $9 - local.get $8 + local.set $13 + local.get $12 i32.const 4 i32.shr_u - local.set $10 + local.set $14 else i32.const 31 - local.get $8 + local.get $12 i32.clz i32.sub - local.set $9 - local.get $8 - local.get $9 + local.set $13 + local.get $12 + local.get $13 i32.const 4 i32.sub i32.shr_u @@ -948,21 +972,21 @@ i32.const 4 i32.shl i32.xor - local.set $10 - local.get $9 + local.set $14 + local.get $13 i32.const 8 i32.const 1 i32.sub i32.sub - local.set $9 + local.set $13 end i32.const 1 drop - local.get $9 + local.get $13 i32.const 23 i32.lt_u if (result i32) - local.get $10 + local.get $14 i32.const 16 i32.lt_u else @@ -978,86 +1002,86 @@ unreachable end local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 + local.set $17 + local.get $13 + local.set $16 + local.get $14 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $6 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $11 + local.set $18 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $11 + local.get $18 i32.store offset=20 - local.get $11 + local.get $18 if - local.get $11 + local.get $18 local.get $1 i32.store offset=16 end local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 + local.set $22 + local.get $13 + local.set $21 + local.get $14 + local.set $20 local.get $1 - local.set $6 - local.get $12 - local.get $7 + local.set $19 + local.get $22 + local.get $21 i32.const 4 i32.shl - local.get $3 + local.get $20 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $19 i32.store offset=96 local.get $0 local.get $0 i32.load i32.const 1 - local.get $9 + local.get $13 i32.shl i32.or i32.store local.get $0 - local.set $13 - local.get $9 - local.set $12 + local.set $27 + local.get $13 + local.set $26 local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 + local.set $24 + local.get $13 + local.set $23 + local.get $24 + local.get $23 i32.const 2 i32.shl i32.add i32.load offset=4 i32.const 1 - local.get $10 + local.get $14 i32.shl i32.or - local.set $7 - local.get $13 - local.get $12 + local.set $25 + local.get $27 + local.get $26 i32.const 2 i32.shl i32.add - local.get $7 + local.get $25 i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -1068,6 +1092,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) i32.const 1 drop local.get $1 @@ -1207,11 +1232,11 @@ i32.or i32.store local.get $0 - local.set $9 + local.set $10 local.get $4 - local.set $3 + local.set $9 + local.get $10 local.get $9 - local.get $3 i32.store offset=1568 local.get $0 local.get $8 @@ -1231,6 +1256,12 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) global.get $~lib/rt/tlsf/ROOT local.set $0 local.get $0 @@ -1287,66 +1318,66 @@ local.get $4 i32.store offset=1568 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|0 - local.get $5 + local.get $6 i32.const 23 i32.lt_u - local.set $4 - local.get $4 + local.set $7 + local.get $7 if local.get $0 - local.set $8 - local.get $5 - local.set $7 + local.set $10 + local.get $6 + local.set $9 i32.const 0 - local.set $6 - local.get $8 - local.get $7 + local.set $8 + local.get $10 + local.get $9 i32.const 2 i32.shl i32.add - local.get $6 + local.get $8 i32.store offset=4 i32.const 0 - local.set $8 + local.set $11 loop $for-loop|1 - local.get $8 + local.get $11 i32.const 16 i32.lt_u - local.set $7 - local.get $7 + local.set $12 + local.get $12 if local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 + local.set $16 + local.get $6 + local.set $15 local.get $11 - local.get $10 + local.set $14 + i32.const 0 + local.set $13 + local.get $16 + local.get $15 i32.const 4 i32.shl - local.get $9 + local.get $14 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $13 i32.store offset=96 - local.get $8 + local.get $11 i32.const 1 i32.add - local.set $8 + local.set $11 br $for-loop|1 end end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end @@ -1359,11 +1390,11 @@ i32.const -1 i32.xor i32.and - local.set $5 + local.set $17 i32.const 0 drop local.get $0 - local.get $5 + local.get $17 memory.size i32.const 16 i32.shl @@ -1412,6 +1443,14 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) local.get $1 i32.const 256 i32.lt_u @@ -1485,11 +1524,11 @@ unreachable end local.get $0 - local.set $5 + local.set $6 local.get $2 - local.set $4 + local.set $5 + local.get $6 local.get $5 - local.get $4 i32.const 2 i32.shl i32.add @@ -1500,10 +1539,10 @@ local.get $3 i32.shl i32.and - local.set $6 - i32.const 0 local.set $7 - local.get $6 + i32.const 0 + local.set $8 + local.get $7 i32.eqz if local.get $0 @@ -1516,30 +1555,30 @@ i32.add i32.shl i32.and - local.set $5 - local.get $5 + local.set $9 + local.get $9 i32.eqz if i32.const 0 - local.set $7 + local.set $8 else - local.get $5 + local.get $9 i32.ctz local.set $2 local.get $0 - local.set $8 + local.set $11 local.get $2 - local.set $4 - local.get $8 - local.get $4 + local.set $10 + local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $6 + local.set $7 i32.const 1 drop - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -1550,45 +1589,45 @@ unreachable end local.get $0 - local.set $9 + local.set $14 local.get $2 - local.set $8 - local.get $6 + local.set $13 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $12 + local.get $14 + local.get $13 i32.const 4 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end else local.get $0 - local.set $9 + local.set $17 local.get $2 - local.set $8 - local.get $6 + local.set $16 + local.get $7 i32.ctz - local.set $4 - local.get $9 - local.get $8 + local.set $15 + local.get $17 + local.get $16 i32.const 4 i32.shl - local.get $4 + local.get $15 i32.add i32.const 2 i32.shl i32.add i32.load offset=96 - local.set $7 + local.set $8 end - local.get $7 + local.get $8 ) (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) (local $2 i32) @@ -1597,6 +1636,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 0 drop local.get $1 @@ -1643,15 +1683,15 @@ i32.shr_u local.set $4 local.get $2 - local.tee $3 - local.get $4 local.tee $5 - local.get $3 + local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.gt_s select - local.set $6 - local.get $6 + local.set $7 + local.get $7 memory.grow i32.const 0 i32.lt_s @@ -1665,12 +1705,12 @@ end end memory.size - local.set $7 + local.set $8 local.get $0 local.get $2 i32.const 16 i32.shl - local.get $7 + local.get $8 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -1680,6 +1720,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $1 i32.load local.set $3 @@ -1744,11 +1786,11 @@ i32.and i32.store local.get $1 - local.set $5 - local.get $5 + local.set $7 + local.get $7 i32.const 16 i32.add - local.get $5 + local.get $7 i32.load i32.const 3 i32.const -1 @@ -1756,11 +1798,11 @@ i32.and i32.add local.get $1 - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.const 16 i32.add - local.get $5 + local.get $6 i32.load i32.const 3 i32.const -1 @@ -2004,6 +2046,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) i32.const 0 local.set $0 i32.const 0 @@ -2038,10 +2081,10 @@ else i32.const 0 call $while/Ref#constructor - local.set $4 + local.set $5 local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $5 local.set $1 end br $while-continue|0 @@ -2085,6 +2128,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) i32.const 0 local.set $0 i32.const 0 @@ -2107,18 +2151,18 @@ i32.eq if i32.const 0 - local.tee $2 - local.get $1 local.tee $4 + local.get $1 + local.tee $5 i32.ne if - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $4 + call $~lib/rt/pure/__retain + local.set $4 + local.get $5 call $~lib/rt/pure/__release end - local.get $2 + local.get $4 local.set $1 br $while-break|0 end